Re: [PATCH v6 7/7] drm: writeback: Modify cleanup_writeback_job helper

Alex Hung <[email protected]>
Newsgroups org.freedesktop.lists.intel-gfx,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.freedesktop.lists.intel-xe,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Reviewed-by: Alex Hung <[email protected]>

On 7/13/26 22:28, Suraj Kandpal wrote:
> The cleanup_writeback_job() connector helper hook needs access to
> the parent drm_connector object as well as the drm_writeback_connector
> object itself. So, pass in the top level drm_connector and traverse
> down to drm_writeback_connector rather than passing in the lower
> level object and traversing back up. This also makes it uniform
> with the params passed to other drm_connector_helper_funcs hooks.
> 
> Signed-off-by: Suraj Kandpal <[email protected]>
> Reviewed-by: Dmitry Baryshkov <[email protected]>
> Reviewed-by: John Harrison <[email protected]>
> ---
> v5 -> v6:
> - Rebase over latest kernel
> 
> v3 -> v4:
> - Update subject line for consitency (John)
> - Update commit message across commits for consitency (John)
> 
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c | 4 ++--
>   drivers/gpu/drm/drm_writeback.c                      | 2 +-
>   drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c        | 3 +--
>   drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c  | 5 ++---
>   drivers/gpu/drm/vkms/vkms_writeback.c                | 5 +----
>   include/drm/drm_modeset_helper_vtables.h             | 2 +-
>   6 files changed, 8 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
> index e0425eda0bb6..6fd1376fbc1a 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
> @@ -147,8 +147,8 @@ static int amdgpu_dm_wb_prepare_job(struct drm_connector *connector,
>   	return r;
>   }
>   
> -static void amdgpu_dm_wb_cleanup_job(struct drm_writeback_connector *connector,
> -				struct drm_writeback_job *job)
> +static void amdgpu_dm_wb_cleanup_job(struct drm_connector *connector,
> +				     struct drm_writeback_job *job)
>   {
>   	struct amdgpu_bo *rbo;
>   	int r;
> diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writeback.c
> index e6b52de69ad6..c8cc09118a6e 100644
> --- a/drivers/gpu/drm/drm_writeback.c
> +++ b/drivers/gpu/drm/drm_writeback.c
> @@ -450,7 +450,7 @@ void drm_writeback_cleanup_job(struct drm_writeback_job *job)
>   		connector->helper_private;
>   
>   	if (job->prepared && funcs->cleanup_writeback_job)
> -		funcs->cleanup_writeback_job(wb_connector, job);
> +		funcs->cleanup_writeback_job(connector, job);
>   
>   	if (job->fb)
>   		drm_framebuffer_put(job->fb);
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
> index 061e6960c09b..c6396ac1f64c 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
> @@ -100,10 +100,9 @@ static int dpu_wb_conn_prepare_job(struct drm_connector *connector,
>   	return 0;
>   }
>   
> -static void dpu_wb_conn_cleanup_job(struct drm_writeback_connector *wb_connector,
> +static void dpu_wb_conn_cleanup_job(struct drm_connector *connector,
>   		struct drm_writeback_job *job)
>   {
> -	struct drm_connector *connector = drm_writeback_to_connector(wb_connector);
>   	struct dpu_wb_connector *dpu_wb_conn = to_dpu_wb_conn(connector);
>   
>   	if (!job->fb)
> diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
> index 218b6504cacf..e7d7b221c487 100644
> --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
> +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
> @@ -72,11 +72,10 @@ static int rcar_du_wb_prepare_job(struct drm_connector *connector,
>   	return 0;
>   }
>   
> -static void rcar_du_wb_cleanup_job(struct drm_writeback_connector *connector,
> +static void rcar_du_wb_cleanup_job(struct drm_connector *connector,
>   				   struct drm_writeback_job *job)
>   {
> -	struct drm_connector *conn = drm_writeback_to_connector(connector);
> -	struct rcar_du_crtc *rcrtc = wb_to_rcar_crtc(conn);
> +	struct rcar_du_crtc *rcrtc = wb_to_rcar_crtc(connector);
>   	struct rcar_du_wb_job *rjob = job->priv;
>   
>   	if (!job->fb)
> diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/vkms_writeback.c
> index 86e5b92c7965..775abb4677ef 100644
> --- a/drivers/gpu/drm/vkms/vkms_writeback.c
> +++ b/drivers/gpu/drm/vkms/vkms_writeback.c
> @@ -103,13 +103,10 @@ static int vkms_wb_prepare_job(struct drm_connector *connector,
>   	return ret;
>   }
>   
> -static void vkms_wb_cleanup_job(struct drm_writeback_connector *wb_conn,
> +static void vkms_wb_cleanup_job(struct drm_connector *connector,
>   				struct drm_writeback_job *job)
>   {
>   	struct vkms_writeback_job *vkmsjob = job->priv;
> -	struct drm_connector *connector = container_of(wb_conn,
> -						       struct drm_connector,
> -						       writeback);
>   	struct vkms_output *vkms_output = container_of(connector,
>   						       struct vkms_output,
>   						       wb_connector);
> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> index 4e26568a16fb..9ce5ddd82057 100644
> --- a/include/drm/drm_modeset_helper_vtables.h
> +++ b/include/drm/drm_modeset_helper_vtables.h
> @@ -1134,7 +1134,7 @@ struct drm_connector_helper_funcs {
>   	 *
>   	 * This callback is used by the atomic modeset helpers.
>   	 */
> -	void (*cleanup_writeback_job)(struct drm_writeback_connector *connector,
> +	void (*cleanup_writeback_job)(struct drm_connector *connector,
>   				      struct drm_writeback_job *job);
>   
>   	/**
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.