From a5f3fe9506dcf87910eba24c80a4b30c03dcced1 Mon Sep 17 00:00:00 2001 From: Thomas Fleury Date: Tue, 20 Feb 2018 20:39:22 -0800 Subject: gpu: nvgpu: gv100: enable syncpt shim for nvlink Get host1x node reference from c1_rp device tree node, and enable syncpoints shim in case of nvlink. JIRA EVLR-2441 JIRA EVLR-2585 Change-Id: Idbf1edf656557f2ed2d3bd27393c2f4d5d1ad75a Signed-off-by: Thomas Fleury Reviewed-on: https://git-master.nvidia.com/r/1663360 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gv100/hal_gv100.c | 4 ++++ drivers/gpu/nvgpu/gv100/nvlink_gv100.c | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/nvgpu/gv100') diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 40f16ed1..99cd8731 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c @@ -248,6 +248,10 @@ int gv100_init_gpu_characteristics(struct gk20a *g) __nvgpu_set_enabled(g, NVGPU_SUPPORT_TSG_SUBCONTEXTS, true); __nvgpu_set_enabled(g, NVGPU_SUPPORT_GET_TEMPERATURE, true); + if (g->has_syncpoints) { + __nvgpu_set_enabled(g, NVGPU_SUPPORT_SYNCPOINT_ADDRESS, true); + __nvgpu_set_enabled(g, NVGPU_SUPPORT_USER_SYNCPOINT, true); + } return 0; } 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) return -ENODEV; err = nvgpu_nvlink_enumerate(g); - if (err) - return err; + if (err) { + nvgpu_err(g, "failed to enumerate nvlink"); + goto fail; + } /* Set HSHUB and SG_PHY */ __nvgpu_set_enabled(g, NVGPU_MM_USE_PHYSICAL_SG, true); @@ -1645,10 +1647,15 @@ int gv100_nvlink_init(struct gk20a *g) err = g->ops.fb.enable_nvlink(g); if (err) { nvgpu_err(g, "failed switch to nvlink sysmem"); - return err; + goto fail; } return err; + +fail: + __nvgpu_set_enabled(g, NVGPU_MM_USE_PHYSICAL_SG, false); + __nvgpu_set_enabled(g, NVGPU_SUPPORT_NVLINK, false); + return err; } /* -- cgit v1.2.2