[PATCH v1 2/5] drm: mxsfb: Set proper default bus format when using a bridge

From: Guido Günther
Date: Tue Sep 28 2021 - 08:16:39 EST


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 <martink@xxxxxxxxx>
Signed-off-by: Guido Günther <agx@xxxxxxxxxxx>
---
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