@@ -2817,19 +2817,25 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
2817
2817
}
2818
2818
}
2819
2819
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 )
2821
2822
{
2823
+ /* Wa_14010477008:tgl[a0..c0] */
2824
+ if (IS_TGL_REVID (dev_priv , TGL_REVID_A0 , TGL_REVID_C0 ))
2825
+ return false;
2826
+
2822
2827
return plane_id < PLANE_SPRITE4 ;
2823
2828
}
2824
2829
2825
2830
static bool gen12_plane_format_mod_supported (struct drm_plane * _plane ,
2826
2831
u32 format , u64 modifier )
2827
2832
{
2833
+ struct drm_i915_private * dev_priv = to_i915 (_plane -> dev );
2828
2834
struct intel_plane * plane = to_intel_plane (_plane );
2829
2835
2830
2836
switch (modifier ) {
2831
2837
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 ))
2833
2839
return false;
2834
2840
/* fall through */
2835
2841
case DRM_FORMAT_MOD_LINEAR :
@@ -2998,9 +3004,10 @@ static const u32 *icl_get_plane_formats(struct drm_i915_private *dev_priv,
2998
3004
}
2999
3005
}
3000
3006
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 )
3002
3009
{
3003
- if (gen12_plane_supports_mc_ccs (plane_id ))
3010
+ if (gen12_plane_supports_mc_ccs (dev_priv , plane_id ))
3004
3011
return gen12_plane_format_modifiers_mc_ccs ;
3005
3012
else
3006
3013
return gen12_plane_format_modifiers_rc_ccs ;
@@ -3070,7 +3077,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
3070
3077
3071
3078
plane -> has_ccs = skl_plane_has_ccs (dev_priv , pipe , plane_id );
3072
3079
if (INTEL_GEN (dev_priv ) >= 12 ) {
3073
- modifiers = gen12_get_plane_modifiers (plane_id );
3080
+ modifiers = gen12_get_plane_modifiers (dev_priv , plane_id );
3074
3081
plane_funcs = & gen12_plane_funcs ;
3075
3082
} else {
3076
3083
if (plane -> has_ccs )
0 commit comments