From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1ABB0CAC5B0 for ; Tue, 7 Oct 2025 05:46:11 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7EE0710E08C; Tue, 7 Oct 2025 05:46:10 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="ErK0kp91"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7ADEA10E08C; Tue, 7 Oct 2025 05:46:09 +0000 (UTC) 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: FObS4yTGRGW2eTEHQweKwA== X-CSE-MsgGUID: 4AkPU8E+SFml3dOKnRAmnA== X-IronPort-AV: E=McAfee;i="6800,10657,11574"; a="61027932" X-IronPort-AV: E=Sophos;i="6.18,321,1751266800"; d="scan'208";a="61027932" 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> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" 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 (Dmitry) --- .../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_manager *dm, drm_connector_helper_add(&wbcon->base, &amdgpu_dm_wb_conn_helper_funcs); - res = drmm_writeback_connector_init(&dm->adev->ddev, &wbcon->base.writeback, + res = 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/drivers/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_dev *kms, { struct komeda_dev *mdev = 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; @@ -151,8 +150,6 @@ static int komeda_wb_connector_add(struct komeda_kms_dev *kms, kwb_conn->wb_layer = kcrtc->master->wb_layer; - wb_conn = &kwb_conn->base.writeback; - formats = 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_dev *kms, encoder->possible_crtcs = BIT(drm_crtc_index(&kcrtc->base)); - err = drmm_writeback_connector_init(&kms->base, wb_conn, + err = 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_mw.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) encoder->possible_crtcs = 1 << drm_crtc_index(&malidp->crtc); - ret = drmm_writeback_connector_init(drm, &malidp->mw_connector.writeback, + ret = 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_writeback.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_device *dev, * a custom encoder * * @dev: DRM device - * @wb_connector: Writeback connector to initialize + * @connector: Drm connector which contains the writeback connector to initialize * @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 = - drm_writeback_to_connector(wb_connector); + struct drm_writeback_connector *wb_connector = &connector->writeback; int ret; ret = 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 initialize * @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 drm_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 = - drm_writeback_to_connector(wb_connector); + struct drm_writeback_connector *wb_connector = &connector->writeback; int ret; ret = drmm_connector_init(dev, connector, con_funcs, diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/drm/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 drm_encoder *enc, drm_connector_helper_add(&dpu_wb_conn->base, &dpu_wb_conn_helper_funcs); - rc = drmm_writeback_connector_init(dev, &dpu_wb_conn->base.writeback, + rc = drmm_writeback_connector_init(dev, &dpu_wb_conn->base, &dpu_wb_conn_funcs, enc, format_list, num_formats); 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[] = { int rcar_du_writeback_init(struct rcar_du_device *rcdu, struct rcar_du_crtc *rcrtc) { - struct drm_writeback_connector *wb_conn = &rcrtc->writeback.writeback; struct drm_encoder *encoder; encoder = 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); - 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 device *master, void *data) drm_connector_helper_add(&txp->connector, &vc4_txp_connector_helper_funcs); - ret = drmm_writeback_connector_init(drm, &txp->connector.writeback, + ret = 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/vkms_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 = { int vkms_enable_writeback_connector(struct vkms_device *vkmsdev, struct vkms_output *vkms_output) { - struct drm_writeback_connector *wb = &vkms_output->wb_connector.writeback; int ret; ret = drmm_encoder_init(&vkmsdev->drm, &vkms_output->wb_encoder, @@ -182,7 +181,8 @@ int vkms_enable_writeback_connector(struct vkms_device *vkmsdev, drm_connector_helper_add(&vkms_output->wb_connector, &vkms_wb_conn_helper_funcs); - 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_connector *wb_connector) } 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); 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); -- 2.34.1