summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv100/nvlink_gv100.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gv100/nvlink_gv100.c')
-rw-r--r--drivers/gpu/nvgpu/gv100/nvlink_gv100.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gv100/nvlink_gv100.c b/drivers/gpu/nvgpu/gv100/nvlink_gv100.c
index b3e25c21..776d1d66 100644
--- a/drivers/gpu/nvgpu/gv100/nvlink_gv100.c
+++ b/drivers/gpu/nvgpu/gv100/nvlink_gv100.c
@@ -1636,8 +1636,10 @@ int gv100_nvlink_init(struct gk20a *g)
1636 return -ENODEV; 1636 return -ENODEV;
1637 1637
1638 err = nvgpu_nvlink_enumerate(g); 1638 err = nvgpu_nvlink_enumerate(g);
1639 if (err) 1639 if (err) {
1640 return err; 1640 nvgpu_err(g, "failed to enumerate nvlink");
1641 goto fail;
1642 }
1641 1643
1642 /* Set HSHUB and SG_PHY */ 1644 /* Set HSHUB and SG_PHY */
1643 __nvgpu_set_enabled(g, NVGPU_MM_USE_PHYSICAL_SG, true); 1645 __nvgpu_set_enabled(g, NVGPU_MM_USE_PHYSICAL_SG, true);
@@ -1645,10 +1647,15 @@ int gv100_nvlink_init(struct gk20a *g)
1645 err = g->ops.fb.enable_nvlink(g); 1647 err = g->ops.fb.enable_nvlink(g);
1646 if (err) { 1648 if (err) {
1647 nvgpu_err(g, "failed switch to nvlink sysmem"); 1649 nvgpu_err(g, "failed switch to nvlink sysmem");
1648 return err; 1650 goto fail;
1649 } 1651 }
1650 1652
1651 return err; 1653 return err;
1654
1655fail:
1656 __nvgpu_set_enabled(g, NVGPU_MM_USE_PHYSICAL_SG, false);
1657 __nvgpu_set_enabled(g, NVGPU_SUPPORT_NVLINK, false);
1658 return err;
1652} 1659}
1653 1660
1654/* 1661/*