|
@@ -699,7 +699,12 @@ nouveau_pmops_resume(struct device *dev)
|
|
return ret;
|
|
return ret;
|
|
pci_set_master(pdev);
|
|
pci_set_master(pdev);
|
|
|
|
|
|
- return nouveau_do_resume(drm_dev, false);
|
|
|
|
|
|
+ ret = nouveau_do_resume(drm_dev, false);
|
|
|
|
+
|
|
|
|
+ /* Monitors may have been connected / disconnected during suspend */
|
|
|
|
+ schedule_work(&nouveau_drm(drm_dev)->hpd_work);
|
|
|
|
+
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
|
|
|
|
static int
|
|
static int
|
|
@@ -773,6 +778,10 @@ nouveau_pmops_runtime_resume(struct device *dev)
|
|
nvif_mask(&device->object, 0x088488, (1 << 25), (1 << 25));
|
|
nvif_mask(&device->object, 0x088488, (1 << 25), (1 << 25));
|
|
vga_switcheroo_set_dynamic_switch(pdev, VGA_SWITCHEROO_ON);
|
|
vga_switcheroo_set_dynamic_switch(pdev, VGA_SWITCHEROO_ON);
|
|
drm_dev->switch_power_state = DRM_SWITCH_POWER_ON;
|
|
drm_dev->switch_power_state = DRM_SWITCH_POWER_ON;
|
|
|
|
+
|
|
|
|
+ /* Monitors may have been connected / disconnected during suspend */
|
|
|
|
+ schedule_work(&nouveau_drm(drm_dev)->hpd_work);
|
|
|
|
+
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|