On Wed, 03 Jan 2024, José Roberto de Souza <[email protected]> wrote:
> Often getting DBS overflows when starting Xorg or Wayland compositors
> when running Xe KMD.
> Issue was reported but nothing was done, so disabling DSB as whole
> until properly fixed in Xe KMD.
>
> v2:
> - move check to HAS_DSB(Jani)

I was thinking of something like

diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c 
b/drivers/gpu/drm/i915/display/intel_dsb.c
index 482c28b5c2de..a6c7122fd671 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -453,6 +453,10 @@ struct intel_dsb *intel_dsb_prepare(const struct 
intel_crtc_state *crtc_state,
        if (!HAS_DSB(i915))
                return NULL;
 
+       /* TODO: DSB is broken in Xe KMD, so disabling it until fixed */
+       if (!IS_ENABLED(I915))
+               return NULL;
+
        dsb = kzalloc(sizeof(*dsb), GFP_KERNEL);
        if (!dsb)
                goto out;


>
> Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/989
> Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1031
> Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1072
> Cc: Animesh Manna <[email protected]>
> Cc: Rodrigo Vivi <[email protected]>
> Cc: Jani Nikula <[email protected]>
> Signed-off-by: José Roberto de Souza <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_display_device.h | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h 
> b/drivers/gpu/drm/i915/display/intel_display_device.h
> index fe42688137863..faa49aced46a5 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_device.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_device.h
> @@ -45,7 +45,12 @@ struct drm_printer;
>  #define HAS_DP_MST(i915)             (DISPLAY_INFO(i915)->has_dp_mst)
>  #define HAS_DP20(i915)                       (IS_DG2(i915) || 
> DISPLAY_VER(i915) >= 14)
>  #define HAS_DPT(i915)                        (DISPLAY_VER(i915) >= 13)
> +#ifdef I915
>  #define HAS_DSB(i915)                        (DISPLAY_INFO(i915)->has_dsb)
> +#else
> +/* TODO: DSB is broken in Xe KMD, so disabling it until fixed */
> +#define HAS_DSB(i915)                        (false)
> +#endif
>  #define HAS_DSC(__i915)                      
> (DISPLAY_RUNTIME_INFO(__i915)->has_dsc)
>  #define HAS_FBC(i915)                        
> (DISPLAY_RUNTIME_INFO(i915)->fbc_mask != 0)
>  #define HAS_FPGA_DBG_UNCLAIMED(i915) (DISPLAY_INFO(i915)->has_fpga_dbg)

-- 
Jani Nikula, Intel

Reply via email to