On 27.05.2019 12:21, Yannick Fertré wrote: > These new physical operations are helpful to power_on/off the dsi > wrapper. If the dsi wrapper is powered in video mode, the display > controller (ltdc) register access will hang when DSI fifos are full. > > Signed-off-by: Yannick Fertré <yannick.fertre@xxxxxx> Reviewed-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx> -- Regards Andrzej > --- > drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 21 ++++++++++++++++++++- > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c > index 01db020..0ab32fe 100644 > --- a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c > +++ b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c > @@ -210,10 +210,27 @@ static int dw_mipi_dsi_phy_init(void *priv_data) > if (ret) > DRM_DEBUG_DRIVER("!TIMEOUT! waiting PLL, let's continue\n"); > > + return 0; > +} > + > +static void dw_mipi_dsi_phy_power_on(void *priv_data) > +{ > + struct dw_mipi_dsi_stm *dsi = priv_data; > + > + DRM_DEBUG_DRIVER("\n"); > + > /* Enable the DSI wrapper */ > dsi_set(dsi, DSI_WCR, WCR_DSIEN); > +} > > - return 0; > +static void dw_mipi_dsi_phy_power_off(void *priv_data) > +{ > + struct dw_mipi_dsi_stm *dsi = priv_data; > + > + DRM_DEBUG_DRIVER("\n"); > + > + /* Disable the DSI wrapper */ > + dsi_clear(dsi, DSI_WCR, WCR_DSIEN); > } > > static int > @@ -287,6 +304,8 @@ dw_mipi_dsi_get_lane_mbps(void *priv_data, const struct drm_display_mode *mode, > > static const struct dw_mipi_dsi_phy_ops dw_mipi_dsi_stm_phy_ops = { > .init = dw_mipi_dsi_phy_init, > + .power_on = dw_mipi_dsi_phy_power_on, > + .power_off = dw_mipi_dsi_phy_power_off, > .get_lane_mbps = dw_mipi_dsi_get_lane_mbps, > }; > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel