If a bridge doesn't do any bus format handling MEDIA_BUS_FMT_FIXED is
returned. Fallback to a reasonable default (MEDIA_BUS_FMT_RGB888_1X24) in
that case.

This unbreaks e.g. using mxsfb with the nwl bridge and mipi panels.

Fixes: b776b0f00f24 ("drm: mxsfb: Use bus_format from the nearest bridge if 
present")

Reported-by: Martin Kepplinger <mart...@posteo.de>
Signed-off-by: Guido Günther <a...@sigxcpu.org>
---
 drivers/gpu/drm/mxsfb/mxsfb_kms.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c 
b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
index d6abd2077114..f4be16f5c20b 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
@@ -369,6 +369,11 @@ static void mxsfb_crtc_atomic_enable(struct drm_crtc *crtc,
                        drm_atomic_get_new_bridge_state(state,
                                                        mxsfb->bridge);
                bus_format = bridge_state->input_bus_cfg.format;
+               if (bus_format == MEDIA_BUS_FMT_FIXED) {
+                       dev_warn_once(drm->dev,
+                                     "Bridge does not provide bus format. 
Please fix.");
+                       bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+               }
        }
 
        /* If there is no bridge, use bus format from connector */
-- 
2.33.0

Reply via email to