diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-11-28 22:10:05 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-12-02 11:47:15 +0100 |
commit | 6eebd6bb5f1ea04f04019e5c39f87a0f17ffb472 (patch) | |
tree | 798912a7e21dded899b612a6828d0b104c27c25f /drivers/gpu/drm/radeon/evergreen_reg.h | |
parent | drm/radeon/kms: add some new pci ids (diff) | |
download | linux-6eebd6bb5f1ea04f04019e5c39f87a0f17ffb472.tar.xz linux-6eebd6bb5f1ea04f04019e5c39f87a0f17ffb472.zip |
drm: Fix lack of CRTC disable for drm_crtc_helper_set_config(.fb=NULL)
Disabling the CRTC by setting its framebuffer to NULL, as used by
drm_framebuffer_cleanup(), was failing to pass the current framebuffer
to the crtc_func->disable callback. This is because of the dance within
drm_crtc_helper_set_config to pass the new_fb (NULL in this case) to the
drm_crtc_helper_set_mode with the currently attached fb as a parameter.
drm_crtc_helper_set_mode treats this as a no-op and the encoder is still
enabled. And so the current fb is forgotten before the call to
drm_helper_disable_unused_functions.
This patch treats disabling the CRTC as a simple special case rather
than adding further complexity into the configuration logic.
This fixes a pin-leak of the fb bo on Xserver close.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen_reg.h')
0 files changed, 0 insertions, 0 deletions