Message ID | 20200909122957.51667-1-steven.price@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/panfrost: Ensure GPU quirks are always initialised | expand |
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> > diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c > index e0f190e43813..6d17d3cbd1df 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c > +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c > @@ -305,6 +305,8 @@ void panfrost_gpu_power_on(struct panfrost_device *pfdev) > int ret; > u32 val; > > + panfrost_gpu_init_quirks(pfdev); > + > /* Just turn on everything for now */ > gpu_write(pfdev, L2_PWRON_LO, pfdev->features.l2_present); > ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO, > @@ -356,7 +358,6 @@ int panfrost_gpu_init(struct panfrost_device *pfdev) > return err; > } > > - panfrost_gpu_init_quirks(pfdev); > panfrost_gpu_power_on(pfdev); > > return 0; > -- > 2.20.1 >
On 09/09/2020 13:29, Steven Price wrote: > The GPU 'CONFIG' registers used to work around hardware issues are > cleared on reset so need to be programmed every time the GPU is reset. > However panfrost_device_reset() failed to do this. > > To avoid this in future instead move the call to > panfrost_gpu_init_quirks() to panfrost_gpu_power_on() so that the > regsiters are always programmed just before the cores are powered. > > Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") > Signed-off-by: Steven Price <steven.price@arm.com> Applied to drm-misc-next Steve
diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c index e0f190e43813..6d17d3cbd1df 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c @@ -305,6 +305,8 @@ void panfrost_gpu_power_on(struct panfrost_device *pfdev) int ret; u32 val; + panfrost_gpu_init_quirks(pfdev); + /* Just turn on everything for now */ gpu_write(pfdev, L2_PWRON_LO, pfdev->features.l2_present); ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO, @@ -356,7 +358,6 @@ int panfrost_gpu_init(struct panfrost_device *pfdev) return err; } - panfrost_gpu_init_quirks(pfdev); panfrost_gpu_power_on(pfdev); return 0;
The GPU 'CONFIG' registers used to work around hardware issues are cleared on reset so need to be programmed every time the GPU is reset. However panfrost_device_reset() failed to do this. To avoid this in future instead move the call to panfrost_gpu_init_quirks() to panfrost_gpu_power_on() so that the regsiters are always programmed just before the cores are powered. Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") Signed-off-by: Steven Price <steven.price@arm.com> --- drivers/gpu/drm/panfrost/panfrost_gpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)