drm/nouveau: fix oops on runtime suspend/resume

if we have no crtcs we need to not call the display resume code.

Reported-by: Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by Dave Airlie and committed by Dave Airlie 01172772 48016851

+6 -3
+6 -3
drivers/gpu/drm/nouveau/nouveau_drm.c
··· 636 nouveau_fbcon_set_suspend(drm_dev, 0); 637 638 nouveau_fbcon_zfill_all(drm_dev); 639 - nouveau_display_resume(drm_dev); 640 nv_suspend_set_printk_level(NV_DBG_DEBUG); 641 return 0; 642 } ··· 672 if (drm_dev->mode_config.num_crtc) 673 nouveau_fbcon_set_suspend(drm_dev, 0); 674 nouveau_fbcon_zfill_all(drm_dev); 675 - nouveau_display_resume(drm_dev); 676 nv_suspend_set_printk_level(NV_DBG_DEBUG); 677 return 0; 678 } ··· 908 pci_set_master(pdev); 909 910 ret = nouveau_do_resume(drm_dev); 911 - nouveau_display_resume(drm_dev); 912 drm_kms_helper_poll_enable(drm_dev); 913 /* do magic */ 914 nv_mask(device, 0x88488, (1 << 25), (1 << 25));
··· 636 nouveau_fbcon_set_suspend(drm_dev, 0); 637 638 nouveau_fbcon_zfill_all(drm_dev); 639 + if (drm_dev->mode_config.num_crtc) 640 + nouveau_display_resume(drm_dev); 641 nv_suspend_set_printk_level(NV_DBG_DEBUG); 642 return 0; 643 } ··· 671 if (drm_dev->mode_config.num_crtc) 672 nouveau_fbcon_set_suspend(drm_dev, 0); 673 nouveau_fbcon_zfill_all(drm_dev); 674 + if (drm_dev->mode_config.num_crtc) 675 + nouveau_display_resume(drm_dev); 676 nv_suspend_set_printk_level(NV_DBG_DEBUG); 677 return 0; 678 } ··· 906 pci_set_master(pdev); 907 908 ret = nouveau_do_resume(drm_dev); 909 + if (drm_dev->mode_config.num_crtc) 910 + nouveau_display_resume(drm_dev); 911 drm_kms_helper_poll_enable(drm_dev); 912 /* do magic */ 913 nv_mask(device, 0x88488, (1 << 25), (1 << 25));