summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAdeel Raza <araza@nvidia.com>2018-05-11 17:05:58 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-06-07 14:12:53 -0400
commit8af4db8e8ef8f67bc4757c54425f24511721be63 (patch)
treea074ea50f68d3d13b4e1b3296b838d32226a347f /include
parentda1c92cefb1da1a412eca9200c8ea2d93d7c74ac (diff)
nvlink: add shim driver shutdown IOCTLs
For the shim driver mode, RM needs to perform a graceful shutdown of NVLINK during RM unload. Export the following T19x NVLINK endpoint IOCTLs for shim driver NVLINK shutdown: - INTERFACE_DISABLE IOCTL: Disables the NVLINK aperture - FINALIZE_SHUTDOWN IOCTL: Does shutdown related SW cleanup Bug 2113729 Jira NVLINK-173 Change-Id: I60e3f5fffd0b1e6cc87476b047ef1b761b5174d1 Signed-off-by: Adeel Raza <araza@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1714177 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Petlozu Pravareshwar <petlozup@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/platform/tegra/tegra-nvlink.h1
-rw-r--r--include/uapi/linux/tegra-nvlink-uapi.h8
2 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/platform/tegra/tegra-nvlink.h b/include/linux/platform/tegra/tegra-nvlink.h
index 66cec6115..09798b293 100644
--- a/include/linux/platform/tegra/tegra-nvlink.h
+++ b/include/linux/platform/tegra/tegra-nvlink.h
@@ -303,6 +303,7 @@ int nvlink_register_link(struct nvlink_link* link);
303int nvlink_unregister_device(struct nvlink_device* device); 303int nvlink_unregister_device(struct nvlink_device* device);
304int nvlink_unregister_link(struct nvlink_link* link); 304int nvlink_unregister_link(struct nvlink_link* link);
305int nvlink_get_init_state(struct nvlink_device *ndev, enum init_state *state); 305int nvlink_get_init_state(struct nvlink_device *ndev, enum init_state *state);
306int nvlink_set_init_state(struct nvlink_device *ndev, enum init_state state);
306int nvlink_enumerate(struct nvlink_device *ndev); 307int nvlink_enumerate(struct nvlink_device *ndev);
307int nvlink_transition_intranode_conn_off_to_safe(struct nvlink_device *ndev); 308int nvlink_transition_intranode_conn_off_to_safe(struct nvlink_device *ndev);
308int nvlink_train_intranode_conn_safe_to_hs(struct nvlink_device *ndev); 309int nvlink_train_intranode_conn_safe_to_hs(struct nvlink_device *ndev);
diff --git a/include/uapi/linux/tegra-nvlink-uapi.h b/include/uapi/linux/tegra-nvlink-uapi.h
index 099ecaeb0..7ac8a81aa 100644
--- a/include/uapi/linux/tegra-nvlink-uapi.h
+++ b/include/uapi/linux/tegra-nvlink-uapi.h
@@ -518,6 +518,8 @@ enum tnvlink_ioctl_num {
518 TNVLINK_IOCTL_READ_DISCOVERY_TOKEN, 518 TNVLINK_IOCTL_READ_DISCOVERY_TOKEN,
519 TNVLINK_IOCTL_GET_LOCAL_PCI_INFO, 519 TNVLINK_IOCTL_GET_LOCAL_PCI_INFO,
520 TNVLINK_IOCTL_SET_TOPOLOGY_INFO, 520 TNVLINK_IOCTL_SET_TOPOLOGY_INFO,
521 TNVLINK_IOCTL_INTERFACE_DISABLE,
522 TNVLINK_IOCTL_FINALIZE_SHUTDOWN,
521 TNVLINK_IOCTL_NUM_IOCTLS 523 TNVLINK_IOCTL_NUM_IOCTLS
522}; 524};
523 525
@@ -622,5 +624,11 @@ enum tnvlink_ioctl_num {
622 _IOW(TEGRA_NVLINK_IOC_MAGIC, \ 624 _IOW(TEGRA_NVLINK_IOC_MAGIC, \
623 TNVLINK_IOCTL_SET_TOPOLOGY_INFO, \ 625 TNVLINK_IOCTL_SET_TOPOLOGY_INFO, \
624 struct tegra_nvlink_set_topology_info) 626 struct tegra_nvlink_set_topology_info)
627#define TEGRA_CTRL_CMD_NVLINK_INTERFACE_DISABLE \
628 _IO(TEGRA_NVLINK_IOC_MAGIC, \
629 TNVLINK_IOCTL_INTERFACE_DISABLE)
630#define TEGRA_CTRL_CMD_NVLINK_FINALIZE_SHUTDOWN \
631 _IO(TEGRA_NVLINK_IOC_MAGIC, \
632 TNVLINK_IOCTL_FINALIZE_SHUTDOWN)
625 633
626#endif /* TEGRA_NVLINK_UAPI_H */ 634#endif /* TEGRA_NVLINK_UAPI_H */