mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
drm/i915/fbc: update the impacted platforms in wa_22014263786
wa_22014263786 is not applicable to the BMG and hence exclude it
from the wa.
v2: Limit this wa to display verion 11 to 14, drop DG2 from the
exclusion list, use intel_display_wa (Lucas)
v3: simplify the wa handling loop (Jani)
Description of wa moved to place where wa is applied (Ville)
v4: drop the platforms line from wa comments (Lucas)
Bspec: 74212, 66624
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20251007214317.875781-1-vinod.govindapillai@intel.com
This commit is contained in:
parent
56d9d03450
commit
f65223ba4e
|
|
@ -67,6 +67,8 @@ bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa,
|
|||
return intel_display_needs_wa_16025573575(display);
|
||||
case INTEL_DISPLAY_WA_14011503117:
|
||||
return DISPLAY_VER(display) == 13;
|
||||
case INTEL_DISPLAY_WA_22014263786:
|
||||
return IS_DISPLAY_VERx100(display, 1100, 1400);
|
||||
default:
|
||||
drm_WARN(display->drm, 1, "Missing Wa number: %s\n", name);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ enum intel_display_wa {
|
|||
INTEL_DISPLAY_WA_16023588340,
|
||||
INTEL_DISPLAY_WA_16025573575,
|
||||
INTEL_DISPLAY_WA_14011503117,
|
||||
INTEL_DISPLAY_WA_22014263786,
|
||||
};
|
||||
|
||||
bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char *name);
|
||||
|
|
|
|||
|
|
@ -928,9 +928,12 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc)
|
|||
if (IS_DISPLAY_VER(display, 11, 12))
|
||||
intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
|
||||
0, DPFC_CHICKEN_COMP_DUMMY_PIXEL);
|
||||
|
||||
/* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */
|
||||
if (DISPLAY_VER(display) >= 11 && !display->platform.dg2)
|
||||
/*
|
||||
* Wa_22014263786
|
||||
* Fixes: Screen flicker with FBC and Package C state enabled
|
||||
* Workaround: Forced SLB invalidation before start of new frame.
|
||||
*/
|
||||
if (intel_display_wa(display, 22014263786))
|
||||
intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
|
||||
0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user