From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 5AD7D2DCF6B; Mon, 11 Aug 2025 09:27:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904469; cv=none; b=HozFd9Zka7N4ivNEpTCUQvkZhUTbOEQGsJrN52cOadqiXUdboB8CmEecQkdqF4xd10742QIH7OYr/ryXd77JkyI/cPoTU7Ku7QHY9DBoEdaM1rU1L51ZH1Uxd+rQpS6t7jpRmXV5D20mHBBctagXnxtUJNTTIPWMgQF1mlFTiKo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904469; c=relaxed/simple; bh=xZRDvFI/h1XsPkkG0EgE3BdZNi3nIhnVkdTx1q+0bvY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=e5BFx5txNjan+2aJKwzBYRMQuCOx0NoR4P8X1e1S1eo1Fip34eRPYt5cRw8iL773khQgaJKW/TdgioRLdjEbX6BPoW1Yl/zhpjE6IQiMNV4RV+oBgZ/aPZgTqNHl1EFisa0eEnYMiPfUTIY0RIiZFx9Ct99rPvPF2S/oe8GJTpw= 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=cUKd3prJ; arc=none smtp.client-ip=192.198.163.14 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="cUKd3prJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904468; x=1786440468; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xZRDvFI/h1XsPkkG0EgE3BdZNi3nIhnVkdTx1q+0bvY=; b=cUKd3prJsc0PT9jdnqWK/fmwgJ9l8jVLZqvjLMmLfj+ls5yDhtU7dfOM PjRfRW29JIUT9E7dVS+byzCxf36WN22Qnq/3Hd9UxVbYv256bomNO31Pl tnTzSDui2/62gxiF1n8i6NEb2rugJiHYf/0gkJnxJOkiyd46qBuKtmFfo 7XPi7qIjjbCFFcXGH5pFwBJ/slnEGvawN6h2GChcEq37yXf4oCWqYnbGi 5PG8yyhRdmNSWr9nGqGdDN4ZdX3GOMnHhaJj+VaqxozDG7QcokY4+ZUDl sZgZexyjbXTjWgkE7I6zUfX1nWklS2N6nBkAd36pHZyFF6pwY3Vx4kPdV g==; X-CSE-ConnectionGUID: q+QjmktNQy2T+lu3yLKChg== X-CSE-MsgGUID: qWBE3sfnR4OrYq4poEMxbQ== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57217923" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57217923" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:27:47 -0700 X-CSE-ConnectionGUID: mCgCOl6pReSie7XKk/kxkw== X-CSE-MsgGUID: RUTqBuzZRLKvxdKvph0kPw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860299" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:27:37 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 1/8] drm: writeback: Refactor drm_writeback_connector structure Date: Mon, 11 Aug 2025 14:57:00 +0530 Message-Id: <20250811092707.3986802-2-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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" Some drivers cannot work with the current design where the connector is embedded within the drm_writeback_connector such as intel and some drivers that can get it working end up adding a lot of checks all around the code to check if it's a writeback conenctor or not. To solve this we move the drm_writeback_connector within the drm_connector and remove the drm_connector base which was in drm_writeback_connector. We do all other required modifications that come with these changes along with addition of new function which returns the drm_connector when drm_writeback_connector is present. All drivers will be expected to allocate the drm_connector. Signed-off-by: Suraj Kandpal --- drivers/gpu/drm/drm_writeback.c | 33 ++++++++++------ include/drm/drm_connector.h | 60 +++++++++++++++++++++++++++++ include/drm/drm_writeback.h | 68 ++++----------------------------- 3 files changed, 89 insertions(+), 72 deletions(-) diff --git a/drivers/gpu/drm/drm_writeback.c b/drivers/gpu/drm/drm_writebac= k.c index ec2575c4c21b..198b8c488056 100644 --- a/drivers/gpu/drm/drm_writeback.c +++ b/drivers/gpu/drm/drm_writeback.c @@ -89,8 +89,10 @@ static const char *drm_writeback_fence_get_driver_name(s= truct dma_fence *fence) { struct drm_writeback_connector *wb_connector =3D fence_to_wb_connector(fence); + struct drm_connector *connector =3D + drm_writeback_to_connector(wb_connector); =20 - return wb_connector->base.dev->driver->name; + return connector->dev->driver->name; } =20 static const char * @@ -187,7 +189,8 @@ static int __drm_writeback_connector_init(struct drm_de= vice *dev, struct drm_encoder *enc, const u32 *formats, int n_formats) { - struct drm_connector *connector =3D &wb_connector->base; + struct drm_connector *connector =3D + drm_writeback_to_connector(wb_connector); struct drm_mode_config *config =3D &dev->mode_config; struct drm_property_blob *blob; int ret =3D create_writeback_properties(dev); @@ -269,7 +272,8 @@ int drm_writeback_connector_init(struct drm_device *dev, struct drm_encoder *enc, const u32 *formats, int n_formats) { - struct drm_connector *connector =3D &wb_connector->base; + struct drm_connector *connector =3D + drm_writeback_to_connector(wb_connector); int ret; =20 ret =3D drm_connector_init(dev, connector, con_funcs, @@ -339,7 +343,8 @@ int drmm_writeback_connector_init(struct drm_device *de= v, struct drm_encoder *enc, const u32 *formats, int n_formats) { - struct drm_connector *connector =3D &wb_connector->base; + struct drm_connector *connector =3D + drm_writeback_to_connector(wb_connector); int ret; =20 ret =3D drmm_connector_init(dev, connector, con_funcs, @@ -382,13 +387,15 @@ int drm_writeback_set_fb(struct drm_connector_state *= conn_state, =20 int drm_writeback_prepare_job(struct drm_writeback_job *job) { - struct drm_writeback_connector *connector =3D job->connector; + struct drm_writeback_connector *wb_connector =3D job->connector; + struct drm_connector *connector + =3D drm_writeback_to_connector(wb_connector); const struct drm_connector_helper_funcs *funcs =3D - connector->base.helper_private; + connector->helper_private; int ret; =20 if (funcs->prepare_writeback_job) { - ret =3D funcs->prepare_writeback_job(connector, job); + ret =3D funcs->prepare_writeback_job(wb_connector, job); if (ret < 0) return ret; } @@ -434,12 +441,14 @@ EXPORT_SYMBOL(drm_writeback_queue_job); =20 void drm_writeback_cleanup_job(struct drm_writeback_job *job) { - struct drm_writeback_connector *connector =3D job->connector; + struct drm_writeback_connector *wb_connector =3D job->connector; + struct drm_connector *connector + =3D drm_writeback_to_connector(wb_connector); const struct drm_connector_helper_funcs *funcs =3D - connector->base.helper_private; + connector->helper_private; =20 if (job->prepared && funcs->cleanup_writeback_job) - funcs->cleanup_writeback_job(connector, job); + funcs->cleanup_writeback_job(wb_connector, job); =20 if (job->fb) drm_framebuffer_put(job->fb); @@ -521,8 +530,10 @@ struct dma_fence * drm_writeback_get_out_fence(struct drm_writeback_connector *wb_connector) { struct dma_fence *fence; + struct drm_connector *connector =3D + drm_writeback_to_connector(wb_connector); =20 - if (WARN_ON(wb_connector->base.connector_type !=3D + if (WARN_ON(connector->connector_type !=3D DRM_MODE_CONNECTOR_WRITEBACK)) return NULL; =20 diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 8f34f4b8183d..da63fdafd9f2 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -1882,6 +1882,61 @@ struct drm_connector_cec { void *data; }; =20 +/** + * struct drm_writeback_connector - DRM writeback connector + */ +struct drm_writeback_connector { + /** + * @pixel_formats_blob_ptr: + * + * DRM blob property data for the pixel formats list on writeback + * connectors + * See also drm_writeback_connector_init() + */ + struct drm_property_blob *pixel_formats_blob_ptr; + + /** @job_lock: Protects job_queue */ + spinlock_t job_lock; + + /** + * @job_queue: + * + * Holds a list of a connector's writeback jobs; the last item is the + * most recent. The first item may be either waiting for the hardware + * to begin writing, or currently being written. + * + * See also: drm_writeback_queue_job() and + * drm_writeback_signal_completion() + */ + struct list_head job_queue; + + /** + * @fence_context: + * + * timeline context used for fence operations. + */ + unsigned int fence_context; + /** + * @fence_lock: + * + * spinlock to protect the fences in the fence_context. + */ + spinlock_t fence_lock; + /** + * @fence_seqno: + * + * Seqno variable used as monotonic counter for the fences + * created on the connector's timeline. + */ + unsigned long fence_seqno; + /** + * @timeline_name: + * + * The name of the connector's fence timeline. + */ + char timeline_name[32]; +}; + /** * struct drm_connector - central DRM connector control structure * @@ -2305,6 +2360,11 @@ struct drm_connector { * @cec: CEC-related data. */ struct drm_connector_cec cec; + + /** + * @writeback: Writeback related valriables. + */ + struct drm_writeback_connector writeback; }; =20 #define obj_to_connector(x) container_of(x, struct drm_connector, base) diff --git a/include/drm/drm_writeback.h b/include/drm/drm_writeback.h index 958466a05e60..2a52b6761797 100644 --- a/include/drm/drm_writeback.h +++ b/include/drm/drm_writeback.h @@ -15,66 +15,6 @@ #include #include =20 -/** - * struct drm_writeback_connector - DRM writeback connector - */ -struct drm_writeback_connector { - /** - * @base: base drm_connector object - */ - struct drm_connector base; - - /** - * @pixel_formats_blob_ptr: - * - * DRM blob property data for the pixel formats list on writeback - * connectors - * See also drm_writeback_connector_init() - */ - struct drm_property_blob *pixel_formats_blob_ptr; - - /** @job_lock: Protects job_queue */ - spinlock_t job_lock; - - /** - * @job_queue: - * - * Holds a list of a connector's writeback jobs; the last item is the - * most recent. The first item may be either waiting for the hardware - * to begin writing, or currently being written. - * - * See also: drm_writeback_queue_job() and - * drm_writeback_signal_completion() - */ - struct list_head job_queue; - - /** - * @fence_context: - * - * timeline context used for fence operations. - */ - unsigned int fence_context; - /** - * @fence_lock: - * - * spinlock to protect the fences in the fence_context. - */ - spinlock_t fence_lock; - /** - * @fence_seqno: - * - * Seqno variable used as monotonic counter for the fences - * created on the connector's timeline. - */ - unsigned long fence_seqno; - /** - * @timeline_name: - * - * The name of the connector's fence timeline. - */ - char timeline_name[32]; -}; - /** * struct drm_writeback_job - DRM writeback job */ @@ -131,10 +71,16 @@ struct drm_writeback_job { void *priv; }; =20 +static inline struct drm_connector * +drm_writeback_to_connector(struct drm_writeback_connector *wb_connector) +{ + return container_of(wb_connector, struct drm_connector, writeback); +} + static inline struct drm_writeback_connector * drm_connector_to_writeback(struct drm_connector *connector) { - return container_of(connector, struct drm_writeback_connector, base); + return &connector->writeback; } =20 int drm_writeback_connector_init(struct drm_device *dev, --=20 2.34.1 From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 07A052DCF6B; Mon, 11 Aug 2025 09:27:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904478; cv=none; b=Vhgd3ju/859Bdrwj2hmRCR+nSeittbc6SUdGN6S9GWasVZvH3qLp9OaBS/bqlGaPg7L2pWB/KiVbqoyHUn9Wlh79RiMs8o2iCyWDPYAqKesCz8JR512r4Rz9+1dbOIR40jiNVXw2ihl1n97gMajmjTeMSsWG3lb4n3sAEu3kEnk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904478; c=relaxed/simple; bh=G1V8plHg1BJ8oXiT7TSBNCbbRE6SOMQJZJHiO6f/pko=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Alkpn8mOdyQWyzhIBFlGLZ+kmkrWI4BI5MZzZhFSVmbYqv4gjcSpeoZsQQrE880tnwnm7X5T9WvqaC1OvZdl2Ic4aCMd33uZXEAQ+4ywFd3vavJQEtcEGQrxASqYfC0/gS+583IMh3EQchOBemtA+dKxbpeumANgdpPGCLBnBnA= 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=nQeKudt9; arc=none smtp.client-ip=192.198.163.14 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="nQeKudt9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904477; x=1786440477; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=G1V8plHg1BJ8oXiT7TSBNCbbRE6SOMQJZJHiO6f/pko=; b=nQeKudt9YixOkR65YoN5VK7haU7XJMiGkPKeCsNuaqqcd3TYS8AruVZh lIG+0s23iJ3f9RCwsdwzQFITsJqX0vNjcvSsA/LBcs2GPmADTzXmKxesy 5wplEVki7GFfW18UX5UL9YrOYpCTzinVJF2dnEFoDYhMbeDBjWEguB5bB +dUHbmInxcw52xo3sAueLC9jBBPUNmJHmKb0owmrKDDpvq5zzxcEiwFAq H/zKQthfq/tLkoe8zWILkE1snfD2+f6L3ORTEAiTVHjYTwbQYmriwqS1+ wRAULO69Qwf6wqLg3A6HrV9R4X7B9WuDL3R4vWMez/udf1dkE0ghrKQBQ w==; X-CSE-ConnectionGUID: FvtcOvbvT1Gxj9i5buFplw== X-CSE-MsgGUID: CH8ZAObATFScdnSdu7mAAw== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57217949" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57217949" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:27:56 -0700 X-CSE-ConnectionGUID: iH4II6ZZRcmahcl0VlfUxA== X-CSE-MsgGUID: Lt1mzx4cSZuWJ6bP8ZadDQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860329" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:27:47 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 2/8] drm/amd/display: Adapt amd writeback to new drm_writeback_connector Date: Mon, 11 Aug 2025 14:57:01 +0530 Message-Id: <20250811092707.3986802-3-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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 that drm_writeback_connector is embedded with the drm_connector adapt the amd writeback functionality to this changes. This includes changing the drm_writeback_connector to be changed to drm_connector within the amdgpu_dm_wb_connector. Some other changes are done which are a result of the all the above changes mentioned. Signed-off-by: Suraj Kandpal --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +--- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 +- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c | 8 ++++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gp= u/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 5e260b275082..d4628dadf55a 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -6915,11 +6915,9 @@ create_stream_for_sink(struct drm_connector *connect= or, aconnector =3D to_amdgpu_dm_connector(connector); link =3D aconnector->dc_link; } else { - struct drm_writeback_connector *wbcon =3D NULL; struct amdgpu_dm_wb_connector *dm_wbcon =3D NULL; =20 - wbcon =3D drm_connector_to_writeback(connector); - dm_wbcon =3D to_amdgpu_dm_wb_connector(wbcon); + dm_wbcon =3D to_amdgpu_dm_wb_connector(connector); link =3D dm_wbcon->link; } =20 diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gp= u/drm/amd/display/amdgpu_dm/amdgpu_dm.h index b937da0a4e4a..dbcdc8595e76 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h @@ -809,7 +809,7 @@ static inline void amdgpu_dm_set_mst_status(uint8_t *st= atus, #define to_amdgpu_dm_connector(x) container_of(x, struct amdgpu_dm_connect= or, base) =20 struct amdgpu_dm_wb_connector { - struct drm_writeback_connector base; + struct drm_connector base; struct dc_link *link; }; =20 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 80c37487ca77..8fea29720989 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 @@ -202,9 +202,9 @@ int amdgpu_dm_wb_connector_init(struct amdgpu_display_m= anager *dm, =20 wbcon->link =3D link; =20 - drm_connector_helper_add(&wbcon->base.base, &amdgpu_dm_wb_conn_helper_fun= cs); + drm_connector_helper_add(&wbcon->base, &amdgpu_dm_wb_conn_helper_funcs); =20 - res =3D drmm_writeback_connector_init(&dm->adev->ddev, &wbcon->base, + res =3D drmm_writeback_connector_init(&dm->adev->ddev, &wbcon->base.write= back, &amdgpu_dm_wb_connector_funcs, encoder, amdgpu_dm_wb_formats, @@ -216,8 +216,8 @@ int amdgpu_dm_wb_connector_init(struct amdgpu_display_m= anager *dm, * Some of the properties below require access to state, like bpc. * Allocate some default initial connector state with our reset helper. */ - if (wbcon->base.base.funcs->reset) - wbcon->base.base.funcs->reset(&wbcon->base.base); + if (wbcon->base.funcs->reset) + wbcon->base.funcs->reset(&wbcon->base); =20 return 0; } --=20 2.34.1 From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 51F9F2DE6E4; Mon, 11 Aug 2025 09:28:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904489; cv=none; b=XbMq1TU2ort4RZ9urk2wNPKLF3cwIgy8ItQakKRhWdsLpXAy02h2J4lntF0ILhv4y8fP3GejdzJngcsZUdrbj4/2nsw8JB70q1sxHDHTpYTbZ2nIyRjxZCA43LOzKdDWtI4qdUwtT4NcVD6tBaU/3sr+B8b0lG6EmAMBHAOQtvA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904489; c=relaxed/simple; bh=+I09g7mEbT3RCiVSU9B/ew3Su1p++k/MeQyf+c1pCkA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QpP/Unisfxh8QdYw0h6b7WzY0vXDp0bDMi4JgEWbpZfNRbXINIGcDrntHjV8aMSE+BPXGAaCbIyQdAPziVgSJyGsjQoU2fiPYVMnw9MyXn8Hjlxg8QTYzhViEaThKFYadxQ1cHoxJBKPnBv5suhZ7oespp5E3p+YMaJOWqFmbNU= 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=fS5lvU3s; arc=none smtp.client-ip=192.198.163.14 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="fS5lvU3s" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904488; x=1786440488; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+I09g7mEbT3RCiVSU9B/ew3Su1p++k/MeQyf+c1pCkA=; b=fS5lvU3sOLmvfBEaNVv0e855fJ6h0KOCuAJcJJXJinnWkMD4FFy5QqYv dWeUp9BKdMhlzOe9Ua4kkQGrXf9vKAQXCJoPOonAysOsjt3npE5m0SarH 3DR/BsbpehWtNiFZq9dNY0N20IDd3iwBeAg2HAVEb1ZbOa5QxcSKR4RJJ HI/I6gy6XCy4+GVfNJLuSagCJ3zQOGR+MwdSUfL1vzzpMWQa58fKBv42Y jhwLF0tGFwLPm1p8QhnYknWwc+QI2ZXPS1Z1EZgAVIRvgrbqvmZzKDJau ZhqmhTycsNCexrTJS0yr9p+NF0uNkmwFgvHPKWxMz6UaC0OryYz7yKjui Q==; X-CSE-ConnectionGUID: Gj9pbsIYQl6SVIK/LyVdhw== X-CSE-MsgGUID: GK14vl2fTra03a0htvzRcA== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57217987" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57217987" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:28:06 -0700 X-CSE-ConnectionGUID: 2Etn9NvEQNiMYjv425kg7g== X-CSE-MsgGUID: Z/dDFyvCRMStFDeFBN+ucQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860361" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:27:57 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 3/8] drm/arm/komeda: Adapt komeda writeback to new drm_writeback_connector Date: Mon, 11 Aug 2025 14:57:02 +0530 Message-Id: <20250811092707.3986802-4-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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 that drm_writeback_connector is embedded with the drm_connector adapt the komeda writeback functionality to this changes. This includes changing the drm_writeback_connector to be changed to drm_connector within the komeda_wb_connector. Some other changes are done which are a result of the all the above changes mentioned. Signed-off-by: Suraj Kandpal --- drivers/gpu/drm/arm/display/komeda/komeda_crtc.c | 6 +++--- drivers/gpu/drm/arm/display/komeda/komeda_kms.h | 6 +++--- drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu= /drm/arm/display/komeda/komeda_crtc.c index 2ad33559a33a..1c2ba6eeb0e5 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c @@ -210,7 +210,7 @@ void komeda_crtc_handle_event(struct komeda_crtc *kcr= tc, struct komeda_wb_connector *wb_conn =3D kcrtc->wb_conn; =20 if (wb_conn) - drm_writeback_signal_completion(&wb_conn->base, 0); + drm_writeback_signal_completion(&wb_conn->base.writeback, 0); else DRM_WARN("CRTC[%d]: EOW happen but no wb_connector.\n", drm_crtc_index(&kcrtc->base)); @@ -266,9 +266,9 @@ komeda_crtc_do_flush(struct drm_crtc *crtc, if (slave && has_bit(slave->id, kcrtc_st->affected_pipes)) komeda_pipeline_update(slave, old->state); =20 - conn_st =3D wb_conn ? wb_conn->base.base.state : NULL; + conn_st =3D wb_conn ? wb_conn->base.state : NULL; if (conn_st && conn_st->writeback_job) - drm_writeback_queue_job(&wb_conn->base, conn_st); + drm_writeback_queue_job(&wb_conn->base.writeback, conn_st); =20 /* 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/display/komeda/komeda_kms.h b/drivers/gpu/= drm/arm/display/komeda/komeda_kms.h index 83e61c4080c2..9c34302782c0 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.h +++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.h @@ -53,8 +53,8 @@ struct komeda_plane_state { * struct komeda_wb_connector */ struct komeda_wb_connector { - /** @base: &drm_writeback_connector */ - struct drm_writeback_connector base; + /** @base: &drm_connector */ + struct drm_connector base; =20 /** @wb_layer: represents associated writeback pipeline of komeda */ struct komeda_layer *wb_layer; @@ -139,7 +139,7 @@ struct komeda_kms_dev { static inline bool is_writeback_only(struct drm_crtc_state *st) { struct komeda_wb_connector *wb_conn =3D to_kcrtc(st->crtc)->wb_conn; - struct drm_connector *conn =3D wb_conn ? &wb_conn->base.base : NULL; + struct drm_connector *conn =3D wb_conn ? &wb_conn->base : NULL; =20 return conn && (st->connector_mask =3D=3D BIT(drm_connector_index(conn))); } 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 210841b4453a..69822b9be574 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c @@ -53,7 +53,7 @@ komeda_wb_encoder_atomic_check(struct drm_encoder *encode= r, return -EINVAL; } =20 - wb_layer =3D to_kconn(to_wb_conn(conn_st->connector))->wb_layer; + wb_layer =3D to_kconn(conn_st->connector)->wb_layer; =20 /* * No need for a full modested when the only connector changed is the @@ -151,7 +151,7 @@ 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; + wb_conn =3D &kwb_conn->base.writeback; =20 formats =3D komeda_get_layer_fourcc_list(&mdev->fmt_tbl, kwb_conn->wb_layer->layer_type, @@ -180,9 +180,9 @@ static int komeda_wb_connector_add(struct komeda_kms_de= v *kms, return err; } =20 - drm_connector_helper_add(&wb_conn->base, &komeda_wb_conn_helper_funcs); + drm_connector_helper_add(&kwb_conn->base, &komeda_wb_conn_helper_funcs); =20 - info =3D &kwb_conn->base.base.display_info; + info =3D &kwb_conn->base.display_info; info->bpc =3D __fls(kcrtc->master->improc->supported_color_depths); info->color_formats =3D kcrtc->master->improc->supported_color_formats; =20 --=20 2.34.1 From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 03A962DCBFA; Mon, 11 Aug 2025 09:28:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904497; cv=none; b=TOFsFxu+6VGU8ezdJzGoWykW2lipTeVscQd53nZJ7IAMu5mGKqQFjM6CMNRUptOO739aHMOMK6nV7tcrAtVcP+VT9gGjtNGMDuWWsNPtbdoIpH5bgJaHUqlnmsAC4cnzeS3i7c/FotyALBLQ3RmKbDMS/DTOdkrxiThbZmkLmCM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904497; c=relaxed/simple; bh=sW0pbZhGyqJzRb3QXiwmUWJrqEuoCn6D3catOoa/X04=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rXjFdM1gZmWSPqhETMAT5rhZz9gR3RzkYqL5h2u3zo+MAKdMYWQ2VVEcw3jX0EgGJv+uhAYUg8j3sMWws+u9MvRmCSHDzygIuuy9mxRdNKMAIw3563H7zi9E85ySyBjw4cOZuqGL08AnnBzcLZgtM54LiWoXKi2UYez6LxLYeeA= 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=lZWXQ4Qi; arc=none smtp.client-ip=192.198.163.14 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="lZWXQ4Qi" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904496; x=1786440496; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sW0pbZhGyqJzRb3QXiwmUWJrqEuoCn6D3catOoa/X04=; b=lZWXQ4QiZSVFt0iCUy5XNvO+Kl1Hf811YQ05JBRd2FQt7q8TlZOvkGaz S5ZoVzp2lDs0SPoABKh9OMOlP93CIHglLyzon6gb8iW7lCRVlbLhnFXIB nqVqNtIPzGyLeI67hJD/CK6Dlh5kXnahIoqdzvyRI2OVBEl9KrBBO2vnB uyZGXyLqqoxZEY8oTC+2JLSYXvkn/76BYnwCRNaccp+ngG8e3cfpUcNE/ dQsI1xEdJL0FdPfv+fo1q1Wj/gCIGfuu0EpjHKIhkBbOOvQacJOu95yJf nzKKZbT3bRgNGSiteOFcjUgw2sQqcLEI60DERUfNh43on49AoNXrcQYkg Q==; X-CSE-ConnectionGUID: tt92eoOAQeycNe5WTMXuqQ== X-CSE-MsgGUID: gcJTLGnIQfS8LgFLLIn/Eg== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57218013" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57218013" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:28:15 -0700 X-CSE-ConnectionGUID: RTCPYg1MRleznPeX5+DalQ== X-CSE-MsgGUID: yec1/0yPTzamL7fLQ6/Mdg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860395" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:28:06 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 4/8] drm/arm/mali: Adapt mali writeback to new drm_writeback_connector Date: Mon, 11 Aug 2025 14:57:03 +0530 Message-Id: <20250811092707.3986802-5-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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 that drm_writeback_connector is embedded with the drm_connector adapt the malidp writeback functionality to this changes. This includes changing the drm_writeback_connector to be changed to drm_connector within the malidp_drm. Some other changes are done which are a result of the all the above changes mentioned. Signed-off-by: Suraj Kandpal --- drivers/gpu/drm/arm/malidp_drv.h | 2 +- drivers/gpu/drm/arm/malidp_mw.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/arm/malidp_drv.h b/drivers/gpu/drm/arm/malidp_= drv.h index bc0387876dea..cc6d21aa5544 100644 --- a/drivers/gpu/drm/arm/malidp_drv.h +++ b/drivers/gpu/drm/arm/malidp_drv.h @@ -32,7 +32,7 @@ struct malidp_drm { struct drm_device base; struct malidp_hw_device *dev; struct drm_crtc crtc; - struct drm_writeback_connector mw_connector; + struct drm_connector connector; wait_queue_head_t wq; struct drm_pending_vblank_event *event; atomic_t config_valid; diff --git a/drivers/gpu/drm/arm/malidp_mw.c b/drivers/gpu/drm/arm/malidp_m= w.c index 182275c0c29c..67fcdc7b3669 100644 --- a/drivers/gpu/drm/arm/malidp_mw.c +++ b/drivers/gpu/drm/arm/malidp_mw.c @@ -212,7 +212,7 @@ int malidp_mw_connector_init(struct drm_device *drm) if (!malidp->dev->hw->enable_memwrite) return 0; =20 - drm_connector_helper_add(&malidp->mw_connector.base, + drm_connector_helper_add(&malidp->connector, &malidp_mw_connector_helper_funcs); =20 formats =3D get_writeback_formats(malidp, &n_formats); @@ -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, + ret =3D drmm_writeback_connector_init(drm, &malidp->connector.writeback, &malidp_mw_connector_funcs, encoder, formats, n_formats); @@ -243,7 +243,7 @@ void malidp_mw_atomic_commit(struct drm_device *drm, struct drm_atomic_state *old_state) { struct malidp_drm *malidp =3D drm_to_malidp(drm); - struct drm_writeback_connector *mw_conn =3D &malidp->mw_connector; + struct drm_writeback_connector *mw_conn =3D &malidp->connector.writeback; struct drm_connector_state *conn_state =3D mw_conn->base.state; struct malidp_hw_device *hwdev =3D malidp->dev; struct malidp_mw_connector_state *mw_state; --=20 2.34.1 From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 78C1E2DECCB; Mon, 11 Aug 2025 09:28:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904507; cv=none; b=JLZ8j2AErlbab91+NgfAyQaSdqnnhruLPRpAhEnHzutOKeEmZ1X1pWCX7GXWCmcPEMtimAaX/KRyszVb5Kp9whqumllG3vc9KPglrxL7sLyVt9R+Uq5KzIwLJ9Ugt8fBVHDHCoXeFoyQIGi1Bz/CDzeXWohTRcFIMqiFxFXOEFo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904507; c=relaxed/simple; bh=Ki1GGkw71tIKyIVaIjMUwdhb3Let70cJ4O4/ULs294k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Y1+rLcE/yh5UePce1Tv8E1iHN6TFdRwSwEDn39NsWtr2nDSrptqfhY1N9pRGv2s49WqZT7MWqJc3HZ2glgPn9tn1rgnbJyKlUBAI6UbVovhgnnznfskwBeeKdlLY6e1ovcH+VMxhAPCERHyb/AVqHuDU/3oP9ddYYfVDeQkOBWA= 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=d+sDAHEd; arc=none smtp.client-ip=192.198.163.14 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="d+sDAHEd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904506; x=1786440506; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Ki1GGkw71tIKyIVaIjMUwdhb3Let70cJ4O4/ULs294k=; b=d+sDAHEdkeG0W/DggRXO8Ohlo7GwJ4Dm5N320OBi8YJUDofJAZxEcOKW ckj43bmEK5xv+q7BhfBcLOMVCxRkXsK5/NXrxfYdHrblutxFODxAgbRPY JREVqM8xkpqzLe4ti4fOocUQ9NFyAeDu7UytsYMAsf6y11TzvxGLAkbjP gNF4UIWMAp8xnyPOsR+cUB64dWkX1QkMRqVbKPnCWa1/3y4yUqHi686v0 N2+HyYCWsiCPm6SWmYiSgg9/OSH1Ea0PIZ1yTYzMGY/Jds13V+AxPdW/W 5t0DRXMW3OvT/3wLIV59L10Ym+mEdXq7i6D/i3uzNkBDa5d+4ZmY62gB5 Q==; X-CSE-ConnectionGUID: w0s7HI06Th6yAjBU7szfSg== X-CSE-MsgGUID: ZlfP+5HMQjyY+JUvd/MOOw== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57218051" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57218051" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:28:25 -0700 X-CSE-ConnectionGUID: hSQMHheTT5eQzr4ASK6TyQ== X-CSE-MsgGUID: s4igVi6RSW6SQ+NVnHFQ9g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860428" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:28:16 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 5/8] drm/vc4: Adapt vc4 writeback to new drm_writeback_connector Date: Mon, 11 Aug 2025 14:57:04 +0530 Message-Id: <20250811092707.3986802-6-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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 that drm_writeback_connector is embedded with the drm_connector adapt the vc4 writeback functionality to this changes. This includes changing the drm_writeback_connector to be changed to drm_connector within the vc4_txp.Some other changes are done which are a result of the all the above changes mentioned. Signed-off-by: Suraj Kandpal --- drivers/gpu/drm/vc4/vc4_txp.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_txp.c b/drivers/gpu/drm/vc4/vc4_txp.c index fef4e4ee47cf..2428807e9714 100644 --- a/drivers/gpu/drm/vc4/vc4_txp.c +++ b/drivers/gpu/drm/vc4/vc4_txp.c @@ -167,7 +167,7 @@ struct vc4_txp { struct platform_device *pdev; =20 struct vc4_encoder encoder; - struct drm_writeback_connector connector; + struct drm_connector connector; =20 void __iomem *regs; }; @@ -176,7 +176,7 @@ struct vc4_txp { container_of_const(_encoder, struct vc4_txp, encoder.base) =20 #define connector_to_vc4_txp(_connector) \ - container_of_const(_connector, struct vc4_txp, connector.base) + container_of_const(_connector, struct vc4_txp, connector) =20 static const struct debugfs_reg32 txp_regs[] =3D { VC4_REG32(TXP_DST_PTR), @@ -356,7 +356,7 @@ static void vc4_txp_connector_atomic_commit(struct drm_= connector *conn, =20 TXP_WRITE(TXP_DST_CTRL, ctrl); =20 - drm_writeback_queue_job(&txp->connector, conn_state); + drm_writeback_queue_job(&txp->connector.writeback, conn_state); =20 drm_dev_exit(idx); } @@ -504,7 +504,7 @@ static irqreturn_t vc4_txp_interrupt(int irq, void *dat= a) */ TXP_WRITE(TXP_DST_CTRL, TXP_READ(TXP_DST_CTRL) & ~TXP_EI); vc4_crtc_handle_vblank(vc4_crtc); - drm_writeback_signal_completion(&txp->connector, 0); + drm_writeback_signal_completion(&txp->connector.writeback, 0); =20 return IRQ_HANDLED; } @@ -598,9 +598,9 @@ static int vc4_txp_bind(struct device *dev, struct devi= ce *master, void *data) if (ret) return ret; =20 - drm_connector_helper_add(&txp->connector.base, + drm_connector_helper_add(&txp->connector, &vc4_txp_connector_helper_funcs); - ret =3D drmm_writeback_connector_init(drm, &txp->connector, + ret =3D drmm_writeback_connector_init(drm, &txp->connector.writeback, &vc4_txp_connector_funcs, encoder, drm_fmts, ARRAY_SIZE(drm_fmts)); @@ -622,7 +622,7 @@ static void vc4_txp_unbind(struct device *dev, struct d= evice *master, { struct vc4_txp *txp =3D dev_get_drvdata(dev); =20 - drm_connector_cleanup(&txp->connector.base); + drm_connector_cleanup(&txp->connector); } =20 static const struct component_ops vc4_txp_ops =3D { --=20 2.34.1 From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 9B4E62DEA71; Mon, 11 Aug 2025 09:28:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904517; cv=none; b=kfbJVAtk4RBemztS8cpGEfz6p2QMqGraviQta8ESRoFRRX8zMYy23Pf3gNgWRHq05KyxCZF1uGP19ZQfscJrIzdUBWkyLxN7Vek0itDva4x76y6/kMTQJX18Vom30ckpMr/fHzfUMfjpVSkgnbWA+X2ZKObQ3F0Zh85EsEtWFLw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904517; c=relaxed/simple; bh=1wt9TGKVHpEOGWtUwQvSvwHMqVCuk5olmwKqlio6imU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WyKIb0glnF/EEgeyxv1vmmObs0gJ3vJIq8028gNgB/yt+dOqT5ZomSBUnjAAJP+7XIpyXJtTkdAyKOAJh/Dx++xztfxljnue31rgl2+x3A0ZTzkA8PdaNNn7vrdjlykZTOtBNceS+WXrlJCYPRIF+qf/WrFFU4HNv+Hbsd1ux5U= 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=K8T+Njk8; arc=none smtp.client-ip=192.198.163.14 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="K8T+Njk8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904516; x=1786440516; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1wt9TGKVHpEOGWtUwQvSvwHMqVCuk5olmwKqlio6imU=; b=K8T+Njk88DEMKkuVJeAS4KmPU4nATxPO2Vm84APYZqwBaQl67fUIvbHf NXrVztZ96rkmKn8mJxXiwYGg9k65j2eCbUbp4sDhTg/mOAvJMysrqTblU g3j++9MKI3WQj4EuI1Y4LxGoEhAJpdE0skQ9shdnfagMqgvJ9iF9L8wof cgtKYGNPHPysua5SnX/Vc1T18tiKR2f7Aompoi1sb/BdF5UibpqBNw+N8 kTZh2GbevjDfSknioducRFi0n0amXTYBvAF0rGg3PDr1+FGWWWMPjljoI B8yUAFbIhHUy2WgbSDaCvtd8vPFU8T9jWsqmcoj3JXp4/PEXMS2iME0hQ w==; X-CSE-ConnectionGUID: i10p1gFRQzmxmmH2ZSPyNg== X-CSE-MsgGUID: zmW0ds7xQjSu7FLE6z6HYA== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57218090" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57218090" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:28:35 -0700 X-CSE-ConnectionGUID: b6XwttqyRhq1/Pa2QhuxWg== X-CSE-MsgGUID: CV794O3JQbKX4G/bQVO+gA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860484" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:28:25 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 6/8] drm/vkms: Adapt vkms writeback to new drm_writeback_connector Date: Mon, 11 Aug 2025 14:57:05 +0530 Message-Id: <20250811092707.3986802-7-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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 that drm_writeback_connector is embedded with the drm_connector adapt the vkms writeback functionality to this changes. This includes changing the drm_writeback_connector to be changed to drm_connector within the vkms_output. Some other changes are done which are a result of the all the above changes mentioned. Signed-off-by: Suraj Kandpal --- drivers/gpu/drm/vkms/vkms_composer.c | 2 +- drivers/gpu/drm/vkms/vkms_drv.h | 2 +- drivers/gpu/drm/vkms/vkms_writeback.c | 15 +++++++++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/vkms/vkms_composer.c b/drivers/gpu/drm/vkms/vk= ms_composer.c index fa269d279e25..b5f20637121c 100644 --- a/drivers/gpu/drm/vkms/vkms_composer.c +++ b/drivers/gpu/drm/vkms/vkms_composer.c @@ -543,7 +543,7 @@ void vkms_composer_worker(struct work_struct *work) return; =20 if (wb_pending) { - drm_writeback_signal_completion(&out->wb_connector, 0); + drm_writeback_signal_completion(&out->connector.writeback, 0); spin_lock_irq(&out->composer_lock); crtc_state->wb_pending =3D false; spin_unlock_irq(&out->composer_lock); diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_dr= v.h index 8013c31efe3b..2e58a06c9ad8 100644 --- a/drivers/gpu/drm/vkms/vkms_drv.h +++ b/drivers/gpu/drm/vkms/vkms_drv.h @@ -213,7 +213,7 @@ struct vkms_crtc_state { */ struct vkms_output { struct drm_crtc crtc; - struct drm_writeback_connector wb_connector; + struct drm_connector connector; struct drm_encoder wb_encoder; struct hrtimer vblank_hrtimer; ktime_t period_ns; diff --git a/drivers/gpu/drm/vkms/vkms_writeback.c b/drivers/gpu/drm/vkms/v= kms_writeback.c index 45d69a3b85f6..13c2a5c8f57a 100644 --- a/drivers/gpu/drm/vkms/vkms_writeback.c +++ b/drivers/gpu/drm/vkms/vkms_writeback.c @@ -102,13 +102,16 @@ static int vkms_wb_prepare_job(struct drm_writeback_c= onnector *wb_connector, return ret; } =20 -static void vkms_wb_cleanup_job(struct drm_writeback_connector *connector, +static void vkms_wb_cleanup_job(struct drm_writeback_connector *wb_connect= or, struct drm_writeback_job *job) { struct vkms_writeback_job *vkmsjob =3D job->priv; + struct drm_connector *connector =3D container_of(wb_connector, + struct drm_connector, + writeback); struct vkms_output *vkms_output =3D container_of(connector, struct vkms_output, - wb_connector); + connector); =20 if (!job->fb) return; @@ -127,8 +130,8 @@ static void vkms_wb_atomic_commit(struct drm_connector = *conn, struct drm_connector_state *connector_state =3D drm_atomic_get_new_connec= tor_state(state, conn); struct vkms_output *output =3D drm_crtc_to_vkms_output(connector_state->c= rtc); - struct drm_writeback_connector *wb_conn =3D &output->wb_connector; - struct drm_connector_state *conn_state =3D wb_conn->base.state; + struct drm_writeback_connector *wb_conn =3D &output->connector.writeback; + struct drm_connector_state *conn_state =3D output->connector.state; struct vkms_crtc_state *crtc_state =3D output->composer_state; struct drm_framebuffer *fb =3D connector_state->writeback_job->fb; u16 crtc_height =3D crtc_state->base.mode.vdisplay; @@ -166,7 +169,7 @@ 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; + struct drm_writeback_connector *wb =3D &vkms_output->connector.writeback; int ret; =20 ret =3D drmm_encoder_init(&vkmsdev->drm, &vkms_output->wb_encoder, @@ -177,7 +180,7 @@ int vkms_enable_writeback_connector(struct vkms_device = *vkmsdev, vkms_output->wb_encoder.possible_clones |=3D drm_encoder_mask(&vkms_output->wb_encoder); =20 - drm_connector_helper_add(&wb->base, &vkms_wb_conn_helper_funcs); + drm_connector_helper_add(&vkms_output->connector, &vkms_wb_conn_helper_fu= ncs); =20 return drmm_writeback_connector_init(&vkmsdev->drm, wb, &vkms_wb_connector_funcs, --=20 2.34.1 From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 CE923223DF5; Mon, 11 Aug 2025 09:28:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904526; cv=none; b=c1so21sx5EbfV/Qtks8Ze00ZWN9j//6KiLd8mLN1U/M2PdUdc/YUDUtLy97xMvnkcQ1TKjPp1sIawdWexveeMQB4oShufIMUVGRAH7tL8A3PyiaJ97fP6BSPO0ea3AUzHPPldKMqF3eMfMrCXi7FXmKJTdmu7r6KPJLR60JeEN4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904526; c=relaxed/simple; bh=dttlg+vgcxiB2RBGfwux8lXZdUR9YBGtB6WAMZ1/WfI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kC+jn767f1iQ5vOyTizlR8+Lsp1R2csJhs6xYATP71hAp8Hi3NQV9lL1tYIx2aaZzPSpgU4s5ZOu9lbpJkCVBqlRNVajUpyOhz5E4vWtcapqCYvmFLmY9mbqUkixAcY9ZuSRe3jdtuQioGkwUq6Rn4VYbAGvMxz6kbVlzI+2Vos= 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=XYu9/02T; arc=none smtp.client-ip=192.198.163.14 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="XYu9/02T" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904525; x=1786440525; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dttlg+vgcxiB2RBGfwux8lXZdUR9YBGtB6WAMZ1/WfI=; b=XYu9/02T5oxQrm0S/I+OsaAGQ4Rzu/pbr9LT9zCR+bDzUTkeUixPJLu1 uXjkvjR15GPyoTdPLS5tHas0QeWkj0XMG1slv+G35oIHAGuT9FEY5Wfk7 RzCzfXmUFSZr3KuhElmscZvBFykNPruPX9ekkZVLIoYlzUMJWWY09XdZB QdgFlOPty+AuNNtPWuW3jlTVF9Rv7YuQJw7mNbdx1LvqEjKB+uaEt+dUO 35zKNr2LXkxA0N9ZQROVUUYjx28fz5SNrTdccsjjXpCbABb/GJ2t0iklm UDSMl4A7BjnL6BoTWaFnyCnKxrh9cA7Os60LFgHuLx+AWv1/srcR8JzFT w==; X-CSE-ConnectionGUID: icebc2gWTh+fbOfOwK5VCg== X-CSE-MsgGUID: olX/a0qyQLiEy+LgLgwwhw== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57218121" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57218121" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:28:44 -0700 X-CSE-ConnectionGUID: BDq5bjwtSguuy60OrkqfTQ== X-CSE-MsgGUID: lmOp1g74QUunVyQmQQWBSg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860505" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:28:35 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 7/8] drm/rcar_du: Adapt vkms writeback to new drm_writeback_connector Date: Mon, 11 Aug 2025 14:57:06 +0530 Message-Id: <20250811092707.3986802-8-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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 that drm_writeback_connector is embedded with the drm_connector adapt the rcar-du writeback functionality to this changes. This includes changing the drm_writeback_connector to be changed to drm_connector within the rcar_du_crtc. Some other changes are done which are a result of the all the above changes mentioned. Signed-off-by: Suraj Kandpal --- .../gpu/drm/renesas/rcar-du/rcar_du_crtc.h | 4 ++-- .../drm/renesas/rcar-du/rcar_du_writeback.c | 22 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.h b/drivers/gpu/d= rm/renesas/rcar-du/rcar_du_crtc.h index d0f38a8b3561..457c803d75bc 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.h +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_crtc.h @@ -72,11 +72,11 @@ struct rcar_du_crtc { const char *const *sources; unsigned int sources_count; =20 - struct drm_writeback_connector writeback; + struct drm_connector connector; }; =20 #define to_rcar_crtc(c) container_of(c, struct rcar_du_crtc, crtc) -#define wb_to_rcar_crtc(c) container_of(c, struct rcar_du_crtc, writeback) +#define connector_to_rcar_crtc(c) container_of(c, struct rcar_du_crtc, con= nector) =20 /** * struct rcar_du_crtc_state - Driver-specific CRTC state 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 9986a10e8114..95e6810612c2 100644 --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_writeback.c @@ -47,10 +47,12 @@ static int rcar_du_wb_conn_get_modes(struct drm_connect= or *connector) dev->mode_config.max_height); } =20 -static int rcar_du_wb_prepare_job(struct drm_writeback_connector *connecto= r, +static int rcar_du_wb_prepare_job(struct drm_writeback_connector *wb_conne= ctor, struct drm_writeback_job *job) { - struct rcar_du_crtc *rcrtc =3D wb_to_rcar_crtc(connector); + struct drm_connector *connector =3D + container_of(wb_connector, struct drm_connector, writeback); + struct rcar_du_crtc *rcrtc =3D connector_to_rcar_crtc(connector); struct rcar_du_wb_job *rjob; int ret; =20 @@ -72,10 +74,12 @@ static int rcar_du_wb_prepare_job(struct drm_writeback_= connector *connector, return 0; } =20 -static void rcar_du_wb_cleanup_job(struct drm_writeback_connector *connect= or, +static void rcar_du_wb_cleanup_job(struct drm_writeback_connector *wb_conn= ector, struct drm_writeback_job *job) { - struct rcar_du_crtc *rcrtc =3D wb_to_rcar_crtc(connector); + struct drm_connector *connector =3D + container_of(wb_connector, struct drm_connector, writeback); + struct rcar_du_crtc *rcrtc =3D connector_to_rcar_crtc(connector); struct rcar_du_wb_job *rjob =3D job->priv; =20 if (!job->fb) @@ -199,7 +203,7 @@ 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; + struct drm_writeback_connector *wb_conn =3D &rcrtc->connector.writeback; =20 struct drm_encoder *encoder; =20 @@ -212,7 +216,7 @@ int rcar_du_writeback_init(struct rcar_du_device *rcdu, =20 encoder->possible_crtcs =3D 1 << drm_crtc_index(&rcrtc->crtc); =20 - drm_connector_helper_add(&wb_conn->base, + drm_connector_helper_add(&rcrtc->connector, &rcar_du_wb_conn_helper_funcs); =20 return drmm_writeback_connector_init(&rcdu->ddev, wb_conn, @@ -231,7 +235,7 @@ void rcar_du_writeback_setup(struct rcar_du_crtc *rcrtc, struct drm_framebuffer *fb; unsigned int i; =20 - state =3D rcrtc->writeback.base.state; + state =3D rcrtc->connector.state; if (!state || !state->writeback_job) return; =20 @@ -246,10 +250,10 @@ void rcar_du_writeback_setup(struct rcar_du_crtc *rcr= tc, cfg->mem[i] =3D sg_dma_address(rjob->sg_tables[i].sgl) + fb->offsets[i]; =20 - drm_writeback_queue_job(&rcrtc->writeback, state); + drm_writeback_queue_job(&rcrtc->connector.writeback, state); } =20 void rcar_du_writeback_complete(struct rcar_du_crtc *rcrtc) { - drm_writeback_signal_completion(&rcrtc->writeback, 0); + drm_writeback_signal_completion(&rcrtc->connector.writeback, 0); } --=20 2.34.1 From nobody Sun Oct 5 01:51:58 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (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 EC8062DCF71; Mon, 11 Aug 2025 09:28:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904537; cv=none; b=iZTYfQKCurrVjhrFbPcZpt9r0gdiV2liBanVQV1ZMVbzFusV82i3kVBxRq8UqD9IBtKnnqHpNcUqiO7mt9AfmEGxHJuR8mTqhqO7VRMI2cNwEB1WyFvhEijOEgFgEQt5kQNCBFdsqAQCtmBELfmvCdeYOoeHpwvqegIUAbl3F/8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754904537; c=relaxed/simple; bh=E9jJ7k+W5lYtaJfmW3MRFOz2vsWiO/oCqhsJwrE+o9M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aKYZt4dD8/h9yH3ajNKvizC+ZIA+5308NXqfxarI+uEz0vULIt3HrhoBJNN7wD/0UEcPzcSjw+TJEftnG2CGe1O6hoMyeMS/QTSVZtYQ9sbKZhkS76eIBM3RJhqme71li0u8YXIkd4mioCAHnBoBWbB9y35/dATa4UQWYzZ9sko= 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=B2xTZUcS; arc=none smtp.client-ip=192.198.163.14 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="B2xTZUcS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754904536; x=1786440536; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=E9jJ7k+W5lYtaJfmW3MRFOz2vsWiO/oCqhsJwrE+o9M=; b=B2xTZUcSZKwx/tXHdwqUXxioizTh8SU2ztg9jLg6m03rm0fhMlox6XxX WG+sN6rBZWjfKDBpOhu/NAVvi1O0jChxfRGOJhH5uKbKUtb4dH9I1fYYs MVUgfkEP+8gL1ejUbQqp7sH7Kh/mnFgA5Y7Gy8tL2i0XHrJWJ0PYYHDYW oZh7ELiwB/+4r/S6wrqV9aNWo2kB/AKW+iVFm1oA2VX/7O1B9fLKT9Aw4 iaiSTYW+Fzb/WkE5clMUn/dj9grMNaA2pCx5tXH9e4f3071eqnytGXaTH DS8rmaMIdk49M25zvq+c3UOs6sY4rmn2WmnH/eNazCG7IOo+n+KqH+jLY g==; X-CSE-ConnectionGUID: LN+O7PGzTZOEKy2BYj1X9A== X-CSE-MsgGUID: Mq9sXuYHRuSBBnQT5ckHAg== X-IronPort-AV: E=McAfee;i="6800,10657,11518"; a="57218148" X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="57218148" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2025 02:28:54 -0700 X-CSE-ConnectionGUID: m++gpaQhTSyyfUEMSVtS4g== X-CSE-MsgGUID: jzzzCi5SRLaGogjsG3FvLQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,278,1747724400"; d="scan'208";a="165860518" Received: from kandpal-x299-ud4-pro.iind.intel.com ([10.190.239.10]) by orviesa007.jf.intel.com with ESMTP; 11 Aug 2025 02:28:45 -0700 From: Suraj Kandpal To: kernel-list@raspberrypi.com, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, 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 Cc: ankit.k.nautiyal@intel.com, arun.r.murthy@intel.com, uma.shankar@intel.com, jani.nikula@intel.com, dmitry.baryshkov@oss.qualcomm.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: [RFC PATCH 8/8] drm/msm/dpu: Adapt dpu writeback to new drm_writeback_connector Date: Mon, 11 Aug 2025 14:57:07 +0530 Message-Id: <20250811092707.3986802-9-suraj.kandpal@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250811092707.3986802-1-suraj.kandpal@intel.com> References: <20250811092707.3986802-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 that drm_writeback_connector is embedded with the drm_connector adapt the dpu writeback functionality to this changes. This includes changing the drm_writeback_connector to be changed to drm_connector within the dpu_wb_connector. Some other changes are done which are a result of the all the above changes mentioned. Signed-off-by: Suraj Kandpal --- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 3 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 16 +++++++++------- drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h | 4 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) 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 56a5b596554d..0e60c1ac07c5 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 @@ -484,7 +484,8 @@ static void dpu_encoder_phys_wb_prepare_for_kickoff( return; } =20 - drm_conn =3D &wb_enc->wb_conn->base; + drm_conn =3D + container_of(wb_enc->wb_conn, struct drm_connector, writeback); state =3D drm_conn->state; =20 if (wb_enc->wb_conn && wb_enc->wb_job) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/dr= m/msm/disp/dpu1/dpu_writeback.c index cd73468e369a..49412d2ed9aa 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c @@ -28,8 +28,7 @@ static int dpu_wb_conn_get_modes(struct drm_connector *co= nnector) static int dpu_wb_conn_atomic_check(struct drm_connector *connector, struct drm_atomic_state *state) { - struct drm_writeback_connector *wb_conn =3D drm_connector_to_writeback(co= nnector); - struct dpu_wb_connector *dpu_wb_conn =3D to_dpu_wb_conn(wb_conn); + struct dpu_wb_connector *dpu_wb_conn =3D to_dpu_wb_conn(connector); struct drm_connector_state *conn_state =3D drm_atomic_get_new_connector_state(state, connector); struct drm_crtc *crtc; @@ -84,10 +83,11 @@ static const struct drm_connector_funcs dpu_wb_conn_fun= cs =3D { .atomic_destroy_state =3D drm_atomic_helper_connector_destroy_state, }; =20 -static int dpu_wb_conn_prepare_job(struct drm_writeback_connector *connect= or, +static int dpu_wb_conn_prepare_job(struct drm_writeback_connector *wb_conn, struct drm_writeback_job *job) { - + struct drm_connector *connector =3D + container_of(wb_conn, struct drm_connector, writeback); struct dpu_wb_connector *dpu_wb_conn =3D to_dpu_wb_conn(connector); =20 if (!job->fb) @@ -98,9 +98,11 @@ static int dpu_wb_conn_prepare_job(struct drm_writeback_= connector *connector, return 0; } =20 -static void dpu_wb_conn_cleanup_job(struct drm_writeback_connector *connec= tor, +static void dpu_wb_conn_cleanup_job(struct drm_writeback_connector *wb_con= nector, struct drm_writeback_job *job) { + struct drm_connector *connector =3D + container_of(wb_connector, struct drm_connector, writeback); struct dpu_wb_connector *dpu_wb_conn =3D to_dpu_wb_conn(connector); =20 if (!job->fb) @@ -128,9 +130,9 @@ int dpu_writeback_init(struct drm_device *dev, struct d= rm_encoder *enc, =20 dpu_wb_conn->maxlinewidth =3D maxlinewidth; =20 - drm_connector_helper_add(&dpu_wb_conn->base.base, &dpu_wb_conn_helper_fun= cs); + 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, + rc =3D drmm_writeback_connector_init(dev, &dpu_wb_conn->base.writeback, &dpu_wb_conn_funcs, enc, format_list, num_formats); =20 diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h b/drivers/gpu/dr= m/msm/disp/dpu1/dpu_writeback.h index 4b11cca8014c..9ebf15392b20 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h @@ -16,12 +16,12 @@ #include "dpu_encoder_phys.h" =20 struct dpu_wb_connector { - struct drm_writeback_connector base; + struct drm_connector base; struct drm_encoder *wb_enc; u32 maxlinewidth; }; =20 -static inline struct dpu_wb_connector *to_dpu_wb_conn(struct drm_writeback= _connector *conn) +static inline struct dpu_wb_connector *to_dpu_wb_conn(struct drm_connector= *conn) { return container_of(conn, struct dpu_wb_connector, base); } --=20 2.34.1