Hi Tomi, Thank you for the patch. On Fri, Nov 27, 2020 at 10:52:41AM +0200, Tomi Valkeinen wrote: > When the SDI output was converted to DRM bridge, the atomic versions of > enable and disable funcs were used. This was not intended, as that would > require implementing other atomic funcs too. This leads to: > > WARNING: CPU: 0 PID: 18 at drivers/gpu/drm/drm_bridge.c:708 drm_atomic_helper_commit_modeset_enables+0x134/0x268 > > and display not working. > > Fix this by using the legacy enable/disable funcs. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> > Reported-by: Aaro Koskinen <aaro.koskinen@xxxxxx> > Fixes: 8bef8a6d5da81b909a190822b96805a47348146f ("drm/omap: sdi: Register a drm_bridge") > Cc: stable@xxxxxxxxxxxxxxx # v5.7+ > Tested-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@xxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/omapdrm/dss/sdi.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c > index 033fd30074b0..282e4c837cd9 100644 > --- a/drivers/gpu/drm/omapdrm/dss/sdi.c > +++ b/drivers/gpu/drm/omapdrm/dss/sdi.c > @@ -195,8 +195,7 @@ static void sdi_bridge_mode_set(struct drm_bridge *bridge, > sdi->pixelclock = adjusted_mode->clock * 1000; > } > > -static void sdi_bridge_enable(struct drm_bridge *bridge, > - struct drm_bridge_state *bridge_state) > +static void sdi_bridge_enable(struct drm_bridge *bridge) > { > struct sdi_device *sdi = drm_bridge_to_sdi(bridge); > struct dispc_clock_info dispc_cinfo; > @@ -259,8 +258,7 @@ static void sdi_bridge_enable(struct drm_bridge *bridge, > regulator_disable(sdi->vdds_sdi_reg); > } > > -static void sdi_bridge_disable(struct drm_bridge *bridge, > - struct drm_bridge_state *bridge_state) > +static void sdi_bridge_disable(struct drm_bridge *bridge) > { > struct sdi_device *sdi = drm_bridge_to_sdi(bridge); > > @@ -278,8 +276,8 @@ static const struct drm_bridge_funcs sdi_bridge_funcs = { > .mode_valid = sdi_bridge_mode_valid, > .mode_fixup = sdi_bridge_mode_fixup, > .mode_set = sdi_bridge_mode_set, > - .atomic_enable = sdi_bridge_enable, > - .atomic_disable = sdi_bridge_disable, > + .enable = sdi_bridge_enable, > + .disable = sdi_bridge_disable, > }; > > static void sdi_bridge_init(struct sdi_device *sdi) -- Regards, Laurent Pinchart