linux/drivers/gpu/drm/msm/adreno
Guangshuo Li 6fbbf1e152 drm/msm/adreno: fix autosuspend cleanup during teardown
adreno_gpu_init() calls pm_runtime_use_autosuspend(), but
adreno_gpu_cleanup() does not call the matching
pm_runtime_dont_use_autosuspend() during teardown.

If the autosuspend delay is set to a negative value while autosuspend
is enabled, the runtime PM core increments usage_count to prevent
runtime suspend. Without calling pm_runtime_dont_use_autosuspend()
during teardown, this reference is not dropped and usage_count remains
unbalanced.

The documentation for pm_runtime_use_autosuspend() also notes that it
is important to undo it with pm_runtime_dont_use_autosuspend() at
driver exit time, unless runtime PM was initially enabled with
devm_pm_runtime_enable().

Add the missing pm_runtime_dont_use_autosuspend() call to
adreno_gpu_cleanup().

This issue was found by manual code inspection.

Fixes: eeb754746b ("drm/msm/gpu: use pm-runtime")
Cc: stable@vger.kernel.org
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/745110/
Link: https://lore.kernel.org/r/20260808131624.2854412-1-lgs201920130244@gmail.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
2026-09-14 00:17:13 +03:00
..
a2xx_catalog.c drm/msm/a2xx: add A225 entry to catalog 2026-01-18 07:20:43 -08:00
a2xx_gpu.c drm/msm: Remove obsolete perf infrastructure 2026-05-29 07:07:27 -07:00
a2xx_gpu.h drm/msm/adreno: Move adreno_gpu_func to catalogue 2025-11-18 07:32:00 -08:00
a2xx_gpummu.c Merge tag 'drm-msm-fixes-2026-03-06' of https://gitlab.freedesktop.org/drm/msm into drm-fixes 2026-03-12 14:38:07 +10:00
a3xx_catalog.c drm/msm/adreno: Move adreno_gpu_func to catalogue 2025-11-18 07:32:00 -08:00
a3xx_gpu.c drm/msm/a3xx: Drain VBIF before GPU suspend 2026-07-16 13:36:39 -07:00
a3xx_gpu.h drm/msm/adreno: Move adreno_gpu_func to catalogue 2025-11-18 07:32:00 -08:00
a4xx_catalog.c drm/msm/adreno: Move adreno_gpu_func to catalogue 2025-11-18 07:32:00 -08:00
a4xx_gpu.c drm/msm: Remove obsolete perf infrastructure 2026-05-29 07:07:27 -07:00
a4xx_gpu.h drm/msm/adreno: Move adreno_gpu_func to catalogue 2025-11-18 07:32:00 -08:00
a5xx_catalog.c drm/msm/adreno: Move adreno_gpu_func to catalogue 2025-11-18 07:32:00 -08:00
a5xx_debugfs.c drm/msm: Rename msm_gem_address_space -> msm_gem_vm 2025-07-04 11:09:44 -07:00
a5xx_gpu.c drm next/fixes for 7.3-rc1 2026-08-28 16:37:55 -07:00
a5xx_gpu.h drm/msm/adreno: Move adreno_gpu_func to catalogue 2025-11-18 07:32:00 -08:00
a5xx_power.c drm/msm: Rename msm_gem_address_space -> msm_gem_vm 2025-07-04 11:09:44 -07:00
a5xx_preempt.c drm/msm: Rename msm_gem_address_space -> msm_gem_vm 2025-07-04 11:09:44 -07:00
a6xx_catalog.c drm/msm/a6xx: Add Adreno 722 support 2026-07-18 09:02:54 -07:00
a6xx_gmu.c drm/msm/a6xx+: Increase GMU FW init timeout 2026-09-12 10:01:54 -07:00
a6xx_gmu.h drm/msm/a6xx: Add support for Debug HFI Q 2026-03-31 13:47:29 -07:00
a6xx_gpu_state.c drm/msm/a6xx: Add Adreno 722 support 2026-07-18 09:02:54 -07:00
a6xx_gpu_state.h drm/msm/a6xx: Add Adreno 722 support 2026-07-18 09:02:54 -07:00
a6xx_gpu.c drm/msm/a6xx: Use CX AO Counter register for timestamp on a750 GPUs 2026-09-11 11:36:41 -07:00
a6xx_gpu.h drm/msm/adreno: rename llc_mmio to cx_misc_mmio 2026-05-29 07:07:30 -07:00
a6xx_hfi.c drm/msm/a6xx: Check kzalloc return in a8xx_hfi_send_perf_table 2026-05-13 14:37:54 -07:00
a6xx_hfi.h drm/msm/a6xx: Update HFI definitions 2026-03-31 13:47:29 -07:00
a6xx_preempt.c drm/msm: Add sysprof accessors 2026-05-29 07:07:28 -07:00
a6xx_preempt.h drm/msm/a8xx: Preemption support for A840 2026-03-31 13:47:30 -07:00
a8xx_gpu.c drm/msm/a6xx: Rename GBIF_CX_CONFIG to a A6XX- variant register 2026-07-18 09:02:54 -07:00
a8xx_preempt.c drm/msm: Add sysprof accessors 2026-05-29 07:07:28 -07:00
adreno_device.c drm/msm/adreno: Fix the skip_gpu parameter description 2026-09-10 10:54:46 -07:00
adreno_gen7_2_0_snapshot.h drm/msm/a6xx: Sync latest register definitions 2025-11-18 09:04:00 -08:00
adreno_gen7_9_0_snapshot.h drm/msm/a6xx: Sync latest register definitions 2025-11-18 09:04:00 -08:00
adreno_gen7_17_0_snapshot.h drm/msm/a6xx: Add Adreno 722 support 2026-07-18 09:02:54 -07:00
adreno_gen7_0_0_snapshot.h drm/msm/a6xx: Sync latest register definitions 2025-11-18 09:04:00 -08:00
adreno_gpu.c drm/msm/adreno: fix autosuspend cleanup during teardown 2026-09-14 00:17:13 +03:00
adreno_gpu.h drm/msm/a6xx: Add Adreno 722 support 2026-07-18 09:02:54 -07:00