On 25.07.2018 05:56, Icenowy Zheng wrote: > Currently dw_hdmi_setup is only run when the dw-hdmi bridge is enabled, > with the mode set last time. > > When the bridge is enabled before any mode is set (this may happen when > booting), the mode won't be set at all, some setup steps will be > skipped or fail, and the HDMI output may not work. I guess, it should not happen. Could you show the stack-trace. > > Re-run dw_hdmi_setup when setting mode, in order to prevent such > situation. mode_set is run with hardware disabled, thus usually it should not touch hardware. > > Signed-off-by: Icenowy Zheng <icenowy@xxxxxxx> > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > index 5971976284bf..e2f832182afe 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -2007,6 +2007,7 @@ static void dw_hdmi_bridge_mode_set(struct drm_bridge *bridge, > > /* Store the display mode for plugin/DKMS poweron events */ > memcpy(&hdmi->previous_mode, mode, sizeof(hdmi->previous_mode)); > + dw_hdmi_setup(hdmi, mode); This hdmi->previous_mode also looks strange, it is current mode and moreover it is always available from crtc state, there is no point in copying it to private field. Regards Andrzej > > mutex_unlock(&hdmi->mutex); > } _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel