[PATCH] drm: bridge: dw-mipi-dsi: Drop panel_bridge post_disable call

Neil Armstrong neil.armstrong at linaro.org
Tue May 16 07:28:21 UTC 2023


On 13/05/2023 22:10, Marek Vasut wrote:
> This panel_bridge post_disable callback is called from the bridge chain now,
> so drop the explicit call here. This fixes call imbalance, where this driver
> does not call ->pre_enable, but does call ->post_disable . In case either of
> the two callbacks implemented in one of the panel or bridge drivers contains
> any operation with refcounted object, like regulator, this would make kernel
> complain about the imbalance.
> 
> This can be triggered e.g. with ST7701 driver, which operates on regulators
> in its prepare/unprepare callbacks, which are called from pre_enable/post_disable
> callbacks respectively. The former is called once, the later twice, during
> entry to suspend.
> 
> Drop the post_disable call to fix the imbalance.
> 
> Signed-off-by: Marek Vasut <marex at denx.de>
> ---
> Cc: Andrzej Hajda <andrzej.hajda at intel.com>
> Cc: Antonio Borneo <antonio.borneo at foss.st.com>
> Cc: Daniel Vetter <daniel at ffwll.ch>
> Cc: David Airlie <airlied at gmail.com>
> Cc: Jernej Skrabec <jernej.skrabec at gmail.com>
> Cc: Jonas Karlman <jonas at kwiboo.se>
> Cc: Laurent Pinchart <Laurent.pinchart at ideasonboard.com>
> Cc: Marek Vasut <marex at denx.de>
> Cc: Neil Armstrong <neil.armstrong at linaro.org>
> Cc: Philipp Zabel <p.zabel at pengutronix.de>
> Cc: Philippe Cornu <philippe.cornu at foss.st.com>
> Cc: Robert Foss <robert.foss at linaro.org>
> Cc: Vincent Abriou <vincent.abriou at st.com>
> Cc: Yannick Fertre <yannick.fertre at foss.st.com>
> Cc: dri-devel at lists.freedesktop.org
> ---
>   drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 9 ---------
>   1 file changed, 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
> index b2efecf7d1603..63ac972547361 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
> @@ -859,15 +859,6 @@ static void dw_mipi_dsi_bridge_post_atomic_disable(struct drm_bridge *bridge,
>   	 */
>   	dw_mipi_dsi_set_mode(dsi, 0);
>   
> -	/*
> -	 * TODO Only way found to call panel-bridge post_disable &
> -	 * panel unprepare before the dsi "final" disable...
> -	 * This needs to be fixed in the drm_bridge framework and the API
> -	 * needs to be updated to manage our own call chains...
> -	 */
> -	if (dsi->panel_bridge->funcs->post_disable)
> -		dsi->panel_bridge->funcs->post_disable(dsi->panel_bridge);
> -
>   	if (phy_ops->power_off)
>   		phy_ops->power_off(dsi->plat_data->priv_data);
>   

Waiting a few days before applying

Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>


More information about the dri-devel mailing list