On 06/09/2016 04:50 PM, Daniel Vetter wrote: > 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. Looks fine to me. Ben. > -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 >> >