[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250414-apr_14_for_sending-v2-4-70c5af2af96c@samsung.com>
Date: Mon, 14 Apr 2025 20:52:58 +0200
From: Michal Wilczynski <m.wilczynski@...sung.com>
To: "Rafael J. Wysocki" <rafael@...nel.org>, Danilo Krummrich
<dakr@...nel.org>, Pavel Machek <pavel@...nel.org>, Drew Fustini
<drew@...7.com>, Guo Ren <guoren@...nel.org>, Fu Wei <wefu@...hat.com>, Rob
Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor
Dooley <conor+dt@...nel.org>, Michal Wilczynski <m.wilczynski@...sung.com>,
Ulf Hansson <ulf.hansson@...aro.org>, Philipp Zabel
<p.zabel@...gutronix.de>, Frank Binns <frank.binns@...tec.com>, Matt Coster
<matt.coster@...tec.com>, Maarten Lankhorst
<maarten.lankhorst@...ux.intel.com>, Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>, David Airlie <airlied@...il.com>,
Simona Vetter <simona@...ll.ch>, m.szyprowski@...sung.com
Cc: linux-kernel@...r.kernel.org, linux-pm@...r.kernel.org,
linux-riscv@...ts.infradead.org, devicetree@...r.kernel.org,
dri-devel@...ts.freedesktop.org
Subject: [PATCH v2 4/4] drm/imagination: Skip clocks if platform PM manages
resources
Update the Imagination PVR driver to skip clock management during
initialization if the platform PM has indicated that it manages platform
resources.
This is necessary for platforms like the T-HEAD TH1520, where the GPU's
clocks and resets are managed via a PM domain, and should not be
manipulated directly by the GPU driver.
Signed-off-by: Michal Wilczynski <m.wilczynski@...sung.com>
---
drivers/gpu/drm/imagination/pvr_device.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/imagination/pvr_device.c b/drivers/gpu/drm/imagination/pvr_device.c
index 1704c0268589bdeb65fa6535f9ec63182b0a3e94..f40468b99cf14da418aeecde086f009695ff877c 100644
--- a/drivers/gpu/drm/imagination/pvr_device.c
+++ b/drivers/gpu/drm/imagination/pvr_device.c
@@ -504,10 +504,16 @@ pvr_device_init(struct pvr_device *pvr_dev)
if (err)
return err;
- /* Enable and initialize clocks required for the device to operate. */
- err = pvr_device_clk_init(pvr_dev);
- if (err)
- return err;
+ /*
+ * Only initialize clocks if they are not managed by the platform's
+ * PM domain.
+ */
+ if (!device_platform_resources_pm_managed(dev)) {
+ /* Enable and initialize clocks required for the device to operate. */
+ err = pvr_device_clk_init(pvr_dev);
+ if (err)
+ return err;
+ }
/* Explicitly power the GPU so we can access control registers before the FW is booted. */
err = pm_runtime_resume_and_get(dev);
--
2.34.1
Powered by blists - more mailing lists