lkml.org 
[lkml]   [2026]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [v3,3/7] drm: writeback: Modify drm_writeback_queue_job params
From
On 3/16/26 01:30, Suraj Kandpal wrote:
> Move to using drm_connector structure instead of drm_writeback_connector
> since this now writeback resides within drm_connector.
> This helps make sure drivers change drm_writeback_connector
> using helpers provided by drm core.
I'm not following this last sentence. Was some driver somewhere not
using the correct helpers? If so, why aren't I seeing a fix for it?

I would basically just keep the commit message an exact copy of the one
from patch #2. It is really just a single change being split across
multiple patches for ease of review. So the more consistency and
repetition there is, the easier it is to see them as being a single
operation.

>
> Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
> drivers/gpu/drm/arm/display/komeda/komeda_crtc.c | 2 +-
> drivers/gpu/drm/arm/malidp_mw.c | 3 +--
> drivers/gpu/drm/drm_writeback.c | 6 ++++--
> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 4 ++--
> drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c | 2 +-
> drivers/gpu/drm/vc4/vc4_txp.c | 2 +-
> drivers/gpu/drm/vkms/vkms_writeback.c | 3 +--
> include/drm/drm_writeback.h | 2 +-
> 9 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 5fe3eb6fc6e1..9faf16036531 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -10645,7 +10645,7 @@ static void dm_set_writeback(struct amdgpu_display_manager *dm,
>
> acrtc->wb_pending = true;
> acrtc->wb_conn = wb_conn;
> - drm_writeback_queue_job(wb_conn, new_con_state);
> + drm_writeback_queue_job(connector, new_con_state);
> }
>
> static void amdgpu_dm_update_hdcp(struct drm_atomic_state *state)
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> index ab7dcc7fd8f3..0d22c2e7f722 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> @@ -271,7 +271,7 @@ komeda_crtc_do_flush(struct drm_crtc *crtc,
>
> conn_st = wb_conn ? wb_conn->base.state : NULL;
> if (conn_st && conn_st->writeback_job)
> - drm_writeback_queue_job(&wb_conn->base.writeback, conn_st);
> + drm_writeback_queue_job(&wb_conn->base, conn_st);
>
> /* step 2: notify the HW to kickoff the update */
> mdev->funcs->flush(mdev, master->id, kcrtc_st->active_pipes);
> diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_mw.c
> index 7d42b007ef19..af31d6570231 100644
> --- a/drivers/gpu/drm/arm/malidp_mw.c
> +++ b/drivers/gpu/drm/arm/malidp_mw.c
> @@ -243,7 +243,6 @@ void malidp_mw_atomic_commit(struct drm_device *drm,
> struct drm_atomic_state *old_state)
> {
> struct malidp_drm *malidp = drm_to_malidp(drm);
> - struct drm_writeback_connector *mw_conn = &malidp->mw_connector.writeback;
> struct drm_connector_state *conn_state = malidp->mw_connector.state;
> struct malidp_hw_device *hwdev = malidp->dev;
> struct malidp_mw_connector_state *mw_state;
> @@ -263,7 +262,7 @@ void malidp_mw_atomic_commit(struct drm_device *drm,
> &mw_state->addrs[0],
> mw_state->format);
>
> - drm_writeback_queue_job(mw_conn, conn_state);
> + drm_writeback_queue_job(&malidp->mw_connector, conn_state);
> hwdev->hw->enable_memwrite(hwdev, mw_state->addrs,
> mw_state->pitches, mw_state->n_planes,
> fb->width, fb->height, mw_state->format,
> diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writeback.c
> index 9a3037d11009..1c1802d87f13 100644
> --- a/drivers/gpu/drm/drm_writeback.c
> +++ b/drivers/gpu/drm/drm_writeback.c
> @@ -404,7 +404,8 @@ EXPORT_SYMBOL(drm_writeback_prepare_job);
>
> /**
> * drm_writeback_queue_job - Queue a writeback job for later signalling
> - * @wb_connector: The writeback connector to queue a job on
> + * @connector: The drm connector which contains the writeback connector to
Double space.

John

> + * queue a job on
> * @conn_state: The connector state containing the job to queue
> *
> * This function adds the job contained in @conn_state to the job_queue for a
> @@ -421,9 +422,10 @@ EXPORT_SYMBOL(drm_writeback_prepare_job);
> *
> * See also: drm_writeback_signal_completion()
> */
> -void drm_writeback_queue_job(struct drm_writeback_connector *wb_connector,
> +void drm_writeback_queue_job(struct drm_connector *connector,
> struct drm_connector_state *conn_state)
> {
> + struct drm_writeback_connector *wb_connector = &connector->writeback;
> struct drm_writeback_job *job;
> unsigned long flags;
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
> index 0375faf7f50c..5beffb73fd50 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
> @@ -483,11 +483,11 @@ static void dpu_encoder_phys_wb_prepare_for_kickoff(
> }
>
> drm_conn =
> - container_of(wb_enc->wb_conn, struct drm_connector, writeback);
> + drm_writeback_to_connector(wb_enc->wb_conn);
> state = drm_conn->state;
>
> if (wb_enc->wb_conn && wb_enc->wb_job)
> - drm_writeback_queue_job(wb_enc->wb_conn, state);
> + drm_writeback_queue_job(drm_conn, state);
>
> dpu_encoder_phys_wb_setup(phys_enc);
>
> 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 1de8865fb751..4921d4b9cef5 100644
> --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
> +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c
> @@ -248,7 +248,7 @@ void rcar_du_writeback_setup(struct rcar_du_crtc *rcrtc,
> cfg->mem[i] = sg_dma_address(rjob->sg_tables[i].sgl)
> + fb->offsets[i];
>
> - drm_writeback_queue_job(&rcrtc->writeback.writeback, state);
> + drm_writeback_queue_job(&rcrtc->writeback, state);
> }
>
> void rcar_du_writeback_complete(struct rcar_du_crtc *rcrtc)
> diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c
> index d08271142116..abd47bea60ed 100644
> --- a/drivers/gpu/drm/vc4/vc4_txp.c
> +++ b/drivers/gpu/drm/vc4/vc4_txp.c
> @@ -357,7 +357,7 @@ static void vc4_txp_connector_atomic_commit(struct drm_connector *conn,
>
> TXP_WRITE(TXP_DST_CTRL, ctrl);
>
> - drm_writeback_queue_job(&txp->connector.writeback, conn_state);
> + drm_writeback_queue_job(&txp->connector, conn_state);
>
> drm_dev_exit(idx);
> }
> diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/vkms_writeback.c
> index b368c569cf0a..59d44c759785 100644
> --- a/drivers/gpu/drm/vkms/vkms_writeback.c
> +++ b/drivers/gpu/drm/vkms/vkms_writeback.c
> @@ -131,7 +131,6 @@ static void vkms_wb_atomic_commit(struct drm_connector *conn,
> struct drm_connector_state *connector_state = drm_atomic_get_new_connector_state(state,
> conn);
> struct vkms_output *output = drm_crtc_to_vkms_output(connector_state->crtc);
> - struct drm_writeback_connector *wb_conn = &output->wb_connector.writeback;
> struct drm_connector_state *conn_state = output->wb_connector.state;
> struct vkms_crtc_state *crtc_state = output->composer_state;
> struct drm_framebuffer *fb = connector_state->writeback_job->fb;
> @@ -153,7 +152,7 @@ static void vkms_wb_atomic_commit(struct drm_connector *conn,
> crtc_state->active_writeback = active_wb;
> crtc_state->wb_pending = true;
> spin_unlock_irq(&output->composer_lock);
> - drm_writeback_queue_job(wb_conn, connector_state);
> + drm_writeback_queue_job(&output->wb_connector, connector_state);
> active_wb->pixel_write = get_pixel_write_function(wb_format);
> drm_rect_init(&wb_frame_info->src, 0, 0, crtc_width, crtc_height);
> drm_rect_init(&wb_frame_info->dst, 0, 0, crtc_width, crtc_height);
> diff --git a/include/drm/drm_writeback.h b/include/drm/drm_writeback.h
> index c6960c7e634e..b4c11d380df0 100644
> --- a/include/drm/drm_writeback.h
> +++ b/include/drm/drm_writeback.h
> @@ -94,7 +94,7 @@ int drm_writeback_set_fb(struct drm_connector_state *conn_state,
>
> int drm_writeback_prepare_job(struct drm_writeback_job *job);
>
> -void drm_writeback_queue_job(struct drm_writeback_connector *wb_connector,
> +void drm_writeback_queue_job(struct drm_connector *wb_connector,
> struct drm_connector_state *conn_state);
>
> void drm_writeback_cleanup_job(struct drm_writeback_job *job);


\
 
 \ /
  Last update: 2026-05-04 19:50    [W:0.212 / U:0.849 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog