diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_vga.c')
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_vga.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c index 18d55d447248..c7592ec8ecb8 100644 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c +++ b/drivers/gpu/drm/nouveau/nouveau_vga.c | |||
| @@ -108,7 +108,16 @@ void | |||
| 108 | nouveau_vga_fini(struct nouveau_drm *drm) | 108 | nouveau_vga_fini(struct nouveau_drm *drm) |
| 109 | { | 109 | { |
| 110 | struct drm_device *dev = drm->dev; | 110 | struct drm_device *dev = drm->dev; |
| 111 | bool runtime = false; | ||
| 112 | |||
| 113 | if (nouveau_runtime_pm == 1) | ||
| 114 | runtime = true; | ||
| 115 | if ((nouveau_runtime_pm == -1) && (nouveau_is_optimus() || nouveau_is_v1_dsm())) | ||
| 116 | runtime = true; | ||
| 117 | |||
| 111 | vga_switcheroo_unregister_client(dev->pdev); | 118 | vga_switcheroo_unregister_client(dev->pdev); |
| 119 | if (runtime && nouveau_is_v1_dsm() && !nouveau_is_optimus()) | ||
| 120 | vga_switcheroo_fini_domain_pm_ops(drm->dev->dev); | ||
| 112 | vga_client_register(dev->pdev, NULL, NULL, NULL); | 121 | vga_client_register(dev->pdev, NULL, NULL, NULL); |
| 113 | } | 122 | } |
| 114 | 123 | ||
