Skip to content

Commit 81fdd7b

Browse files
mattroperodrigovivi
authored andcommitted
drm/i915/tgl: Add Wa_14010477008:tgl
Media decompression support should not be advertised on any display planes for steppings A0-C0. Bspec: 53273 Fixes: 2dfbf9d ("drm/i915/tgl: Gen-12 display can decompress surfaces compressed by the media engine") Cc: Matt Atwood <[email protected]> Signed-off-by: Matt Roper <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Reviewed-by: José Roberto de Souza <[email protected]> (cherry picked from commit dbff5a8) Signed-off-by: Rodrigo Vivi <[email protected]>
1 parent 5809e8f commit 81fdd7b

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

drivers/gpu/drm/i915/display/intel_sprite.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2817,19 +2817,25 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
28172817
}
28182818
}
28192819

2820-
static bool gen12_plane_supports_mc_ccs(enum plane_id plane_id)
2820+
static bool gen12_plane_supports_mc_ccs(struct drm_i915_private *dev_priv,
2821+
enum plane_id plane_id)
28212822
{
2823+
/* Wa_14010477008:tgl[a0..c0] */
2824+
if (IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_C0))
2825+
return false;
2826+
28222827
return plane_id < PLANE_SPRITE4;
28232828
}
28242829

28252830
static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
28262831
u32 format, u64 modifier)
28272832
{
2833+
struct drm_i915_private *dev_priv = to_i915(_plane->dev);
28282834
struct intel_plane *plane = to_intel_plane(_plane);
28292835

28302836
switch (modifier) {
28312837
case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
2832-
if (!gen12_plane_supports_mc_ccs(plane->id))
2838+
if (!gen12_plane_supports_mc_ccs(dev_priv, plane->id))
28332839
return false;
28342840
/* fall through */
28352841
case DRM_FORMAT_MOD_LINEAR:
@@ -2998,9 +3004,10 @@ static const u32 *icl_get_plane_formats(struct drm_i915_private *dev_priv,
29983004
}
29993005
}
30003006

3001-
static const u64 *gen12_get_plane_modifiers(enum plane_id plane_id)
3007+
static const u64 *gen12_get_plane_modifiers(struct drm_i915_private *dev_priv,
3008+
enum plane_id plane_id)
30023009
{
3003-
if (gen12_plane_supports_mc_ccs(plane_id))
3010+
if (gen12_plane_supports_mc_ccs(dev_priv, plane_id))
30043011
return gen12_plane_format_modifiers_mc_ccs;
30053012
else
30063013
return gen12_plane_format_modifiers_rc_ccs;
@@ -3070,7 +3077,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
30703077

30713078
plane->has_ccs = skl_plane_has_ccs(dev_priv, pipe, plane_id);
30723079
if (INTEL_GEN(dev_priv) >= 12) {
3073-
modifiers = gen12_get_plane_modifiers(plane_id);
3080+
modifiers = gen12_get_plane_modifiers(dev_priv, plane_id);
30743081
plane_funcs = &gen12_plane_funcs;
30753082
} else {
30763083
if (plane->has_ccs)

drivers/gpu/drm/i915/i915_drv.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1507,6 +1507,8 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
15071507
(IS_ICELAKE(p) && IS_REVID(p, since, until))
15081508

15091509
#define TGL_REVID_A0 0x0
1510+
#define TGL_REVID_B0 0x1
1511+
#define TGL_REVID_C0 0x2
15101512

15111513
#define IS_TGL_REVID(p, since, until) \
15121514
(IS_TIGERLAKE(p) && IS_REVID(p, since, until))

0 commit comments

Comments
 (0)