On Wed, Jun 08, 2016 at 06:47:27PM +0200, Lukas Wunner wrote:
Second iteration of my endeavour to rid nouveau, radeon and amdgpu of runtime pm ref leaks.
Patches 1 to 8 are identical to v1.
Patch 9 of v1 modified the DRM core to turn off all CRTCs on driver unload. Based on feedback by Daniel Vetter, I've replaced this with a helper to turn off all CRTCs, which is called by nouveau, radeon and amdgpu on unload. In other words, this is now opt-in. So patch 9 of v1 is replaced with new patches 9 to 12.
A by-product of patch 9 is a helper which turns off a *single* CRTC. This is open coded in three other places in the DRM tree and patches 13 to 15 refactor those to use the new helper.
Yeah I think this makes much more sense. Please poke amd/nouveau folks for reviews/acks, then I can merge. -Daniel
To ease reviewing, I've pushed this series to GitHub: https://github.com/l1k/linux/commits/drm_runpm_fixes_v2
The discussion on v1 is archived here: https://lists.freedesktop.org/archives/dri-devel/2016-May/thread.html#108278
Thanks,
Lukas
Lukas Wunner (15): drm/nouveau: Don't leak runtime pm ref on driver unload drm/nouveau: Forbid runtime pm on driver unload drm/radeon: Don't leak runtime pm ref on driver unload drm/radeon: Don't leak runtime pm ref on driver load drm/radeon: Forbid runtime pm on driver unload drm/amdgpu: Don't leak runtime pm ref on driver unload drm/amdgpu: Don't leak runtime pm ref on driver load drm/amdgpu: Forbid runtime pm on driver unload drm: Add helpers to turn off CRTCs drm/nouveau: Turn off CRTCs on driver unload drm/radeon: Turn off CRTCs on driver unload drm/amdgpu: Turn off CRTCs on driver unload drm: Use helper to turn off CRTC drm/i2c/ch7006: Use helper to turn off CRTC drm/nouveau/dispnv04: Use helper to turn off CRTC
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 12 +++++-- drivers/gpu/drm/drm_crtc.c | 53 ++++++++++++++++++++++++++---- drivers/gpu/drm/i2c/ch7006_drv.c | 9 ++--- drivers/gpu/drm/nouveau/dispnv04/disp.c | 10 ------ drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 9 ++--- drivers/gpu/drm/nouveau/nouveau_display.c | 1 + drivers/gpu/drm/nouveau/nouveau_drm.c | 6 +++- drivers/gpu/drm/radeon/radeon_device.c | 4 +++ drivers/gpu/drm/radeon/radeon_display.c | 1 + drivers/gpu/drm/radeon/radeon_kms.c | 5 ++- include/drm/drm_crtc.h | 2 ++ 12 files changed, 77 insertions(+), 36 deletions(-)
-- 2.8.1