Re: [PATCH v6 6/7] drm: writeback: Modify prepare_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 prepare_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 | 2 +-
>   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                | 2 +-
>   include/drm/drm_modeset_helper_vtables.h             | 2 +-
>   6 files changed, 7 insertions(+), 9 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 92039d93f9e4..e0425eda0bb6 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
> @@ -85,7 +85,7 @@ STATIC_IFN_KUNIT int amdgpu_dm_wb_connector_get_modes(struct drm_connector *conn
>   }
>   EXPORT_IF_KUNIT(amdgpu_dm_wb_connector_get_modes);
>   
> -static int amdgpu_dm_wb_prepare_job(struct drm_writeback_connector *wb_connector,
> +static int amdgpu_dm_wb_prepare_job(struct drm_connector *connector,
>   			       struct drm_writeback_job *job)
>   {
>   	struct amdgpu_framebuffer *afb;
> diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writeback.c
> index d2ccb4dcba0a..e6b52de69ad6 100644
> --- a/drivers/gpu/drm/drm_writeback.c
> +++ b/drivers/gpu/drm/drm_writeback.c
> @@ -396,7 +396,7 @@ int drm_writeback_prepare_job(struct drm_writeback_job *job)
>   	int ret;
>   
>   	if (funcs->prepare_writeback_job) {
> -		ret = funcs->prepare_writeback_job(wb_connector, job);
> +		ret = funcs->prepare_writeback_job(connector, job);
>   		if (ret < 0)
>   			return ret;
>   	}
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
> index c9f53490c1a7..061e6960c09b 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
> @@ -87,10 +87,9 @@ static const struct drm_connector_funcs dpu_wb_conn_funcs = {
>   	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>   };
>   
> -static int dpu_wb_conn_prepare_job(struct drm_writeback_connector *wb_conn,
> +static int dpu_wb_conn_prepare_job(struct drm_connector *connector,
>   		struct drm_writeback_job *job)
>   {
> -	struct drm_connector *connector = drm_writeback_to_connector(wb_conn);
>   	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 4b0f6cd46acb..218b6504cacf 100644
> --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
> +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
> @@ -47,11 +47,10 @@ static int rcar_du_wb_conn_get_modes(struct drm_connector *connector)
>   				    dev->mode_config.max_height);
>   }
>   
> -static int rcar_du_wb_prepare_job(struct drm_writeback_connector *connector,
> +static int rcar_du_wb_prepare_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;
>   	int ret;
>   
> diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/vkms_writeback.c
> index 2e3df9388dd2..86e5b92c7965 100644
> --- a/drivers/gpu/drm/vkms/vkms_writeback.c
> +++ b/drivers/gpu/drm/vkms/vkms_writeback.c
> @@ -72,7 +72,7 @@ static int vkms_wb_connector_get_modes(struct drm_connector *connector)
>   				    dev->mode_config.max_height);
>   }
>   
> -static int vkms_wb_prepare_job(struct drm_writeback_connector *wb_connector,
> +static int vkms_wb_prepare_job(struct drm_connector *connector,
>   			       struct drm_writeback_job *job)
>   {
>   	struct vkms_writeback_job *vkmsjob;
> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> index ca6268945c28..4e26568a16fb 100644
> --- a/include/drm/drm_modeset_helper_vtables.h
> +++ b/include/drm/drm_modeset_helper_vtables.h
> @@ -1119,7 +1119,7 @@ struct drm_connector_helper_funcs {
>   	 *
>   	 * This callback is used by the atomic modeset helpers.
>   	 */
> -	int (*prepare_writeback_job)(struct drm_writeback_connector *connector,
> +	int (*prepare_writeback_job)(struct drm_connector *connector,
>   				     struct drm_writeback_job *job);
>   	/**
>   	 * @cleanup_writeback_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.