[Nouveau] [PATCH 04/10] nouveau: hide cursor before suspending.
Maxim Levitsky
maximlevitsky at gmail.com
Sun Oct 9 13:58:34 PDT 2011
Otherwise PDISPLAY might try to access the unmapped and filled with garbage
cursor on resume. Fixes external output not comping to life after resume.
Signed-off-by: Maxim Levitsky <maximlevitsky at gmail.com>
---
drivers/gpu/drm/nouveau/nouveau_drv.c | 18 +++++++++---------
1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c
index b404840..0d6a199 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.c
@@ -367,15 +367,6 @@ nouveau_pci_resume(struct pci_dev *pdev)
engine->display.init(dev);
- list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
- struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
- u32 offset = nv_crtc->cursor.nvbo->bo.offset;
-
- nv_crtc->cursor.set_offset(nv_crtc, offset);
- nv_crtc->cursor.set_pos(nv_crtc, nv_crtc->cursor_saved_x,
- nv_crtc->cursor_saved_y);
- }
-
/* Force CLUT to get re-loaded during modeset */
list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
@@ -391,6 +382,15 @@ nouveau_pci_resume(struct pci_dev *pdev)
drm_helper_resume_force_mode(dev);
+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
+ struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
+ u32 offset = nv_crtc->cursor.nvbo->bo.offset;
+
+ nv_crtc->cursor.set_offset(nv_crtc, offset);
+ nv_crtc->cursor.set_pos(nv_crtc, nv_crtc->cursor_saved_x,
+ nv_crtc->cursor_saved_y);
+ }
+
nouveau_fbcon_restore_accel(dev);
drm_kms_helper_poll_enable(dev);
return 0;
--
1.7.4.1
More information about the Nouveau
mailing list