From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFC43242D67 for ; Tue, 14 Jul 2026 04:28:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.15 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784003327; cv=none; b=K/2PiWOv9hcDKg78WAs2EaeCbKGz4UJEztMzjqSkhYEqfl3SkLVhFc6VoryeQwTGpUbzrZh9MIzgA9mq+WBTUcMT+GH6ph1/hu8A2hV+uRKNJ2AnD1N+7NP6g9HFvm20tSZU+np8B142UM3xdOXYxO3xMeu3R4Ao+0z0TzBc/gY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784003327; c=relaxed/simple; bh=+66I+QgKyjSNY1as0eKlRs7GuT6fWuvxdBIil9oyeX8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=l3G51uZ1bFoyE8NBcvO/JvT4X0eWN8mnYTAfO7HUy25ZzEo1BvtuOOJU+clUgIkSvZjWHQLcj3vs2BO0oVxBdBP/8yS4wtoEV2wfCsV+vAKi6iJJBW+Ld+7avkaNB2Od2r7SJJaJn5nN27yeb14N8wbxgKqxr/VZErVJUj/UsKQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=LM2TRxcv; arc=none smtp.client-ip=198.175.65.15 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.b="LM2TRxcv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1784003326; x=1815539326; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+66I+QgKyjSNY1as0eKlRs7GuT6fWuvxdBIil9oyeX8=; b=LM2TRxcvR1sqfeXe0CCNnl6v2Cph7rrnO0v2WuMx7y820DsjKIYzRDql QiBz5i7UakNju9FVLw0M/VpPMRPKituDBR+oTt/aDAuFqrKzQK5d2cqHH K8vi96uFBwapmlWAwb0EtdPlAJ/+PXDUqsx89giw+1D54rmgk/CEe9IO3 WgoDR2yJdfgmuwd2HjVo5cEHqkyjTglucG+sEAxZSVuZ12Dzc8+8BNW/C 9E9JAPYP3GcBFlOQrg2NE9m2Lg9DqzqkCopJn8G78FfWl3oKR3EJtPwgN 6eojZGQIeWFIJWwz/sVVxhVhXokYNyB0iqGZxwL78sz7h7SpLWqpxCXhm w==; X-CSE-ConnectionGUID: cyUR/UJJQLqe8H7+vgQdpA== X-CSE-MsgGUID: Y5vZE5/wTRSzYbjge2uCrA== X-IronPort-AV: E=McAfee;i="6800,10657,11841"; a="88297078" X-IronPort-AV: E=Sophos;i="6.25,163,1779174000"; d="scan'208";a="88297078" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa107.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2026 21:28:45 -0700 X-CSE-ConnectionGUID: +fywegqFQ5ynISSehlih/Q== X-CSE-MsgGUID: lL3ZGegKQSaukVkSb2SCxA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,163,1779174000"; d="scan'208";a="255243173" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa008.jf.intel.com with ESMTP; 13 Jul 2026 21:28:38 -0700 From: Suraj Kandpal To: freedreno@lists.freedesktop.org, dri-devel@lists.freedesktop.org, kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: uma.shankar@intel.com, arun.r.murthy@intel.com, abhinav.kumar@linux.dev, tzimmermann@suse.de, sean@poorly.ru, marijn.suijten@somainline.org, laurent.pinchart+renesas@ideasonboard.com, dave.stevenson@raspberrypi.com, tomi.valkeinen+renesas@ideasonboard.com, kieran.bingham+renesas@ideasonboard.com, louis.chauvet@bootlin.com, kernel-dev@igalia.com, John.Harrison@Igalia.com, Suraj Kandpal , Dmitry Baryshkov Subject: [PATCH v6 3/7] drm: writeback: Modify drm_writeback_queue_job helper Date: Tue, 14 Jul 2026 09:58:01 +0530 Message-Id: <20260714042805.77934-4-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260714042805.77934-1-suraj.kandpal@intel.com> References: <20260714042805.77934-1-suraj.kandpal@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 --- 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 427a8a52d256..9504f6b5571e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -4975,7 +4975,7 @@ static void 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 6611920c45fb..c64cf5d97e62 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 271ec83c7e48..159d7bb3a189 100644 --- a/drivers/gpu/drm/arm/malidp_mw.c +++ b/drivers/gpu/drm/arm/malidp_mw.c @@ -244,7 +244,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; @@ -264,7 +263,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 79c4be2acbbe..e999eca5b649 100644 --- a/drivers/gpu/drm/drm_writeback.c +++ b/drivers/gpu/drm/drm_writeback.c @@ -408,7 +408,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 @@ -425,9 +426,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 6b27307941a4..5cd6c81a9710 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c @@ -246,7 +246,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 f11ad54d067a..9cf2ec99bdfb 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 9341533b0325..2e3df9388dd2 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