[v4,0/3] drm/panfrost: Fix poweroff and sync IRQs for suspend

Message ID 20231204114215.54575-1-angelogioacchino.delregno@collabora.com
Headers
Series drm/panfrost: Fix poweroff and sync IRQs for suspend |

Message

AngeloGioacchino Del Regno Dec. 4, 2023, 11:42 a.m. UTC
  Changes in v4:
 - Added checks for is_suspended bits in hardirqs
 - Added GPU suspended bit (and handling of it)
 - Reordered panfrost_drv_comp_bits entries
 - Commit description fixes

Changes in v3:
 - Removed useless GPU_INT_CLEAR write in suspend path
 - Changed to clear suspend bits in job/mmu reset path

This series contains a fast fix for the basic GPU poweroff functionality
and goes further by implementing interrupt masking and synchronization
before suspend.

For more information, please look at the conversation at [1], which
explains the regression seen with the poweroff commit and the initial
approaches taken to solve that.

Cheers!

[1]: https://lore.kernel.org/all/20231123095320.41433-1-angelogioacchino.delregno@collabora.com/

AngeloGioacchino Del Regno (3):
  drm/panfrost: Ignore core_mask for poweroff and disable PWRTRANS irq
  drm/panfrost: Add gpu_irq, mmu_irq to struct panfrost_device
  drm/panfrost: Synchronize and disable interrupts before powering off

 drivers/gpu/drm/panfrost/panfrost_device.c |  3 ++
 drivers/gpu/drm/panfrost/panfrost_device.h | 10 ++++++
 drivers/gpu/drm/panfrost/panfrost_gpu.c    | 40 ++++++++++++++++------
 drivers/gpu/drm/panfrost/panfrost_gpu.h    |  1 +
 drivers/gpu/drm/panfrost/panfrost_job.c    | 26 +++++++++++---
 drivers/gpu/drm/panfrost/panfrost_job.h    |  1 +
 drivers/gpu/drm/panfrost/panfrost_mmu.c    | 32 ++++++++++++-----
 drivers/gpu/drm/panfrost/panfrost_mmu.h    |  1 +
 8 files changed, 91 insertions(+), 23 deletions(-)
  

Comments

Boris Brezillon Dec. 5, 2023, 10:42 a.m. UTC | #1
On Mon,  4 Dec 2023 12:42:12 +0100
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
wrote:

> Changes in v4:
>  - Added checks for is_suspended bits in hardirqs
>  - Added GPU suspended bit (and handling of it)
>  - Reordered panfrost_drv_comp_bits entries
>  - Commit description fixes
> 
> Changes in v3:
>  - Removed useless GPU_INT_CLEAR write in suspend path
>  - Changed to clear suspend bits in job/mmu reset path
> 
> This series contains a fast fix for the basic GPU poweroff functionality
> and goes further by implementing interrupt masking and synchronization
> before suspend.
> 
> For more information, please look at the conversation at [1], which
> explains the regression seen with the poweroff commit and the initial
> approaches taken to solve that.
> 
> Cheers!
> 
> [1]: https://lore.kernel.org/all/20231123095320.41433-1-angelogioacchino.delregno@collabora.com/
> 
> AngeloGioacchino Del Regno (3):
>   drm/panfrost: Ignore core_mask for poweroff and disable PWRTRANS irq
>   drm/panfrost: Add gpu_irq, mmu_irq to struct panfrost_device
>   drm/panfrost: Synchronize and disable interrupts before powering off

Queued to drm-misc-next.

Thanks,

Boris

> 
>  drivers/gpu/drm/panfrost/panfrost_device.c |  3 ++
>  drivers/gpu/drm/panfrost/panfrost_device.h | 10 ++++++
>  drivers/gpu/drm/panfrost/panfrost_gpu.c    | 40 ++++++++++++++++------
>  drivers/gpu/drm/panfrost/panfrost_gpu.h    |  1 +
>  drivers/gpu/drm/panfrost/panfrost_job.c    | 26 +++++++++++---
>  drivers/gpu/drm/panfrost/panfrost_job.h    |  1 +
>  drivers/gpu/drm/panfrost/panfrost_mmu.c    | 32 ++++++++++++-----
>  drivers/gpu/drm/panfrost/panfrost_mmu.h    |  1 +
>  8 files changed, 91 insertions(+), 23 deletions(-)
>