[Nouveau] [PATCH 04/10] nouveau: hide cursor before suspending.
Maxim Levitsky
maximlevitsky at gmail.com
Sun Oct 9 14:03:57 PDT 2011
On Sun, 2011-10-09 at 22:58 +0200, Maxim Levitsky wrote:
> Otherwise PDISPLAY might try to access the unmapped and filled with garbage
> cursor on resume. Fixes external output not comping to life after resume.
Forgot to update description here.
From: Maxim Levitsky <maximlevitsky at gmail.com>
Date: 2011-10-09 13:29:57 +0200
nouveau: restore cursors after restoring modes
PDISPLAY doesn't like when disabled CRTCs are poked.
Fixes external output not coming to life when it has cursor on.
https://bugs.freedesktop.org/show_bug.cgi?id=41608
Signed-off-by: Maxim Levitsky <maximlevitsky at gmail.com>
>
> 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;
--
Best regards,
Maxim Levitsky
Visit my blog: http://maximlevitsky.wordpress.com
Warning: Above blog contains rants.
More information about the Nouveau
mailing list