From nobody Tue Dec 16 21:27:05 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) (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 C7BAF1922FB; Tue, 7 Oct 2025 05:46:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759815971; cv=none; b=uoBAGWGlPcaLRmynRxSpkiB/b9yo6+bv0Dbpr71MYP3KCoWpv8xD3ljQAw1IUkonewe5FQ8x1iypY5srlQ1ZMLSxlciNRLjaJUznbEX8rvT4EdjwI5UrmhCvHsvkAp/FMzwiwrtBnCc5LozAP77oxkDdWOaS6E/5tBdSGW83APc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759815971; c=relaxed/simple; bh=pTKQZba52PeW9AEX06EsYMvg4TK+pMXMbmqIqpA89L8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iNkapAimmXTjuDegI9S/a7PcViyV9KLTJemJL0fGn+U3n9vPRz1zCv1lhI69c88tFdrOHxcTxv0x/r73cBc40QaWH1NGFYQFl89bK1kEzV89MgubNgfWqlH7KyGTryMFlU6jQj2X4qQh92Aza8B7oMdYx6s7ZZMkdch1gP1k8GY= 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=ErK0kp91; arc=none smtp.client-ip=192.198.163.19 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="ErK0kp91" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1759815970; x=1791351970; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pTKQZba52PeW9AEX06EsYMvg4TK+pMXMbmqIqpA89L8=; b=ErK0kp91p10Bn+2kV9Q7ouFn01ViIj2QBzjBYYrv2jwreg/VDkjevIHk zBMnsm4krLM0GCIjYBTl+xnBJmJ03K1OpfI4OCkbyp4hJ2PFXkDp3Dat3 7Hv/CEH9p/e38a3FGxIAylzbP8FusxnB8PXN24iNWbz1wQ4GV1XTHkY9w ETjZCImyfbjnqqkXInSSYtFIwHnMYnarh4HZDj2L4CTrK7djmm9ehmaZd hNN3L7aaI2DU+m1L3VEIHslh5Hws1eQ+gpbagznmfrWDQ36mdT86Sxklm jqrmPwmGxlsz+TsdeXoXP31MxspuVhzDOvSeOqPvXpw/TCN/ddIYzOpuN w==; X-CSE-ConnectionGUID: iwrRRxzmR7SYrq1XGf7Gbg== X-CSE-MsgGUID: 4lXiZYj7SmOxQJC8XXSJxA== X-IronPort-AV: E=McAfee;i="6800,10657,11574"; a="61027931" X-IronPort-AV: E=Sophos;i="6.18,321,1751266800"; d="scan'208";a="61027931" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2025 22:46:09 -0700 X-CSE-ConnectionGUID: 1o0CQt4NS6msTMBwW9hSMA== X-CSE-MsgGUID: IEvqgsZjRc+hUNKbZk9rAg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.18,321,1751266800"; d="scan'208";a="180479399" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by fmviesa008.fm.intel.com with ESMTP; 06 Oct 2025 22:45:59 -0700 From: Suraj Kandpal To: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, dri-devel@lists.freedesktop.org, intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org Cc: dmitry.baryshkov@oss.qualcomm.com, ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@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, jessica.zhang@oss.qualcomm.com, sean@poorly.run, marijn.suijten@somainline.org, laurent.pinchart+renesas@ideasonboard.com, mcanal@igalia.com, dave.stevenson@raspberrypi.com, tomi.valkeinen+renesas@ideasonboard.com, kieran.bingham+renesas@ideasonboard.com, louis.chauvet@bootlin.com, Suraj Kandpal Subject: [PATCH v2 2/7] drm: writeback: Modify writeback init helpers Date: Tue, 7 Oct 2025 11:15:24 +0530 Message-Id: <20251007054528.2900905-3-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251007054528.2900905-1-suraj.kandpal@intel.com> References: <20251007054528.2900905-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 --- V1 -> V2: Fix comment, use connector->writeback instead of the function (Dm= itry) --- .../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 69822b9be574..d3dd07491630 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 BIT(drm_crtc_index(&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 ea03cb98bfb4..a36a4c86a99e 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 1 << drm_crtc_index(&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 72277127f20e..3436a742d403 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 49412d2ed9aa..8d29e09952c5 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c @@ -132,7 +132,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 186efe019891..fe6764620739 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 2428807e9714..a53e3aa41f63 100644 --- a/drivers/gpu/drm/vc4/vc4_txp.c +++ b/drivers/gpu/drm/vc4/vc4_txp.c @@ -600,7 +600,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 6b4d1c4a1830..d897a83e3b36 100644 --- a/drivers/gpu/drm/vkms/vkms_writeback.c +++ b/drivers/gpu/drm/vkms/vkms_writeback.c @@ -169,7 +169,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, @@ -182,7 +181,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