Message ID | 1fd5457b925249bce77315663adabecdd29ec0f3.1632828477.git.agx@sigxcpu.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mxsfb/nwl/panels: media bus format fixes | expand |
On 9/28/21 2:16 PM, Guido Günther wrote: > 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@posteo.de> > Signed-off-by: Guido Günther <agx@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."); Fix what ? Oh ... the bridge driver ? Maybe such a hint should be in the warning message. And it might be useful to explain how to fix that bridge driver, or at least provide some reference to an example (like this nwl patch series). > + bus_format = MEDIA_BUS_FMT_RGB888_1X24; The warning should also mention that the driver is falling back to this mode.
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 */
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@posteo.de> Signed-off-by: Guido Günther <agx@sigxcpu.org> --- drivers/gpu/drm/mxsfb/mxsfb_kms.c | 5 +++++ 1 file changed, 5 insertions(+)