[Intel-gfx] [PATCH] drm/i915: Implement display WA #1142:kbl, cfl, cml
Lee, Shawn C
shawn.c.lee at intel.com
Mon Oct 5 08:00:46 UTC 2020
On Fri, Sept. 25, 2020, 11 a.m., Ville Syrjälä wrote:
>On Thu, Sep 24, 2020 at 08:43:33PM +0000, Souza, Jose wrote:
>> On Thu, 2020-09-24 at 22:48 +0300, Ville Syrjala wrote:
>> > From: Ville Syrjälä <
>> > ville.syrjala at linux.intel.com
>> > >
>> >
>> > Implement display w/a #1142. This supposedly fixes some underruns
>> > with FBC+VTd. Bspec says we should use the same programming regardless
>> > of circumstances. Apparently we should flip the magic bits before
>> > turning on any planes so let's put this into the early w/as.
>> >
>> > Cc: Lee Shawn C <
>> > shawn.c.lee at intel.com
>> > >
>> > Signed-off-by: Ville Syrjälä <
>> > ville.syrjala at linux.intel.com
>> > >
>> > ---
>> > drivers/gpu/drm/i915/display/intel_display.c | 9 +++++++++
>> > drivers/gpu/drm/i915/i915_reg.h | 3 +++
>> > 2 files changed, 12 insertions(+)
>> >
>> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>> > index 5a9d933e425a..9d64187cfd56 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_display.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> > @@ -18677,6 +18677,15 @@ static void intel_early_display_was(struct drm_i915_private *dev_priv)
>> > intel_de_write(dev_priv, CHICKEN_PAR1_1,
>> > intel_de_read(dev_priv, CHICKEN_PAR1_1) | FORCE_ARB_IDLE_PLANES);
>> > }
>> > +
>> > + if (IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv) || IS_COMETLAKE(dev_priv)) {
>>
>> WA mentions that it is required only for KBL, but if Lee says that this helps with his CML issues.
>
>I think there's a note somewhere that says cfl+ are derived from the
>last kbl, and I don't think there's are specific cfl/cml tags for w/as.
>
>>
>> Reviewed-by: José Roberto de Souza <jose.souza at intel.com>
>
>Ta.
>
Thanks for the patch. We already shared this patch for external customer test.
According to customer's reply, the reproduce rate of flicker issue is lower than before.
Unfortunately, they still can see panel flicker happen very randomly.
Best regards,
Shawn
>>
>> > + /* Display WA #1142:kbl,cfl,cml */
>> > + intel_de_rmw(dev_priv, CHICKEN_PAR1_1,
>> > + KBL_ARB_FILL_SPARE_22, KBL_ARB_FILL_SPARE_22);
>> > + intel_de_rmw(dev_priv, CHICKEN_MISC_2,
>> > + KBL_ARB_FILL_SPARE_13 | KBL_ARB_FILL_SPARE_14,
>> > + KBL_ARB_FILL_SPARE_14);
>> > + }
>> > }
>> >
>> > static void ibx_sanitize_pch_hdmi_port(struct drm_i915_private *dev_priv,
>> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>> > index d805d4da6181..3f97cc0fcbf1 100644
>> > --- a/drivers/gpu/drm/i915/i915_reg.h
>> > +++ b/drivers/gpu/drm/i915/i915_reg.h
>> > @@ -7865,6 +7865,7 @@ enum {
>> > # define CHICKEN3_DGMG_DONE_FIX_DISABLE (1 << 2)
>> >
>> > #define CHICKEN_PAR1_1 _MMIO(0x42080)
>> > +#define KBL_ARB_FILL_SPARE_22 REG_BIT(22)
>> > #define DIS_RAM_BYPASS_PSR2_MAN_TRACK (1 << 16)
>> > #define SKL_DE_COMPRESSED_HASH_MODE (1 << 15)
>> > #define DPA_MASK_VBLANK_SRD (1 << 15)
>> > @@ -7877,6 +7878,8 @@ enum {
>> >
>> > #define CHICKEN_MISC_2 _MMIO(0x42084)
>> > #define CNL_COMP_PWR_DOWN (1 << 23)
>> > +#define KBL_ARB_FILL_SPARE_14 REG_BIT(14)
>> > +#define KBL_ARB_FILL_SPARE_13 REG_BIT(13)
>> > #define GLK_CL2_PWR_DOWN (1 << 12)
>> > #define GLK_CL1_PWR_DOWN (1 << 11)
>> > #define GLK_CL0_PWR_DOWN (1 << 10)
>> >
More information about the Intel-gfx
mailing list