mirror of
https://github.com/torvalds/linux.git
synced 2026-05-21 13:27:57 +02:00
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:
parent
a2e1a10c47
commit
94fe5f275a
|
|
@ -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 = {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user