Skip to content

Commit

Permalink
drm/nouveau: Don't register Thunderbolt eGPU with vga_switcheroo
Browse files Browse the repository at this point in the history
An external Thunderbolt GPU can neither drive the laptop's panel nor be
powered off by the platform, so there's no point in registering it with
vga_switcheroo.  In fact, when the external GPU is runtime suspended,
vga_switcheroo will cut power to the internal discrete GPU, resulting in
a lockup.

Cc: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Link: http://patchwork.freedesktop.org/patch/msgid/8e733152b13e7c14501ad5af45c1c5c736584111.1489145162.git.lukas@wunner.de
  • Loading branch information
Lukas Wunner committed Mar 30, 2017
1 parent 84c8b22 commit 1d3c110
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion drivers/gpu/drm/nouveau/nouveau_vga.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,10 @@ nouveau_vga_init(struct nouveau_drm *drm)

vga_client_register(dev->pdev, dev, NULL, nouveau_vga_set_decode);

/* don't register Thunderbolt eGPU with vga_switcheroo */
if (pci_is_thunderbolt_attached(dev->pdev))
return;

if (nouveau_runtime_pm == 1)
runtime = true;
if ((nouveau_runtime_pm == -1) && (nouveau_is_optimus() || nouveau_is_v1_dsm()))
Expand All @@ -111,6 +115,11 @@ nouveau_vga_fini(struct nouveau_drm *drm)
struct drm_device *dev = drm->dev;
bool runtime = false;

vga_client_register(dev->pdev, NULL, NULL, NULL);

if (pci_is_thunderbolt_attached(dev->pdev))
return;

if (nouveau_runtime_pm == 1)
runtime = true;
if ((nouveau_runtime_pm == -1) && (nouveau_is_optimus() || nouveau_is_v1_dsm()))
Expand All @@ -119,7 +128,6 @@ nouveau_vga_fini(struct nouveau_drm *drm)
vga_switcheroo_unregister_client(dev->pdev);
if (runtime && nouveau_is_v1_dsm() && !nouveau_is_optimus())
vga_switcheroo_fini_domain_pm_ops(drm->dev->dev);
vga_client_register(dev->pdev, NULL, NULL, NULL);
}


Expand Down

0 comments on commit 1d3c110

Please sign in to comment.