Subject: [PATCH v2 0/8] panfrost: Locking and runtime PM fixes With further testing of recent changes with lockdep and other locking checks enabled, we've found several bugs in the shrinker code and one sleep while atomic in panfrost_gem_open(). This series addresses those issues. Delaying the unmapping of pages turns out to be a bad idea. Instead we need to rework panfrost_mmu_unmap() to not do a runtime PM resume which takes several locks and causes more lockdep warnings. Unfortunately, there initially appeared to be some mismatches between the runtime PM state and the h/w. The result is several fixes to the runtime PM initialization and handling in jobs. With this, the changes to panfrost_mmu_unmap() are working correctly. v2: - Drop already applied 'drm/panfrost: Fix sleeping while atomic in panfrost_gem_open' - Runtime PM clean-ups - Keep panfrost_gem_purge and use mutex_trylock there - Rework panfrost_mmu_unmap runtime PM Rob Rob Herring (8): drm/panfrost: Fix possible suspend in panfrost_remove drm/panfrost: Rework runtime PM initialization drm/panfrost: Hold runtime PM reference until jobs complete drm/shmem: Do dma_unmap_sg before purging pages drm/shmem: Use mutex_trylock in drm_gem_shmem_purge drm/panfrost: Use mutex_trylock in panfrost_gem_purge drm/panfrost: Rework page table flushing and runtime PM interaction drm/panfrost: Remove unnecessary flushing from tlb_inv_context drivers/gpu/drm/drm_gem_shmem_helper.c | 13 ++++- drivers/gpu/drm/panfrost/panfrost_device.c | 9 ---- drivers/gpu/drm/panfrost/panfrost_drv.c | 16 ++++--- .../gpu/drm/panfrost/panfrost_gem_shrinker.c | 11 +++-- drivers/gpu/drm/panfrost/panfrost_job.c | 16 ++++--- drivers/gpu/drm/panfrost/panfrost_mmu.c | 47 +++++++++---------- include/drm/drm_gem_shmem_helper.h | 2 +- 7 files changed, 59 insertions(+), 55 deletions(-) -- 2.20.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel