[PATCH 2/4] drm/xe/gen12: Add Wa_1604555607

Gustavo Sousa gustavo.sousa at intel.com
Wed Feb 26 19:57:44 UTC 2025


Quoting Lucas De Marchi (2025-02-26 15:05:37-03:00)
>On Wed, Feb 26, 2025 at 11:21:04AM +0000, Tvrtko Ursulin wrote:
>>According to the i915 code base, apart from setting the GS timer, all
>>Gen12 platforms should also set the TDS timer. Make it so.
>>
>>Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>>References: 2b5298b0aa09 ("drm/i915/gen12: Add recommended hardware tuning value")
>>Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>>Cc: Matt Roper <matthew.d.roper at intel.com>
>>---
>>This needs checking by someone with access to the proper docs and proper
>>workaround database.
>
>Tuning and WA db are 2 different things. Digging through it...
>
>Tuning:
>        Bspec 31870 only tells to program TDS (bits 23:16) to value of 4. There is no
>        **recommended tuning** saying to program other bits.
>
>        That is FF_MODE2_TDS_TIMER_MASK = FF_MODE2_TDS_TIMER_128.
>
>        Same bits are also recommended for DG2 in Bspec 68331 covering DG2 and
>        MTL (however in these platforms the register is  multicast).
>
> From the WA db:
>        TDS is documented to be programmed in WA 1604555607,
>        to the same value as the tuning, for graphics versions 12.00 and 12.10
>        (I'd have to dig more for 12.55).
>
>        GS (bits 31:24) is documented to be programmed in WA 16011163337
>        for graphics versions 12.00 and 12.10
>
>
>>---
>> drivers/gpu/drm/xe/xe_tuning.c | 8 +++++---
>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c
>>index d449de0fb6ec..9e7ec36dbd47 100644
>>--- a/drivers/gpu/drm/xe/xe_tuning.c
>>+++ b/drivers/gpu/drm/xe/xe_tuning.c
>>@@ -97,12 +97,14 @@ static const struct xe_rtp_entry_sr engine_tunings[] = {
>> };
>>
>> static const struct xe_rtp_entry_sr lrc_tunings[] = {
>>-        { XE_RTP_NAME("Tuning: ganged timer, also known as 16011163337"),
>>+        { XE_RTP_NAME("Tuning: ganged timers, also known as 16011163337 and 1604555607"),
>>           XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210), ENGINE_CLASS(RENDER)),
>>           /* read verification is ignored due to 1608008084. */
>>           XE_RTP_ACTIONS(FIELD_SET_NO_READ_MASK(FF_MODE2,
>>-                                                FF_MODE2_GS_TIMER_MASK,
>>-                                                FF_MODE2_GS_TIMER_224))
>>+                                                FF_MODE2_GS_TIMER_MASK |
>>+                                                FF_MODE2_TDS_TIMER_MASK,
>>+                                                FF_MODE2_GS_TIMER_224 |
>>+                                                FF_MODE2_TDS_TIMER_128))
>
>so... I think this should be only about TDS, also known as 1604555607.
>then in xe_wa.c, the GS programming added for 16011163337.
>
>Matt, Gustavo, can you double check that?

Your assessment seems correct to me.

--
Gustavo Sousa

>
>
>thanks
>Lucas De Marchi
>
>
>>         },
>>
>>         /* DG2 */
>>-- 
>>2.48.0
>>


More information about the Intel-xe mailing list