From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=192.198.163.13 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794291443; b=SenCa9agVyiXQCvTtyGU3kfgIxo9SDYI9bQbxDJJwI5h60IkWAlrKefaFIwxTofdNtWF n40Z5u9I8bMIVW2wHNhP7vxAHAcyGeOShQ0lZLqLhNlxik+/ho//mgB99pciLzPcjQbox iQRNlHx8G8cR9a7RugpdqjTm/P3zUn4LxxZzNNjTQeTR6cuhEXOqs8DpWs8DrOKdq7L4c LOKAHejDXfWiHFABqOscNQ+bPIgQjMRkUisI9+8tje6mxCl/YZ6+jCdIZZIbLvEnDT5z/ JcgwZzgBzwTCQGIZvVV2Nig2J4IOsS1o0Y77eR7ylsEYaWJPLGRL8k0dkjYfOFV38hg== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794291443; h=DMARC-Filter:DKIM-Signature:X-CSE-ConnectionGUID:X-CSE-MsgGUID: X-IronPort-AV:X-IronPort-AV:Received:X-CSE-ConnectionGUID: X-CSE-MsgGUID:X-ExtLoop1:X-IronPort-AV:Received:From:To:Cc:Subject: Date:Message-Id:X-Mailer:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding; bh=7M7yfYOup9jR6m8HhUVRKMpkwWGpnfK7u6kQwkF9jJo=; b=VY16kZRrudPGe/fOZIINAZl3mrHQDnWZ1ap9USFWFJKs2sJyckbcnHyKaLMw1BDLPlr9 j2KCY+M7uKnv2mUSvsYbcDbXBBMlZNUwTSGiiZi68Vp73u7iBdyfzyEXDbLU9NYCiSPgd UrBjxcnhWj+Zl2QRqANppCqrSP3RdjHdieWOznPsvzuTyaBb59gpcwBI14MI+SxkdzVp7 hds6JnouQecp/xnZmMM9MDUb1Mq9ikQnLgJHqCooD1vPp2epn1AeZwW5beix8gKtWQfYi wgyV1qwkGR54gBkVbhGjALSVe47wH8Azk8at6/khj0PhP0p+UCtgkZ4Z0yKVihQ1ZRg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=ksIiljwQ; arc=none smtp.remote-ip=192.198.163.13 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00BB9606A33B; Tue, 10 Nov 2026 06:17:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 00BB9606A33B Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=ksIiljwQ DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1794291443; x=1825827443; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KzAi9T3jGLcQCmBrOylQfJ7CFL2s4Hae6yHz93zlQiY=; b=ksIiljwQJuo4VOqe2hf/O77fn5NU8tE5IFgVOJIP7TlafW+/Lp5GoF3y sibZ1bgkSmX1FltLvTrlby4n0D7VTy+rign3XLhnUA+ID20ZwDWRzqtOt DnNmLAWeiKGO57LMwVaALZCJZkqZ9VWwM8C4z+/mbW3CJDp1gfmOWcSe5 PHb0ttyDQc8OzxX322jsCSo5JthaeMDukBY8cygYi9UN+riCAuDK75ncH anp3U/oDJtfGbFQFvlUgYmoXOvoQ23L7gtN2J9CMQqePx3iOl8qijbMiM ldPU7T2gJ7UUSUbbcHiNn0nGvUfCKkfbX1O3hh4DgXgl14U9Aw5nlnvqu A==; X-CSE-ConnectionGUID: xEdn43FiRzC4zWPq2paLzQ== X-CSE-MsgGUID: HGfsxbsdTB6lAeYz3j1qSA== X-IronPort-AV: E=McAfee;i="6800,10657,11961"; a="3020980" X-IronPort-AV: E=Sophos;i="6.27,205,1787036400"; d="scan'208";a="3020980" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2026 22:17:22 -0800 X-CSE-ConnectionGUID: ONoeAdonTRyR3/pu2qUOfg== X-CSE-MsgGUID: UC1KAGCJSXiRGjNSIGtcDg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.27,205,1787036400"; d="scan'208";a="7931027" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa004.jf.intel.com with ESMTP; 09 Nov 2026 22:17:16 -0800 From: Suraj Kandpal To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: dmitry.baryshkov@oss.qualcomm.com, John.Harrison@Igalia.com, kernel-dev@igalia.com, alex.hung@amd.com, liviu.dudau@arm.com, louis.chauvet@bootlin.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, laurent.pinchart+renesas@ideasonboard.com, tomi.valkeinen+renesas@ideasonboard.com, kieran.bingham+renesas@ideasonboard.com, dave.stevenson@raspberrypi.com, mcanal@igalia.com, kernel-list@raspberrypi.com, uma.shankar@intel.com, arun.r.murthy@intel.com, Suraj Kandpal Subject: [PATCH v7 4/8] drm: writeback: Modify drm_writeback_queue_job helper Date: Tue, 10 Nov 2026 11:46:33 +0530 Message-Id: <20261110061637.2500929-5-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261110061637.2500929-1-suraj.kandpal@intel.com> References: <20261110061637.2500929-1-suraj.kandpal@intel.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit drm_writeback_queue_job() 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 is also consistent with the rest of the writeback interface which is being updated to use drm_connector as the top level handle. Signed-off-by: Suraj Kandpal Reviewed-by: Dmitry Baryshkov Reviewed-by: John Harrison Reviewed-by: Alex Hung --- v6 -> v7: - Rebase over latest kernel - Rebase over latest writeback series by Dmitry v5 -> v6: - Rebase over latest kernel v4 -> v5: - Make @connector kerneldoc wording consistent across the series (John) 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.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 | 2 +- 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, 12 insertions(+), 12 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 2fca88a4ac7d..0fdc32878002 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -4909,7 +4909,7 @@ dm_set_writeback(struct amdgpu_display_manager *dm, dc_stream_add_writeback(dm->dc, crtc_state->stream, wb_info); acrtc->wb_conn = wb_conn; - drm_writeback_queue_job(wb_conn, new_con_state); + drm_writeback_queue_job(connector, new_con_state); /* * Writeback completion is detected in the CRTC vblank IRQ diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c index 1908a4578f73..fd35f81dfca8 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c @@ -272,7 +272,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 bf06a47c3b63..cff3fdb37f8d 100644 --- a/drivers/gpu/drm/arm/malidp_mw.c +++ b/drivers/gpu/drm/arm/malidp_mw.c @@ -256,7 +256,6 @@ void malidp_mw_atomic_commit(struct drm_device *drm, struct drm_atomic_commit *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; @@ -276,7 +275,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 4a32ab840862..a97cd4fa8dec 100644 --- a/drivers/gpu/drm/drm_writeback.c +++ b/drivers/gpu/drm/drm_writeback.c @@ -381,7 +381,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: DRM connector which contains the writeback connector to + * 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 @@ -398,9 +399,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 e2a328225c9e..0a4026f22274 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 @@ -486,7 +486,7 @@ static void dpu_encoder_phys_wb_prepare_for_kickoff( 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 5ad8b935eb81..c3802bbced16 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c @@ -253,7 +253,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->wb_connector.writeback, state); + drm_writeback_queue_job(&rcrtc->wb_connector, 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 34a9c714deb8..584610e1628f 100644 --- a/drivers/gpu/drm/vc4/vc4_txp.c +++ b/drivers/gpu/drm/vc4/vc4_txp.c @@ -356,7 +356,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 b8ef524fe313..8d72946989fe 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); -- 2.34.1