Message ID | 20250401182348.252422-3-boris.brezillon@collabora.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm/panthor: Misc fixes | expand |
On 01/04/2025 19:23, Boris Brezillon wrote: > When the device is coherent, panthor_gpu_coherency_init() will read > GPU_COHERENCY_FEATURES to make sure the GPU supports the ACE-Lite > coherency protocol, which will fail if the clocks/power-domains are > not enabled when the read is done. Move the > panthor_gpu_coherency_init() call after the device has been resumed > to prevent that. > > Changes in v2: > - Add Liviu's R-b > > Fixes: dd7db8d911a1 ("drm/panthor: Explicitly set the coherency mode") > Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> > Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Steven Price <steven.price@arm.com> > --- > drivers/gpu/drm/panthor/panthor_device.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c > index a9da1d1eeb70..c73c1608d6e6 100644 > --- a/drivers/gpu/drm/panthor/panthor_device.c > +++ b/drivers/gpu/drm/panthor/panthor_device.c > @@ -171,10 +171,6 @@ int panthor_device_init(struct panthor_device *ptdev) > struct page *p; > int ret; > > - ret = panthor_gpu_coherency_init(ptdev); > - if (ret) > - return ret; > - > init_completion(&ptdev->unplug.done); > ret = drmm_mutex_init(&ptdev->base, &ptdev->unplug.lock); > if (ret) > @@ -247,6 +243,10 @@ int panthor_device_init(struct panthor_device *ptdev) > if (ret) > goto err_rpm_put; > > + ret = panthor_gpu_coherency_init(ptdev); > + if (ret) > + return ret; > + > ret = panthor_mmu_init(ptdev); > if (ret) > goto err_unplug_gpu;
diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c index a9da1d1eeb70..c73c1608d6e6 100644 --- a/drivers/gpu/drm/panthor/panthor_device.c +++ b/drivers/gpu/drm/panthor/panthor_device.c @@ -171,10 +171,6 @@ int panthor_device_init(struct panthor_device *ptdev) struct page *p; int ret; - ret = panthor_gpu_coherency_init(ptdev); - if (ret) - return ret; - init_completion(&ptdev->unplug.done); ret = drmm_mutex_init(&ptdev->base, &ptdev->unplug.lock); if (ret) @@ -247,6 +243,10 @@ int panthor_device_init(struct panthor_device *ptdev) if (ret) goto err_rpm_put; + ret = panthor_gpu_coherency_init(ptdev); + if (ret) + return ret; + ret = panthor_mmu_init(ptdev); if (ret) goto err_unplug_gpu;