[PATCH] drm/xe/xe2lpg: Extend Wa_14020338487

Lucas De Marchi lucas.demarchi at intel.com
Thu Apr 18 05:00:32 UTC 2024


On Thu, Apr 18, 2024 at 10:20:35AM GMT, Chauhan, Shekhar wrote:
>
>On 4/18/2024 04:05, Lucas De Marchi wrote:
>>On Wed, Apr 17, 2024 at 06:45:47PM GMT, Gustavo Sousa wrote:
>>>Quoting Gustavo Sousa (2024-04-17 18:25:01-03:00)
>>>>Wa_14020338487 also applies to Xe2_LPG. Replicate the existing entry to
>>>>one specific for Xe2_LPG.
>>>
>>>I would also like to take this as an opportunity to discuss the way we
>>>are currently arranging the RTP entries for the workaround. Using this
>>>one as example, created a copy of the entry and edited the argument of
>>>GRAPHICS_VERSION() to match Xe2_LPG. There are multiple cases already
>>>following the same pattern, mainly because we are grouping entries by
>>>IP release.
>>>
>>>Do we want to continue following that pattern and keep the code
>>>duplication? Or should we think of a way to avoid code duplication here?
>>>
>>>A very simple approach that I think of is having a single entry for each
>>>lineage. But I guess that's not really feasible today because I guess we
>>>do not have a way of expressing logical disjunction in XE_RTP_RULES().
>>
>>yes, implementing it was always something I considered, but then there
>>was also the fact that when we have WAs that are on IPs that are not
>>close to each other we may have subtle differences like registers with
>>different offset or mcr vs non-mcr.
>
>I see that some registers vary between MCR and non-MCR types. However, 
>could you please explain how this difference affects implementation? 
>As I understand it, when setting XE_RTP_ACTIONS, we simply choose the 
>desired action (SET, CLR etc). So, I'm curious about the specific 
>impact of MCR vs non-MCR in this context.

you need to pick the right register that has the mcr reg option set.
Exammple:

         { XE_RTP_NAME("22016670082"),
           XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1270, 1274)),
           XE_RTP_ACTIONS(SET(SQCNT1, ENFORCE_RAR))
         },

vs

         { XE_RTP_NAME("22016670082"),
           XE_RTP_RULES(MEDIA_VERSION(1300)),
           XE_RTP_ACTIONS(SET(XELPMP_SQCNT1, ENFORCE_RAR))
         },

#define SQCNT1                                     XE_REG_MCR(0x8718)
#define XELPMP_SQCNT1                              XE_REG(0x8718)



Lucas De Marchi


More information about the Intel-xe mailing list