From: Chaitanya Kumar Borah chaitanya.kumar.borah@intel.com
[ Upstream commit d738e1be2b2b4364403babc43ae7343d45e99d41 ]
The commit 9ab440a9d042 ("drm/xe/ptl: L3bank mask is not available on the media GT") added a workaround to ignore the fuse register that L3 bank availability as it did not contain valid values. Same is true for WCL therefore extend the workaround to cover it.
Signed-off-by: Chaitanya Kumar Borah chaitanya.kumar.borah@intel.com Reviewed-by: Dnyaneshwar Bhadane dnyaneshwar.bhadane@intel.com Link: https://lore.kernel.org/r/20250822002512.1129144-1-chaitanya.kumar.borah@int... Signed-off-by: Gustavo Sousa gustavo.sousa@intel.com Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
YES
- What changed - The single-line rule in `drivers/gpu/drm/xe/xe_wa_oob.rules` is widened from `MEDIA_VERSION(3000)` to `MEDIA_VERSION_RANGE(3000, 3002)` for the `no_media_l3` workaround. This extends the existing workaround to WCL media GT variants in the same Xe3 generation, not just the initial 3000 stepping.
- What it fixes - Prior work (commit 9ab440a9d042 cited in the message) established that the L3 bank-availability fuse register on the media GT can return invalid data; the fix was to ignore/suppress using that information on the affected platform. The new change says WCL shares the same problem and applies the same workaround there. - The Xe driver already treats L3 bank mask reporting on media GT as optional when it cannot be trusted: see the guard used in topology reporting (“L3bank mask may not be available for some GTs”) in `drivers/gpu/drm/xe/xe_query.c:480`, and the policy to omit media GT L3 mask on Xe3+ in `drivers/gpu/drm/xe/xe_gt_topology.c:126` (function comments explaining no known userspace needs the media L3 mask and that hardware reports bogus values on some platforms) and the early return gating in the L3 loader path at `drivers/gpu/drm/xe/xe_gt_topology.c:148`. Extending the rule ensures the workaround applies consistently across all relevant Xe3 media GT steppings (3000–3002), eliminating cases where bogus L3 bank masks could leak to userspace or influence internal logic.
- Risk assessment - Scope: One rule-file condition change; no code paths, interfaces, or architectures are altered. Constrained to the Xe DRM driver’s WA matching. - Behavior: Only broadens an existing workaround to additional but closely-related hardware versions. On those versions, it suppresses using a known-bogus register; otherwise behavior is unchanged. - Userspace compatibility: Comments explicitly note no known userspace depends on media GT L3 bank mask being present on these platforms (`drivers/gpu/drm/xe/xe_gt_topology.c:126`). Hiding it avoids reporting incorrect data and is preferable to exposing a wrong mask (`drivers/gpu/drm/xe/xe_query.c:480`).
- Stable backport criteria - Bug fix that affects users: Yes—prevents invalid L3 bank mask data on additional media GT steppings. - Small and contained: Yes—one-line rule adjustment in `drivers/gpu/drm/xe/xe_wa_oob.rules`. - Architectural change: No. - Critical subsystem risk: Low; isolated to the Xe driver’s WA selection. - Side effects: Minimal; only suppresses untrustworthy data reporting on the affected versions. - Commit message clarity: References the prior fix and clearly states extension to WCL.
Given the minimal, targeted nature of the change and its role in preventing incorrect hardware information from being used/reported, this is a strong candidate for stable backport.
drivers/gpu/drm/xe/xe_wa_oob.rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules index 48c7a42e2fcad..382719ac4a779 100644 --- a/drivers/gpu/drm/xe/xe_wa_oob.rules +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules @@ -47,7 +47,7 @@ 16023588340 GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_not_sriov_vf) 14019789679 GRAPHICS_VERSION(1255) GRAPHICS_VERSION_RANGE(1270, 2004) -no_media_l3 MEDIA_VERSION(3000) +no_media_l3 MEDIA_VERSION_RANGE(3000, 3002) 14022866841 GRAPHICS_VERSION(3000), GRAPHICS_STEP(A0, B0) MEDIA_VERSION(3000), MEDIA_STEP(A0, B0) 16021333562 GRAPHICS_VERSION_RANGE(1200, 1274)