diff mbox series

drm/i915/display: Disable AuxCCS framebuffers if built for Xe

Message ID 20240228140225.858145-1-juhapekka.heikkila@gmail.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/display: Disable AuxCCS framebuffers if built for Xe | expand

Commit Message

Juha-Pekka Heikkila Feb. 28, 2024, 2:02 p.m. UTC
AuxCCS framebuffers don't work on Xe driver hence disable them
from plane capabilities until they are fixed. FlatCCS framebuffers
work and they are left enabled. CCS is left untouched for i915
driver.

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Souza, Jose Feb. 28, 2024, 2:04 p.m. UTC | #1
On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote:
> AuxCCS framebuffers don't work on Xe driver hence disable them
> from plane capabilities until they are fixed. FlatCCS framebuffers
> work and they are left enabled. CCS is left untouched for i915
> driver.
> 

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
>  drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index e941e2e4fd14..860574d04f88 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915,
>  	if (HAS_4TILE(i915))
>  		caps |= INTEL_PLANE_CAP_TILING_4;
>  
> +	if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915))
> +		return caps;
> +
>  	if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) {
>  		caps |= INTEL_PLANE_CAP_CCS_RC;
>  		if (DISPLAY_VER(i915) >= 12)
Souza, Jose Feb. 29, 2024, 4:44 p.m. UTC | #2
On Wed, 2024-02-28 at 06:04 -0800, José Roberto de Souza wrote:
> On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote:
> > AuxCCS framebuffers don't work on Xe driver hence disable them
> > from plane capabilities until they are fixed. FlatCCS framebuffers
> > work and they are left enabled. CCS is left untouched for i915
> > driver.
> > 
> 
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

This needs a Fixes tag so it gets backported to Linux 6.8.

> 
> > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933
> > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > ---
> >  drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > index e941e2e4fd14..860574d04f88 100644
> > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915,
> >  	if (HAS_4TILE(i915))
> >  		caps |= INTEL_PLANE_CAP_TILING_4;
> >  
> > +	if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915))
> > +		return caps;
> > +
> >  	if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) {
> >  		caps |= INTEL_PLANE_CAP_CCS_RC;
> >  		if (DISPLAY_VER(i915) >= 12)
>
Souza, Jose Feb. 29, 2024, 5:36 p.m. UTC | #3
On Thu, 2024-02-29 at 16:44 +0000, Souza, Jose wrote:
> On Wed, 2024-02-28 at 06:04 -0800, José Roberto de Souza wrote:
> > On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote:
> > > AuxCCS framebuffers don't work on Xe driver hence disable them
> > > from plane capabilities until they are fixed. FlatCCS framebuffers
> > > work and they are left enabled. CCS is left untouched for i915
> > > driver.
> > > 
> > 
> > Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> 
> This needs a Fixes tag so it gets backported to Linux 6.8.

Tested on Xe KMD and fixed the issue at least on ADL-P, you can also add:

Tested-by: José Roberto de Souza <jose.souza@intel.com>

thank you

> 
> > 
> > > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933
> > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > > index e941e2e4fd14..860574d04f88 100644
> > > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > > @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915,
> > >  	if (HAS_4TILE(i915))
> > >  		caps |= INTEL_PLANE_CAP_TILING_4;
> > >  
> > > +	if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915))
> > > +		return caps;
> > > +
> > >  	if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) {
> > >  		caps |= INTEL_PLANE_CAP_CCS_RC;
> > >  		if (DISPLAY_VER(i915) >= 12)
> > 
>
Jani Nikula March 5, 2024, 4:44 p.m. UTC | #4
On Wed, 28 Feb 2024, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> wrote:
> AuxCCS framebuffers don't work on Xe driver hence disable them
> from plane capabilities until they are fixed. FlatCCS framebuffers
> work and they are left enabled. CCS is left untouched for i915
> driver.
>
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

Acked-by: Jani Nikula <jani.nikula@intel.com>


> ---
>  drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index e941e2e4fd14..860574d04f88 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915,
>  	if (HAS_4TILE(i915))
>  		caps |= INTEL_PLANE_CAP_TILING_4;
>  
> +	if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915))
> +		return caps;
> +
>  	if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) {
>  		caps |= INTEL_PLANE_CAP_CCS_RC;
>  		if (DISPLAY_VER(i915) >= 12)
Souza, Jose March 6, 2024, 1:57 p.m. UTC | #5
On Wed, 2024-02-28 at 16:02 +0200, Juha-Pekka Heikkila wrote:
> AuxCCS framebuffers don't work on Xe driver hence disable them
> from plane capabilities until they are fixed. FlatCCS framebuffers
> work and they are left enabled. CCS is left untouched for i915
> driver.
> 

Fixes: 44e694958b95 ("drm/xe/display: Implement display support")

> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/933
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
>  drivers/gpu/drm/i915/display/skl_universal_plane.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index e941e2e4fd14..860574d04f88 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -2295,6 +2295,9 @@ static u8 skl_get_plane_caps(struct drm_i915_private *i915,
>  	if (HAS_4TILE(i915))
>  		caps |= INTEL_PLANE_CAP_TILING_4;
>  
> +	if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915))
> +		return caps;
> +
>  	if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) {
>  		caps |= INTEL_PLANE_CAP_CCS_RC;
>  		if (DISPLAY_VER(i915) >= 12)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index e941e2e4fd14..860574d04f88 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -2295,6 +2295,9 @@  static u8 skl_get_plane_caps(struct drm_i915_private *i915,
 	if (HAS_4TILE(i915))
 		caps |= INTEL_PLANE_CAP_TILING_4;
 
+	if (!IS_ENABLED(I915) && !HAS_FLAT_CCS(i915))
+		return caps;
+
 	if (skl_plane_has_rc_ccs(i915, pipe, plane_id)) {
 		caps |= INTEL_PLANE_CAP_CCS_RC;
 		if (DISPLAY_VER(i915) >= 12)