| From 3184009c36da413724f283e3c7ac9cc60c623bc4 Mon Sep 17 00:00:00 2001 |
| From: Chris Wilson <chris@chris-wilson.co.uk> |
| Date: Mon, 17 Sep 2012 09:38:03 +0000 |
| Subject: drm: Destroy the planes prior to destroying the associated CRTC |
| |
| From: Chris Wilson <chris@chris-wilson.co.uk> |
| |
| commit 3184009c36da413724f283e3c7ac9cc60c623bc4 upstream. |
| |
| As during the plane cleanup, we wish to disable the hardware and |
| so may modify state on the associated CRTC, that CRTC must continue to |
| exist until we are finished. |
| |
| Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54101 |
| Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> |
| Cc: Jesse Barnes <jbarnes@virtuousgeek.org> |
| Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> |
| Tested-by: lu hua <huax.lu@intel.com> |
| Signed-off-by: Dave Airlie <airlied@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/drm_crtc.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/gpu/drm/drm_crtc.c |
| +++ b/drivers/gpu/drm/drm_crtc.c |
| @@ -1034,15 +1034,15 @@ void drm_mode_config_cleanup(struct drm_ |
| fb->funcs->destroy(fb); |
| } |
| |
| - list_for_each_entry_safe(crtc, ct, &dev->mode_config.crtc_list, head) { |
| - crtc->funcs->destroy(crtc); |
| - } |
| - |
| list_for_each_entry_safe(plane, plt, &dev->mode_config.plane_list, |
| head) { |
| plane->funcs->destroy(plane); |
| } |
| |
| + list_for_each_entry_safe(crtc, ct, &dev->mode_config.crtc_list, head) { |
| + crtc->funcs->destroy(crtc); |
| + } |
| + |
| idr_remove_all(&dev->mode_config.crtc_idr); |
| idr_destroy(&dev->mode_config.crtc_idr); |
| } |