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