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.wilczyn...@samsung.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

Reply via email to