[PATCH] drm/xe/ptl: Apply Wa_14023061436

Nirmoy Das nirmoy.das at intel.com
Wed Jan 8 13:54:53 UTC 2025


On 12/10/2024 10:55 PM, Matt Roper wrote:
> On Tue, Dec 10, 2024 at 04:06:21PM +0100, Nirmoy Das wrote:
>> Enable WMTP for the BTD kernel to address Wa14023061436 by setting the
>> proper TDL Chicken Bit.
>>
>> Cc: Gustavo Sousa <gustavo.sousa at intel.com>
>> Cc: Matt Roper <matthew.d.roper at intel.com>
>> Signed-off-by: Nirmoy Das <nirmoy.das at intel.com>
>> ---
>>  drivers/gpu/drm/xe/regs/xe_gt_regs.h | 3 +++
>>  drivers/gpu/drm/xe/xe_wa.c           | 4 ++++
>>  2 files changed, 7 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> index 162f18e975da..6829fbed1803 100644
>> --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> @@ -496,6 +496,9 @@
>>  #define EU_SYSTOLIC_LIC_THROTTLE_CTL_WITH_LOCK	XE_REG_MCR(0xe534)
>>  #define   EU_SYSTOLIC_LIC_THROTTLE_CTL_LOCK_BIT	REG_BIT(31)
>>  
>> +#define TDL_CHICKEN				XE_REG_MCR(0xe5f4, XE_REG_OPTION_MASKED)
>> +#define   QID_WAIT_FOR_THREAD_NOT_RUN_DISABLE	REG_BIT(12)
> e5f4 > e5f0 so I think this needs to be after the XEHP_HDC_CHICKEN0
> definition.
>
>
>> +
>>  #define XEHP_HDC_CHICKEN0					XE_REG_MCR(0xe5f0, XE_REG_OPTION_MASKED)
>>  #define   LSC_L1_FLUSH_CTL_3D_DATAPORT_FLUSH_EVENTS_MASK	REG_GENMASK(13, 11)
>>  #define   DIS_ATOMIC_CHAINING_TYPED_WRITES	REG_BIT(3)
>> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
>> index 570fe0376402..2889d6f65f51 100644
>> --- a/drivers/gpu/drm/xe/xe_wa.c
>> +++ b/drivers/gpu/drm/xe/xe_wa.c
>> @@ -637,6 +637,10 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
> I don't see this register in the RCS engine's LRC (bspec 65182), so I'm
> not sure this is the correct list.  We probably need this on
> engine_was[] so that this will be saved/restored properly around engine
> resets.
>
>>  	  XE_RTP_RULES(GRAPHICS_VERSION(1200)),
>>  	  XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN4, DISABLE_TDC_LOAD_BALANCING_CALC))
>>  	},
>> +	{ XE_RTP_NAME("14023061436"),
>> +	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(3000, 3001), ENGINE_CLASS(RENDER)),
> Given the above (that this isn't tied to one specific engine's LRC) and
> given that the register doesn't fall within the dedicated RCS range
> (0x2xxx), we should probably also change the ENGINE_CLASS(RENDER) to
> FUNC(xe_rtp_match_first_render_or_compute) here.  For PTL (the only
> platform that uses these IPs at the moment) it doesn't really matter,
> but if we wind up extending this to some other platform in the future
> that lacks an RCS, then using the 'first render or compute' match will
> ensure that the workaround still gets applied properly in the absence of
> an RCS engine.


Thanks Matt for your detailed review. Sent out a v2 with above suggestions.


Regards,

Nirmoy

>
>
> Matt
>
>> +	  XE_RTP_ACTIONS(SET(TDL_CHICKEN, QID_WAIT_FOR_THREAD_NOT_RUN_DISABLE))
>> +	},
>>  
>>  	/* DG1 */
>>  
>> -- 
>> 2.46.0
>>


More information about the Intel-xe mailing list