diff options
author | Nitin Kumbhar <nkumbhar@nvidia.com> | 2018-06-11 06:01:33 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-07-26 03:06:07 -0400 |
commit | b4b1fb97bd095fa0de72550b04dc414b0194903e (patch) | |
tree | efef55fc52463a4278b3d01f0eaf165d3c677657 /drivers/gpu/nvgpu/gv100 | |
parent | d80e8168755da80987a654b910a5ce1f6f273223 (diff) |
gpu: nvgpu: shutdown nvlink in driver remove
During driver remove, if nvlink is set up, gracefully
shut it down so that it can be enumerated again.
Bug 1987855
Change-Id: Ibd83a5e29364b22264e689aa879569a9cccf0f79
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1746073
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv100')
-rw-r--r-- | drivers/gpu/nvgpu/gv100/hal_gv100.c | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv100/nvlink_gv100.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gv100/nvlink_gv100.h | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gv100/hal_gv100.c b/drivers/gpu/nvgpu/gv100/hal_gv100.c index 6ebf1675..6339110e 100644 --- a/drivers/gpu/nvgpu/gv100/hal_gv100.c +++ b/drivers/gpu/nvgpu/gv100/hal_gv100.c | |||
@@ -896,6 +896,7 @@ static const struct gpu_ops gv100_ops = { | |||
896 | .get_rx_sublink_state = gv100_nvlink_link_get_rx_sublink_state, | 896 | .get_rx_sublink_state = gv100_nvlink_link_get_rx_sublink_state, |
897 | .set_sublink_mode = gv100_nvlink_link_set_sublink_mode, | 897 | .set_sublink_mode = gv100_nvlink_link_set_sublink_mode, |
898 | .interface_init = gv100_nvlink_interface_init, | 898 | .interface_init = gv100_nvlink_interface_init, |
899 | .interface_disable = gv100_nvlink_interface_disable, | ||
899 | .reg_init = gv100_nvlink_reg_init, | 900 | .reg_init = gv100_nvlink_reg_init, |
900 | .shutdown = gv100_nvlink_shutdown, | 901 | .shutdown = gv100_nvlink_shutdown, |
901 | .early_init = gv100_nvlink_early_init, | 902 | .early_init = gv100_nvlink_early_init, |
diff --git a/drivers/gpu/nvgpu/gv100/nvlink_gv100.c b/drivers/gpu/nvgpu/gv100/nvlink_gv100.c index c328dd70..41c2cd2b 100644 --- a/drivers/gpu/nvgpu/gv100/nvlink_gv100.c +++ b/drivers/gpu/nvgpu/gv100/nvlink_gv100.c | |||
@@ -2269,6 +2269,11 @@ int gv100_nvlink_interface_init(struct gk20a *g) | |||
2269 | return 0; | 2269 | return 0; |
2270 | } | 2270 | } |
2271 | 2271 | ||
2272 | int gv100_nvlink_interface_disable(struct gk20a *g) | ||
2273 | { | ||
2274 | return 0; | ||
2275 | } | ||
2276 | |||
2272 | int gv100_nvlink_reg_init(struct gk20a *g) | 2277 | int gv100_nvlink_reg_init(struct gk20a *g) |
2273 | { | 2278 | { |
2274 | u32 i = 0; | 2279 | u32 i = 0; |
diff --git a/drivers/gpu/nvgpu/gv100/nvlink_gv100.h b/drivers/gpu/nvgpu/gv100/nvlink_gv100.h index 6310af28..75595bca 100644 --- a/drivers/gpu/nvgpu/gv100/nvlink_gv100.h +++ b/drivers/gpu/nvgpu/gv100/nvlink_gv100.h | |||
@@ -50,6 +50,7 @@ u32 gv100_nvlink_link_get_rx_sublink_state(struct gk20a *g, u32 link_id); | |||
50 | int gv100_nvlink_link_set_sublink_mode(struct gk20a *g, u32 link_id, | 50 | int gv100_nvlink_link_set_sublink_mode(struct gk20a *g, u32 link_id, |
51 | bool is_rx_sublink, u32 mode); | 51 | bool is_rx_sublink, u32 mode); |
52 | int gv100_nvlink_interface_init(struct gk20a *g); | 52 | int gv100_nvlink_interface_init(struct gk20a *g); |
53 | int gv100_nvlink_interface_disable(struct gk20a *g); | ||
53 | int gv100_nvlink_reg_init(struct gk20a *g); | 54 | int gv100_nvlink_reg_init(struct gk20a *g); |
54 | int gv100_nvlink_shutdown(struct gk20a *g); | 55 | int gv100_nvlink_shutdown(struct gk20a *g); |
55 | int gv100_nvlink_early_init(struct gk20a *g); | 56 | int gv100_nvlink_early_init(struct gk20a *g); |