From nobody Thu Apr 2 20:18:02 2026 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) (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 EF64937C933 for ; Mon, 16 Mar 2026 08:30:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.13 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773649856; cv=none; b=m1GLfb6/c8HVHOuCMrP4i4fbsEzp6o7eOgGboJYDr1gv+omCBrD9nNKAYxO/efsxLL6hD5vbogn4LwztWnSxf7j91UaPtFb8vFbzCjTQ5Xl9o2EkmlaypvtW23YBb7dqjYKp1GWHw8xAWreZtsJXVIdpv0IDtsuUvS6FFD0u08g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773649856; c=relaxed/simple; bh=v4d6F5mmPPlfAIAC2KqNlCMpKb0oLaSm/CJm+k2o/jE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=GosZM0a+O8vi/mBRFsbPPMamlLT4OXCAq4HUT2vFjeN3DOD9GoY6hO5bisk+p2BB7doTwkX2Lk5Ex9TioYzF59DE+rzSWgNCBm4E+k+fyVHs4R0HnT9JgXOMc2pCo1bwnj10iYCG6SQDumj7l/n7HcYSQGW03uchrWyA7pMwgB0= 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=aLl6+L6i; arc=none smtp.client-ip=192.198.163.13 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="aLl6+L6i" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1773649855; x=1805185855; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=v4d6F5mmPPlfAIAC2KqNlCMpKb0oLaSm/CJm+k2o/jE=; b=aLl6+L6iEr2ZtNqyuq040Mt9v/ai59lN9BEtTxqDhLbU/JY1Kft51y+8 cawDwGiuAX08JQ+KfymNeW1No6RBngrGy7t5qGR1A3hebHAI18sSypP51 L7W3YJ7VZ0aTLke1hUYHJAWDt4vDo2ujRExbDW9nK7e9gmGNJsjwxNup4 /2rP55UKTri6z7EOL+ZjbDP/W5Tf1MTV7YGr1RAg0TV5pY4FXUYEOMeP1 olIsscZXoOoqOoTcBE+pY6OcS49P4YE1vzm0GZVqnYEwQthAIio2PbUJn VtIS3CofBnG2RMcBCg+minT4Kc24I+niq21cvwIQNGBDnSgVUTum+2ON8 A==; X-CSE-ConnectionGUID: GjzUspe6QUq7uYqpK1pscA== X-CSE-MsgGUID: uOUOrwnkQeiCewBYLttJTg== X-IronPort-AV: E=McAfee;i="6800,10657,11730"; a="77268233" X-IronPort-AV: E=Sophos;i="6.23,123,1770624000"; d="scan'208";a="77268233" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2026 01:30:54 -0700 X-CSE-ConnectionGUID: /fl54rmXTa2YVzWXdoMvDw== X-CSE-MsgGUID: IfdGah8iS12mOmqX+TiQjg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,123,1770624000"; d="scan'208";a="220889010" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa006.jf.intel.com with ESMTP; 16 Mar 2026 01:30:46 -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: ankit.k.nautiyal@intel.com, uma.shankar@intel.com, dmitry.baryshkov@oss.qualcomm.com, arun.r.murthy@intel.com, jani.nikula@intel.com, harry.wentland@amd.com, siqueira@igalia.com, alexander.deucher@amd.com, christian.koenig@amd.com, airlied@gmail.com, simona@ffwll.ch, liviu.dudau@arm.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, robin.clark@oss.qualcomm.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, Suraj Kandpal Subject: [PATCH v3 2/7] drm: writeback: Modify writeback init helpers Date: Mon, 16 Mar 2026 14:00:04 +0530 Message-Id: <20260316083008.87466-3-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260316083008.87466-1-suraj.kandpal@intel.com> References: <20260316083008.87466-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: quoted-printable Content-Type: text/plain; charset="utf-8" Now with drm_writeback_connector moved to drm_connector it makes more sense use drm_connector as an argument rather than drm_writeback_connector. The writeback connector can easily be derived from drm_connector. Signed-off-by: Suraj Kandpal --- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c | 2 +- .../drm/arm/display/komeda/komeda_wb_connector.c | 5 +---- drivers/gpu/drm/arm/malidp_mw.c | 2 +- drivers/gpu/drm/drm_writeback.c | 14 ++++++-------- drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 2 +- .../gpu/drm/renesas/rcar-du/rcar_du_writeback.c | 3 +-- drivers/gpu/drm/vc4/vc4_txp.c | 2 +- drivers/gpu/drm/vkms/vkms_writeback.c | 4 ++-- include/drm/drm_writeback.h | 4 ++-- 9 files changed, 16 insertions(+), 22 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 8fea29720989..84a9c1d2bd8e 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 @@ -204,7 +204,7 @@ int amdgpu_dm_wb_connector_init(struct amdgpu_display_m= anager *dm, =20 drm_connector_helper_add(&wbcon->base, &amdgpu_dm_wb_conn_helper_funcs); =20 - res =3D drmm_writeback_connector_init(&dm->adev->ddev, &wbcon->base.write= back, + res =3D drmm_writeback_connector_init(&dm->adev->ddev, &wbcon->base, &amdgpu_dm_wb_connector_funcs, encoder, amdgpu_dm_wb_formats, diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c b/dri= vers/gpu/drm/arm/display/komeda/komeda_wb_connector.c index fa2f63c142cd..85b34375d275 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c @@ -135,7 +135,6 @@ static int komeda_wb_connector_add(struct komeda_kms_de= v *kms, { struct komeda_dev *mdev =3D kms->base.dev_private; struct komeda_wb_connector *kwb_conn; - struct drm_writeback_connector *wb_conn; struct drm_display_info *info; struct drm_encoder *encoder; =20 @@ -151,8 +150,6 @@ static int komeda_wb_connector_add(struct komeda_kms_de= v *kms, =20 kwb_conn->wb_layer =3D kcrtc->master->wb_layer; =20 - wb_conn =3D &kwb_conn->base.writeback; - formats =3D komeda_get_layer_fourcc_list(&mdev->fmt_tbl, kwb_conn->wb_layer->layer_type, &n_formats); @@ -170,7 +167,7 @@ static int komeda_wb_connector_add(struct komeda_kms_de= v *kms, =20 encoder->possible_crtcs =3D drm_crtc_mask(&kcrtc->base); =20 - err =3D drmm_writeback_connector_init(&kms->base, wb_conn, + err =3D drmm_writeback_connector_init(&kms->base, &kwb_conn->base, &komeda_wb_connector_funcs, encoder, formats, n_formats); diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_m= w.c index 472598b3e007..7d42b007ef19 100644 --- a/drivers/gpu/drm/arm/malidp_mw.c +++ b/drivers/gpu/drm/arm/malidp_mw.c @@ -228,7 +228,7 @@ int malidp_mw_connector_init(struct drm_device *drm) =20 encoder->possible_crtcs =3D drm_crtc_mask(&malidp->crtc); =20 - ret =3D drmm_writeback_connector_init(drm, &malidp->mw_connector.writebac= k, + ret =3D drmm_writeback_connector_init(drm, &malidp->mw_connector, &malidp_mw_connector_funcs, encoder, formats, n_formats); diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writebac= k.c index 7bf9f6374712..9a3037d11009 100644 --- a/drivers/gpu/drm/drm_writeback.c +++ b/drivers/gpu/drm/drm_writeback.c @@ -242,7 +242,7 @@ static int __drm_writeback_connector_init(struct drm_de= vice *dev, * a custom encoder * * @dev: DRM device - * @wb_connector: Writeback connector to initialize + * @connector: Drm connector which contains the writeback connector to ini= tialize * @enc: handle to the already initialized drm encoder * @con_funcs: Connector funcs vtable * @formats: Array of supported pixel formats for the writeback engine @@ -267,13 +267,12 @@ static int __drm_writeback_connector_init(struct drm_= device *dev, * Returns: 0 on success, or a negative error code */ int drm_writeback_connector_init(struct drm_device *dev, - struct drm_writeback_connector *wb_connector, + struct drm_connector *connector, const struct drm_connector_funcs *con_funcs, struct drm_encoder *enc, const u32 *formats, int n_formats) { - struct drm_connector *connector =3D - drm_writeback_to_connector(wb_connector); + struct drm_writeback_connector *wb_connector =3D &connector->writeback; int ret; =20 ret =3D drm_connector_init(dev, connector, con_funcs, @@ -322,7 +321,7 @@ static void drm_writeback_connector_cleanup(struct drm_= device *dev, * a custom encoder * * @dev: DRM device - * @wb_connector: Writeback connector to initialize + * @connector: Drm connector containing the writeback connector to initial= ize * @con_funcs: Connector funcs vtable * @enc: Encoder to connect this writeback connector * @formats: Array of supported pixel formats for the writeback engine @@ -338,13 +337,12 @@ static void drm_writeback_connector_cleanup(struct dr= m_device *dev, * Returns: 0 on success, or a negative error code */ int drmm_writeback_connector_init(struct drm_device *dev, - struct drm_writeback_connector *wb_connector, + struct drm_connector *connector, const struct drm_connector_funcs *con_funcs, struct drm_encoder *enc, const u32 *formats, int n_formats) { - struct drm_connector *connector =3D - drm_writeback_to_connector(wb_connector); + struct drm_writeback_connector *wb_connector =3D &connector->writeback; int ret; =20 ret =3D drmm_connector_init(dev, connector, con_funcs, diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/dr= m/msm/disp/dpu1/dpu_writeback.c index 930ba1ad777b..d4fc28951085 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c @@ -136,7 +136,7 @@ int dpu_writeback_init(struct drm_device *dev, struct d= rm_encoder *enc, =20 drm_connector_helper_add(&dpu_wb_conn->base, &dpu_wb_conn_helper_funcs); =20 - rc =3D drmm_writeback_connector_init(dev, &dpu_wb_conn->base.writeback, + rc =3D drmm_writeback_connector_init(dev, &dpu_wb_conn->base, &dpu_wb_conn_funcs, enc, format_list, num_formats); =20 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 cd09e0fbb030..1de8865fb751 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c @@ -203,7 +203,6 @@ static const u32 writeback_formats[] =3D { int rcar_du_writeback_init(struct rcar_du_device *rcdu, struct rcar_du_crtc *rcrtc) { - struct drm_writeback_connector *wb_conn =3D &rcrtc->writeback.writeback; struct drm_encoder *encoder; =20 encoder =3D drmm_plain_encoder_alloc(&rcdu->ddev, NULL, @@ -218,7 +217,7 @@ int rcar_du_writeback_init(struct rcar_du_device *rcdu, drm_connector_helper_add(&rcrtc->writeback, &rcar_du_wb_conn_helper_funcs); =20 - return drmm_writeback_connector_init(&rcdu->ddev, wb_conn, + return drmm_writeback_connector_init(&rcdu->ddev, &rcrtc->writeback, &rcar_du_wb_conn_funcs, encoder, writeback_formats, diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c index de3db0834011..d08271142116 100644 --- a/drivers/gpu/drm/vc4/vc4_txp.c +++ b/drivers/gpu/drm/vc4/vc4_txp.c @@ -601,7 +601,7 @@ static int vc4_txp_bind(struct device *dev, struct devi= ce *master, void *data) =20 drm_connector_helper_add(&txp->connector, &vc4_txp_connector_helper_funcs); - ret =3D drmm_writeback_connector_init(drm, &txp->connector.writeback, + ret =3D drmm_writeback_connector_init(drm, &txp->connector, &vc4_txp_connector_funcs, encoder, drm_fmts, ARRAY_SIZE(drm_fmts)); diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/v= kms_writeback.c index cadb4cb372c5..b368c569cf0a 100644 --- a/drivers/gpu/drm/vkms/vkms_writeback.c +++ b/drivers/gpu/drm/vkms/vkms_writeback.c @@ -170,7 +170,6 @@ static const struct drm_connector_helper_funcs vkms_wb_= conn_helper_funcs =3D { int vkms_enable_writeback_connector(struct vkms_device *vkmsdev, struct vkms_output *vkms_output) { - struct drm_writeback_connector *wb =3D &vkms_output->wb_connector.writeba= ck; int ret; =20 ret =3D drmm_encoder_init(&vkmsdev->drm, &vkms_output->wb_encoder, @@ -183,7 +182,8 @@ int vkms_enable_writeback_connector(struct vkms_device = *vkmsdev, =20 drm_connector_helper_add(&vkms_output->wb_connector, &vkms_wb_conn_helper= _funcs); =20 - return drmm_writeback_connector_init(&vkmsdev->drm, wb, + return drmm_writeback_connector_init(&vkmsdev->drm, + &vkms_output->wb_connector, &vkms_wb_connector_funcs, &vkms_output->wb_encoder, vkms_wb_formats, diff --git a/include/drm/drm_writeback.h b/include/drm/drm_writeback.h index 702141099520..c6960c7e634e 100644 --- a/include/drm/drm_writeback.h +++ b/include/drm/drm_writeback.h @@ -78,13 +78,13 @@ drm_writeback_to_connector(struct drm_writeback_connect= or *wb_connector) } =20 int drm_writeback_connector_init(struct drm_device *dev, - struct drm_writeback_connector *wb_connector, + struct drm_connector *connector, const struct drm_connector_funcs *con_funcs, struct drm_encoder *enc, const u32 *formats, int n_formats); =20 int drmm_writeback_connector_init(struct drm_device *dev, - struct drm_writeback_connector *wb_connector, + struct drm_connector *connector, const struct drm_connector_funcs *con_funcs, struct drm_encoder *enc, const u32 *formats, int n_formats); --=20 2.34.1