Re: [PATCH 2/2] drm/panel: visionox-rm69299: Move power_on/off into prepare/unprepare

Neil Armstrong <[email protected]>
Newsgroups org.kernel.vger.phone-devel,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Organization Linaro
Message-ID <[email protected]>
On 4/27/26 15:56, Guido Günther wrote:
> No need to have separate functions now that prepare/unprepare only
> handle powering on & off.

Following my comment on patch 1, just move the unprepare() one, keep the
power on in prepare().

Neil

> 
> Signed-off-by: Guido Günther <[email protected]>
> ---
>   drivers/gpu/drm/panel/panel-visionox-rm69299.c | 36 +++++++++-----------------
>   1 file changed, 12 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panel/panel-visionox-rm69299.c b/drivers/gpu/drm/panel/panel-visionox-rm69299.c
> index 3c92a6ceb8df..5c869d353368 100644
> --- a/drivers/gpu/drm/panel/panel-visionox-rm69299.c
> +++ b/drivers/gpu/drm/panel/panel-visionox-rm69299.c
> @@ -198,15 +198,25 @@ static int visionox_rm69299_disable(struct drm_panel *panel)
>   	return dsi_ctx.accum_err;
>   }
>   
> -static int visionox_rm69299_power_on(struct visionox_rm69299 *ctx)
> +static int visionox_rm69299_unprepare(struct drm_panel *panel)
> +{
> +	struct visionox_rm69299 *ctx = panel_to_ctx(panel);
> +
> +	gpiod_set_value(ctx->reset_gpio, 0);
> +
> +	return regulator_bulk_disable(ARRAY_SIZE(visionox_rm69299_supplies),
> +				      ctx->supplies);
> +}
> +
> +static int visionox_rm69299_prepare(struct drm_panel *panel)
>   {
>   	int ret;
> +	struct visionox_rm69299 *ctx = panel_to_ctx(panel);
>   
>   	ret = regulator_bulk_enable(ARRAY_SIZE(visionox_rm69299_supplies),
>   				    ctx->supplies);
>   	if (ret < 0)
>   		return ret;
> -
>   	/*
>   	 * Reset sequence of visionox panel requires the panel to be
>   	 * out of reset for 10ms, followed by being held in reset
> @@ -222,28 +232,6 @@ static int visionox_rm69299_power_on(struct visionox_rm69299 *ctx)
>   	return 0;
>   }
>   
> -static int visionox_rm69299_power_off(struct visionox_rm69299 *ctx)
> -{
> -	gpiod_set_value(ctx->reset_gpio, 0);
> -
> -	return regulator_bulk_disable(ARRAY_SIZE(visionox_rm69299_supplies),
> -				      ctx->supplies);
> -}
> -
> -static int visionox_rm69299_unprepare(struct drm_panel *panel)
> -{
> -	struct visionox_rm69299 *ctx = panel_to_ctx(panel);
> -
> -	return visionox_rm69299_power_off(ctx);
> -}
> -
> -static int visionox_rm69299_prepare(struct drm_panel *panel)
> -{
> -	struct visionox_rm69299 *ctx = panel_to_ctx(panel);
> -
> -	return visionox_rm69299_power_on(ctx);
> -}
> -
>   static const struct drm_display_mode visionox_rm69299_1080x2248_60hz = {
>   	.name = "1080x2248",
>   	.clock = 158695,
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.