On Tue, 1 Apr 2025 17:17:40 +0100 Liviu Dudau <liviu.du...@arm.com> wrote:
> On Tue, Apr 01, 2025 at 09:57:08AM +0200, 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. > > While doing this, do you mind fixing the definitions for GPU_COHERENCY_ACE > and GPU_COHERENCY_ACE_LITE? They are swapped, according to my arch spec. Oh, nice catch! I'll add a patch fixing that in v2. > > Otherwise, patch looks good to me. > > Reviewed-by: Liviu Dudau <liviu.du...@arm.com> > > Best regards, > Liviu > > > > > Fixes: dd7db8d911a1 ("drm/panthor: Explicitly set the coherency mode") > > Signed-off-by: Boris Brezillon <boris.brezil...@collabora.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; > > -- > > 2.48.1 > > >