summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdeel Raza <araza@nvidia.com>2018-02-12 00:53:15 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2018-04-23 13:03:59 -0400
commit0e3181a5d710a4ef066c81ec9d699dbcb3d9c995 (patch)
tree4d86356f44c430d541838e053c976241676c77d1
parent24cf5916b7e503abce4d9a61c647636800acdacd (diff)
gpu: nvgpu: add multiple nvlink recovery modes
Previously all nvlink recovery modes were being grouped under 1 enum. Create an enum for each recovery mode, so the link can go into specific recovery modes. Bug 2090322 Change-Id: I5c2aea758f77b0286e3538424684ddceca98a873 Signed-off-by: Adeel Raza <araza@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1698799 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Tejal Kudav <tkudav@nvidia.com> Reviewed-by: Petlozu Pravareshwar <petlozup@nvidia.com> Tested-by: Petlozu Pravareshwar <petlozup@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/common/linux/nvlink.c18
-rw-r--r--drivers/gpu/nvgpu/gv100/nvlink_gv100.c10
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/nvlink.h4
3 files changed, 23 insertions, 9 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/nvlink.c b/drivers/gpu/nvgpu/common/linux/nvlink.c
index 61dc8bc7..f2faa682 100644
--- a/drivers/gpu/nvgpu/common/linux/nvlink.c
+++ b/drivers/gpu/nvgpu/common/linux/nvlink.c
@@ -138,8 +138,12 @@ static u32 nvgpu_nvlink_get_link_mode(struct nvlink_device *ndev)
138 return NVLINK_LINK_SAFE; 138 return NVLINK_LINK_SAFE;
139 case nvgpu_nvlink_link_fault: 139 case nvgpu_nvlink_link_fault:
140 return NVLINK_LINK_FAULT; 140 return NVLINK_LINK_FAULT;
141 case nvgpu_nvlink_link_recovery: 141 case nvgpu_nvlink_link_rcvy_ac:
142 return NVLINK_LINK_RECOVERY; 142 return NVLINK_LINK_RCVY_AC;
143 case nvgpu_nvlink_link_rcvy_sw:
144 return NVLINK_LINK_RCVY_SW;
145 case nvgpu_nvlink_link_rcvy_rx:
146 return NVLINK_LINK_RCVY_RX;
143 case nvgpu_nvlink_link_detect: 147 case nvgpu_nvlink_link_detect:
144 return NVLINK_LINK_DETECT; 148 return NVLINK_LINK_DETECT;
145 case nvgpu_nvlink_link_reset: 149 case nvgpu_nvlink_link_reset:
@@ -198,8 +202,14 @@ static int nvgpu_nvlink_set_link_mode(struct nvlink_device *ndev, u32 mode)
198 case NVLINK_LINK_FAULT: 202 case NVLINK_LINK_FAULT:
199 mode_sw = nvgpu_nvlink_link_fault; 203 mode_sw = nvgpu_nvlink_link_fault;
200 break; 204 break;
201 case NVLINK_LINK_RECOVERY: 205 case NVLINK_LINK_RCVY_AC:
202 mode_sw = nvgpu_nvlink_link_recovery; 206 mode_sw = nvgpu_nvlink_link_rcvy_ac;
207 break;
208 case NVLINK_LINK_RCVY_SW:
209 mode_sw = nvgpu_nvlink_link_rcvy_sw;
210 break;
211 case NVLINK_LINK_RCVY_RX:
212 mode_sw = nvgpu_nvlink_link_rcvy_rx;
203 break; 213 break;
204 case NVLINK_LINK_DETECT: 214 case NVLINK_LINK_DETECT:
205 mode_sw = nvgpu_nvlink_link_detect; 215 mode_sw = nvgpu_nvlink_link_detect;
diff --git a/drivers/gpu/nvgpu/gv100/nvlink_gv100.c b/drivers/gpu/nvgpu/gv100/nvlink_gv100.c
index d27239ae..b3e25c21 100644
--- a/drivers/gpu/nvgpu/gv100/nvlink_gv100.c
+++ b/drivers/gpu/nvgpu/gv100/nvlink_gv100.c
@@ -2239,10 +2239,12 @@ u32 gv100_nvlink_link_get_mode(struct gk20a *g, u32 link_id)
2239 return nvgpu_nvlink_link_hs; 2239 return nvgpu_nvlink_link_hs;
2240 if (state == nvl_link_state_state_fault_v()) 2240 if (state == nvl_link_state_state_fault_v())
2241 return nvgpu_nvlink_link_fault; 2241 return nvgpu_nvlink_link_fault;
2242 if ((state == nvl_link_state_state_rcvy_ac_v()) || 2242 if (state == nvl_link_state_state_rcvy_ac_v())
2243 (state == nvl_link_state_state_rcvy_sw_v()) || 2243 return nvgpu_nvlink_link_rcvy_ac;
2244 (state == nvl_link_state_state_rcvy_rx_v())) 2244 if (state == nvl_link_state_state_rcvy_sw_v())
2245 return nvgpu_nvlink_link_recovery; 2245 return nvgpu_nvlink_link_rcvy_sw;
2246 if (state == nvl_link_state_state_rcvy_rx_v())
2247 return nvgpu_nvlink_link_rcvy_rx;
2246 2248
2247 return nvgpu_nvlink_link_off; 2249 return nvgpu_nvlink_link_off;
2248} 2250}
diff --git a/drivers/gpu/nvgpu/include/nvgpu/nvlink.h b/drivers/gpu/nvgpu/include/nvgpu/nvlink.h
index 7b8be7d8..0ef8a2f5 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/nvlink.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/nvlink.h
@@ -59,7 +59,9 @@ enum nvgpu_nvlink_link_mode {
59 nvgpu_nvlink_link_hs, 59 nvgpu_nvlink_link_hs,
60 nvgpu_nvlink_link_safe, 60 nvgpu_nvlink_link_safe,
61 nvgpu_nvlink_link_fault, 61 nvgpu_nvlink_link_fault,
62 nvgpu_nvlink_link_recovery, 62 nvgpu_nvlink_link_rcvy_ac,
63 nvgpu_nvlink_link_rcvy_sw,
64 nvgpu_nvlink_link_rcvy_rx,
63 nvgpu_nvlink_link_detect, 65 nvgpu_nvlink_link_detect,
64 nvgpu_nvlink_link_reset, 66 nvgpu_nvlink_link_reset,
65 nvgpu_nvlink_link_enable_pm, 67 nvgpu_nvlink_link_enable_pm,