Hi, On Sat, May 26, 2018 at 08:25:17PM +0300, Laurent Pinchart wrote: > The omap_dss_device.dispc_channel_connect field is used by DSS outputs > to fail the .enable() operation if they're not connected. Set the field > directly from the (dis)connect handlers of the DSS outputs instead of > going through the CRTC dss_mgr operations. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx> -- Sebastian > drivers/gpu/drm/omapdrm/dss/dpi.c | 3 +++ > drivers/gpu/drm/omapdrm/dss/dsi.c | 3 +++ > drivers/gpu/drm/omapdrm/dss/hdmi4.c | 3 +++ > drivers/gpu/drm/omapdrm/dss/hdmi5.c | 3 +++ > drivers/gpu/drm/omapdrm/dss/sdi.c | 3 +++ > drivers/gpu/drm/omapdrm/dss/venc.c | 3 +++ > drivers/gpu/drm/omapdrm/omap_crtc.c | 3 --- > 7 files changed, 18 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/dss/dpi.c b/drivers/gpu/drm/omapdrm/dss/dpi.c > index 4cf397c9300e..72d873c2abcc 100644 > --- a/drivers/gpu/drm/omapdrm/dss/dpi.c > +++ b/drivers/gpu/drm/omapdrm/dss/dpi.c > @@ -626,12 +626,15 @@ static int dpi_connect(struct omap_dss_device *src, > return r; > } > > + dst->dispc_channel_connected = true; > return 0; > } > > static void dpi_disconnect(struct omap_dss_device *src, > struct omap_dss_device *dst) > { > + dst->dispc_channel_connected = false; > + > omapdss_device_disconnect(dst, dst->next); > > dss_mgr_disconnect(dst); > diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c > index bc470baa4f5c..bd5e463558be 100644 > --- a/drivers/gpu/drm/omapdrm/dss/dsi.c > +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c > @@ -4896,12 +4896,15 @@ static int dsi_connect(struct omap_dss_device *src, > return r; > } > > + dst->dispc_channel_connected = true; > return 0; > } > > static void dsi_disconnect(struct omap_dss_device *src, > struct omap_dss_device *dst) > { > + dst->dispc_channel_connected = false; > + > omapdss_device_disconnect(dst, dst->next); > > dss_mgr_disconnect(dst); > diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c > index 6616530d5fe6..1e025a8b99c9 100644 > --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c > +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c > @@ -443,12 +443,15 @@ static int hdmi_connect(struct omap_dss_device *src, > return r; > } > > + dst->dispc_channel_connected = true; > return 0; > } > > static void hdmi_disconnect(struct omap_dss_device *src, > struct omap_dss_device *dst) > { > + dst->dispc_channel_connected = false; > + > omapdss_device_disconnect(dst, dst->next); > > dss_mgr_disconnect(dst); > diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c b/drivers/gpu/drm/omapdrm/dss/hdmi5.c > index f7e15edc05fc..d5860438ddd9 100644 > --- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c > +++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c > @@ -448,12 +448,15 @@ static int hdmi_connect(struct omap_dss_device *src, > return r; > } > > + dst->dispc_channel_connected = true; > return 0; > } > > static void hdmi_disconnect(struct omap_dss_device *src, > struct omap_dss_device *dst) > { > + dst->dispc_channel_connected = false; > + > omapdss_device_disconnect(dst, dst->next); > > dss_mgr_disconnect(dst); > diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c > index 09c10ba4946b..ed2595a60984 100644 > --- a/drivers/gpu/drm/omapdrm/dss/sdi.c > +++ b/drivers/gpu/drm/omapdrm/dss/sdi.c > @@ -264,12 +264,15 @@ static int sdi_connect(struct omap_dss_device *src, > return r; > } > > + dst->dispc_channel_connected = true; > return 0; > } > > static void sdi_disconnect(struct omap_dss_device *src, > struct omap_dss_device *dst) > { > + dst->dispc_channel_connected = false; > + > omapdss_device_disconnect(dst, dst->next); > > dss_mgr_disconnect(dst); > diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c b/drivers/gpu/drm/omapdrm/dss/venc.c > index 997c4aebd560..4f20183c7861 100644 > --- a/drivers/gpu/drm/omapdrm/dss/venc.c > +++ b/drivers/gpu/drm/omapdrm/dss/venc.c > @@ -706,12 +706,15 @@ static int venc_connect(struct omap_dss_device *src, > return r; > } > > + dst->dispc_channel_connected = true; > return 0; > } > > static void venc_disconnect(struct omap_dss_device *src, > struct omap_dss_device *dst) > { > + dst->dispc_channel_connected = false; > + > omapdss_device_disconnect(dst, dst->next); > > dss_mgr_disconnect(dst); > diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c > index 90917d040ddb..7f837697e76c 100644 > --- a/drivers/gpu/drm/omapdrm/omap_crtc.c > +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c > @@ -114,8 +114,6 @@ static int omap_crtc_dss_connect(struct omap_drm_private *priv, > enum omap_channel channel, > struct omap_dss_device *dst) > { > - dst->dispc_channel_connected = true; > - > return 0; > } > > @@ -123,7 +121,6 @@ static void omap_crtc_dss_disconnect(struct omap_drm_private *priv, > enum omap_channel channel, > struct omap_dss_device *dst) > { > - dst->dispc_channel_connected = false; > } > > static void omap_crtc_dss_start_update(struct omap_drm_private *priv, > -- > Regards, > > Laurent Pinchart > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel