drm/i915/wa: convert intel_display_wa.[ch] to struct intel_display

Going forward, struct intel_display is the main display device data
pointer. Convert as much as possible of intel_display_wa.[ch] to struct
intel_display.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://lore.kernel.org/r/821937f9fcdcb7d5516be0c48c2cee009936ecb8.1742906146.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Jani Nikula 2025-03-25 14:36:37 +02:00
parent a2e1a10c47
commit 94fe5f275a
5 changed files with 28 additions and 24 deletions

View File

@ -82,7 +82,6 @@ bool intel_display_driver_probe_defer(struct pci_dev *pdev)
void intel_display_driver_init_hw(struct intel_display *display)
{
struct drm_i915_private *i915 = to_i915(display->drm);
struct intel_cdclk_state *cdclk_state;
if (!HAS_DISPLAY(display))
@ -94,7 +93,7 @@ void intel_display_driver_init_hw(struct intel_display *display)
intel_cdclk_dump_config(display, &display->cdclk.hw, "Current CDCLK");
cdclk_state->logical = cdclk_state->actual = display->cdclk.hw;
intel_display_wa_apply(i915);
intel_display_wa_apply(display);
}
static const struct drm_mode_config_funcs intel_mode_funcs = {

View File

@ -3,38 +3,38 @@
* Copyright © 2023 Intel Corporation
*/
#include "i915_drv.h"
#include "i915_reg.h"
#include "intel_de.h"
#include "intel_display_core.h"
#include "intel_display_wa.h"
static void gen11_display_wa_apply(struct drm_i915_private *i915)
static void gen11_display_wa_apply(struct intel_display *display)
{
/* Wa_14010594013 */
intel_de_rmw(i915, GEN8_CHICKEN_DCPR_1, 0, ICL_DELAY_PMRSP);
intel_de_rmw(display, GEN8_CHICKEN_DCPR_1, 0, ICL_DELAY_PMRSP);
}
static void xe_d_display_wa_apply(struct drm_i915_private *i915)
static void xe_d_display_wa_apply(struct intel_display *display)
{
/* Wa_14013723622 */
intel_de_rmw(i915, CLKREQ_POLICY, CLKREQ_POLICY_MEM_UP_OVRD, 0);
intel_de_rmw(display, CLKREQ_POLICY, CLKREQ_POLICY_MEM_UP_OVRD, 0);
}
static void adlp_display_wa_apply(struct drm_i915_private *i915)
static void adlp_display_wa_apply(struct intel_display *display)
{
/* Wa_22011091694:adlp */
intel_de_rmw(i915, GEN9_CLKGATE_DIS_5, 0, DPCE_GATING_DIS);
intel_de_rmw(display, GEN9_CLKGATE_DIS_5, 0, DPCE_GATING_DIS);
/* Bspec/49189 Initialize Sequence */
intel_de_rmw(i915, GEN8_CHICKEN_DCPR_1, DDI_CLOCK_REG_ACCESS, 0);
intel_de_rmw(display, GEN8_CHICKEN_DCPR_1, DDI_CLOCK_REG_ACCESS, 0);
}
void intel_display_wa_apply(struct drm_i915_private *i915)
void intel_display_wa_apply(struct intel_display *display)
{
if (IS_ALDERLAKE_P(i915))
adlp_display_wa_apply(i915);
else if (DISPLAY_VER(i915) == 12)
xe_d_display_wa_apply(i915);
else if (DISPLAY_VER(i915) == 11)
gen11_display_wa_apply(i915);
if (display->platform.alderlake_p)
adlp_display_wa_apply(display);
else if (DISPLAY_VER(display) == 12)
xe_d_display_wa_apply(display);
else if (DISPLAY_VER(display) == 11)
gen11_display_wa_apply(display);
}

View File

@ -8,14 +8,17 @@
#include <linux/types.h>
struct drm_i915_private;
struct intel_display;
void intel_display_wa_apply(struct drm_i915_private *i915);
void intel_display_wa_apply(struct intel_display *display);
#ifdef I915
static inline bool intel_display_needs_wa_16023588340(struct drm_i915_private *i915) { return false; }
static inline bool intel_display_needs_wa_16023588340(struct intel_display *display)
{
return false;
}
#else
bool intel_display_needs_wa_16023588340(struct drm_i915_private *i915);
bool intel_display_needs_wa_16023588340(struct intel_display *display);
#endif
#endif

View File

@ -1437,7 +1437,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
return 0;
}
if (intel_display_needs_wa_16023588340(i915)) {
if (intel_display_needs_wa_16023588340(display)) {
plane_state->no_fbc_reason = "Wa_16023588340";
return 0;
}

View File

@ -10,7 +10,9 @@
#include <generated/xe_wa_oob.h>
bool intel_display_needs_wa_16023588340(struct drm_i915_private *i915)
bool intel_display_needs_wa_16023588340(struct intel_display *display)
{
return XE_WA(xe_root_mmio_gt(i915), 16023588340);
struct xe_device *xe = to_xe_device(display->drm);
return XE_WA(xe_root_mmio_gt(xe), 16023588340);
}