535.183.06
This commit is contained in:
parent
4459285b60
commit
c588c3877f
|
@ -2,6 +2,8 @@
|
|||
|
||||
## Release 535 Entries
|
||||
|
||||
### [535.183.06] 2024-07-09
|
||||
|
||||
### [535.183.01] 2024-06-04
|
||||
|
||||
### [535.179] 2024-05-09
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# NVIDIA Linux Open GPU Kernel Module Source
|
||||
|
||||
This is the source release of the NVIDIA Linux open GPU kernel modules,
|
||||
version 535.183.01.
|
||||
version 535.183.06.
|
||||
|
||||
|
||||
## How to Build
|
||||
|
@ -17,7 +17,7 @@ as root:
|
|||
|
||||
Note that the kernel modules built here must be used with GSP
|
||||
firmware and user-space NVIDIA GPU driver components from a corresponding
|
||||
535.183.01 driver release. This can be achieved by installing
|
||||
535.183.06 driver release. This can be achieved by installing
|
||||
the NVIDIA GPU driver from the .run file using the `--no-kernel-modules`
|
||||
option. E.g.,
|
||||
|
||||
|
@ -180,7 +180,7 @@ software applications.
|
|||
## Compatible GPUs
|
||||
|
||||
The open-gpu-kernel-modules can be used on any Turing or later GPU
|
||||
(see the table below). However, in the 535.183.01 release,
|
||||
(see the table below). However, in the 535.183.06 release,
|
||||
GeForce and Workstation support is still considered alpha-quality.
|
||||
|
||||
To enable use of the open kernel modules on GeForce and Workstation GPUs,
|
||||
|
@ -188,7 +188,7 @@ set the "NVreg_OpenRmEnableUnsupportedGpus" nvidia.ko kernel module
|
|||
parameter to 1. For more details, see the NVIDIA GPU driver end user
|
||||
README here:
|
||||
|
||||
https://us.download.nvidia.com/XFree86/Linux-x86_64/535.183.01/README/kernel_open.html
|
||||
https://us.download.nvidia.com/XFree86/Linux-x86_64/535.183.06/README/kernel_open.html
|
||||
|
||||
In the below table, if three IDs are listed, the first is the PCI Device
|
||||
ID, the second is the PCI Subsystem Vendor ID, and the third is the PCI
|
||||
|
|
|
@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
|
|||
EXTRA_CFLAGS += -I$(src)
|
||||
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args
|
||||
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
|
||||
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"535.183.01\"
|
||||
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"535.183.06\"
|
||||
|
||||
ifneq ($(SYSSRCHOST1X),)
|
||||
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)
|
||||
|
|
|
@ -1208,6 +1208,23 @@ compile_test() {
|
|||
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_OPS_HAS_BIND_IOMMUFD" "" "types"
|
||||
;;
|
||||
|
||||
vfio_device_ops_has_detach_ioas)
|
||||
#
|
||||
# Determine if 'vfio_device_ops' struct has 'detach_ioas' field.
|
||||
#
|
||||
# Added by commit 9048c7341c4df9cae04c154a8b0f556dbe913358 ("vfio-iommufd: Add detach_ioas
|
||||
# support for physical VFIO devices
|
||||
#
|
||||
CODE="
|
||||
#include <linux/pci.h>
|
||||
#include <linux/vfio.h>
|
||||
int conftest_vfio_device_ops_has_detach_ioas(void) {
|
||||
return offsetof(struct vfio_device_ops, detach_ioas);
|
||||
}"
|
||||
|
||||
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_OPS_HAS_DETACH_IOAS" "" "types"
|
||||
;;
|
||||
|
||||
pci_irq_vector_helpers)
|
||||
#
|
||||
# Determine if pci_alloc_irq_vectors(), pci_free_irq_vectors()
|
||||
|
@ -6772,10 +6789,12 @@ case "$5" in
|
|||
#
|
||||
VERBOSE=$6
|
||||
iommu=CONFIG_VFIO_IOMMU_TYPE1
|
||||
iommufd_vfio_container=CONFIG_IOMMUFD_VFIO_CONTAINER
|
||||
mdev=CONFIG_VFIO_MDEV
|
||||
kvm=CONFIG_KVM_VFIO
|
||||
vfio_pci_core=CONFIG_VFIO_PCI_CORE
|
||||
VFIO_IOMMU_PRESENT=0
|
||||
VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT=0
|
||||
VFIO_MDEV_PRESENT=0
|
||||
KVM_PRESENT=0
|
||||
VFIO_PCI_CORE_PRESENT=0
|
||||
|
@ -6785,6 +6804,10 @@ case "$5" in
|
|||
VFIO_IOMMU_PRESENT=1
|
||||
fi
|
||||
|
||||
if (test_configuration_option ${iommufd_vfio_container} || test_configuration_option ${iommufd_vfio_container}_MODULE); then
|
||||
VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT=1
|
||||
fi
|
||||
|
||||
if (test_configuration_option ${mdev} || test_configuration_option ${mdev}_MODULE); then
|
||||
VFIO_MDEV_PRESENT=1
|
||||
fi
|
||||
|
@ -6797,7 +6820,7 @@ case "$5" in
|
|||
VFIO_PCI_CORE_PRESENT=1
|
||||
fi
|
||||
|
||||
if [ "$VFIO_IOMMU_PRESENT" != "0" ] && [ "$KVM_PRESENT" != "0" ] ; then
|
||||
if ([ "$VFIO_IOMMU_PRESENT" != "0" ] || [ "$VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT" != "0" ])&& [ "$KVM_PRESENT" != "0" ] ; then
|
||||
# vGPU requires either MDEV or vfio-pci-core framework to be present.
|
||||
if [ "$VFIO_MDEV_PRESENT" != "0" ] || [ "$VFIO_PCI_CORE_PRESENT" != "0" ]; then
|
||||
exit 0
|
||||
|
@ -6806,8 +6829,8 @@ case "$5" in
|
|||
|
||||
echo "Below CONFIG options are missing on the kernel for installing";
|
||||
echo "NVIDIA vGPU driver on KVM host";
|
||||
if [ "$VFIO_IOMMU_PRESENT" = "0" ]; then
|
||||
echo "CONFIG_VFIO_IOMMU_TYPE1";
|
||||
if [ "$VFIO_IOMMU_PRESENT" = "0" ] && [ "$VFIO_IOMMUFD_VFIO_CONTAINER_PRESENT" = "0" ]; then
|
||||
echo "either CONFIG_VFIO_IOMMU_TYPE1 or CONFIG_IOMMUFD_VFIO_CONTAINER";
|
||||
fi
|
||||
|
||||
if [ "$VFIO_MDEV_PRESENT" = "0" ] && [ "$VFIO_PCI_CORE_PRESENT" = "0" ]; then
|
||||
|
|
|
@ -43,18 +43,18 @@
|
|||
#endif
|
||||
|
||||
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
|
||||
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r535/r538_67-552"
|
||||
#define NV_BUILD_CHANGELIST_NUM (34280977)
|
||||
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r535/r538_67-557"
|
||||
#define NV_BUILD_CHANGELIST_NUM (34462766)
|
||||
#define NV_BUILD_TYPE "Official"
|
||||
#define NV_BUILD_NAME "rel/gpu_drv/r535/r538_67-552"
|
||||
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34280977)
|
||||
#define NV_BUILD_NAME "rel/gpu_drv/r535/r538_67-557"
|
||||
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34462766)
|
||||
|
||||
#else /* Windows builds */
|
||||
#define NV_BUILD_BRANCH_VERSION "r538_67-1"
|
||||
#define NV_BUILD_CHANGELIST_NUM (34280977)
|
||||
#define NV_BUILD_BRANCH_VERSION "r538_67-2"
|
||||
#define NV_BUILD_CHANGELIST_NUM (34397468)
|
||||
#define NV_BUILD_TYPE "Official"
|
||||
#define NV_BUILD_NAME "538.69"
|
||||
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34280977)
|
||||
#define NV_BUILD_NAME "538.78"
|
||||
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34397468)
|
||||
#define NV_BUILD_BRANCH_BASE_VERSION R535
|
||||
#endif
|
||||
// End buildmeister python edited section
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \
|
||||
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1)
|
||||
|
||||
#define NV_VERSION_STRING "535.183.01"
|
||||
#define NV_VERSION_STRING "535.183.06"
|
||||
|
||||
#else
|
||||
|
||||
|
|
|
@ -500,7 +500,8 @@ NvlStatus nvlink_lib_get_remote_conn_info(nvlink_link *link, nvlink_conn_info *c
|
|||
*/
|
||||
NvlStatus nvlink_lib_discover_and_get_remote_conn_info(nvlink_link *end,
|
||||
nvlink_conn_info *conn_info,
|
||||
NvU32 flags);
|
||||
NvU32 flags,
|
||||
NvBool bForceDiscovery);
|
||||
|
||||
|
||||
/************************************************************************************************/
|
||||
|
|
|
@ -47,7 +47,8 @@ nvlink_core_discover_and_get_remote_end
|
|||
(
|
||||
nvlink_link *end,
|
||||
nvlink_link **remote_end,
|
||||
NvU32 flags
|
||||
NvU32 flags,
|
||||
NvBool bForceDiscovery
|
||||
)
|
||||
{
|
||||
nvlink_intranode_conn *conn = NULL;
|
||||
|
@ -67,7 +68,7 @@ nvlink_core_discover_and_get_remote_end
|
|||
return;
|
||||
}
|
||||
|
||||
if (nvlinkLibCtx.bNewEndpoints)
|
||||
if (nvlinkLibCtx.bNewEndpoints || bForceDiscovery)
|
||||
{
|
||||
if (!_nvlink_core_all_links_initialized())
|
||||
{
|
||||
|
|
|
@ -1481,7 +1481,7 @@ _nvlink_lib_ctrl_device_discover_peer_link
|
|||
(linkMode == NVLINK_LINKSTATE_SLEEP))
|
||||
{
|
||||
nvlink_link *remoteLink = NULL;
|
||||
nvlink_core_discover_and_get_remote_end(link, &remoteLink, 0);
|
||||
nvlink_core_discover_and_get_remote_end(link, &remoteLink, 0, NV_FALSE);
|
||||
if (remoteLink == NULL)
|
||||
{
|
||||
NVLINK_PRINT((DBG_MODULE_NVLINK_CORE, NVLINK_DBG_LEVEL_INFO,
|
||||
|
|
|
@ -182,7 +182,8 @@ nvlink_lib_discover_and_get_remote_conn_info
|
|||
(
|
||||
nvlink_link *end,
|
||||
nvlink_conn_info *conn_info,
|
||||
NvU32 flags
|
||||
NvU32 flags,
|
||||
NvBool bForceDiscovery
|
||||
)
|
||||
{
|
||||
NvlStatus status = NVL_SUCCESS;
|
||||
|
@ -257,7 +258,8 @@ nvlink_lib_discover_and_get_remote_conn_info
|
|||
conn_info->bConnected = NV_FALSE;
|
||||
|
||||
// Get the remote_end of the link
|
||||
nvlink_core_discover_and_get_remote_end(end, &remote_end, flags);
|
||||
nvlink_core_discover_and_get_remote_end(end, &remote_end, flags,
|
||||
bForceDiscovery);
|
||||
|
||||
if (remote_end)
|
||||
{
|
||||
|
|
|
@ -174,7 +174,8 @@ void nvlink_core_correlate_conn_by_token(nvlink_link *srcLink, NvU64 writeToken,
|
|||
*/
|
||||
void nvlink_core_discover_and_get_remote_end(nvlink_link *end,
|
||||
nvlink_link **remote_end,
|
||||
NvU32 flags);
|
||||
NvU32 flags,
|
||||
NvBool bForceDiscovery);
|
||||
|
||||
|
||||
/************************************************************************************************/
|
||||
|
|
|
@ -4071,7 +4071,9 @@ nvswitch_ctrl_get_nvlink_status_lr10
|
|||
}
|
||||
else
|
||||
{
|
||||
nvlink_lib_discover_and_get_remote_conn_info(link, &conn_info, NVLINK_STATE_CHANGE_SYNC);
|
||||
nvlink_lib_discover_and_get_remote_conn_info(link, &conn_info,
|
||||
NVLINK_STATE_CHANGE_SYNC,
|
||||
NV_FALSE);
|
||||
}
|
||||
|
||||
// Set NVLINK per-link caps
|
||||
|
|
|
@ -2973,6 +2973,89 @@ typedef struct NV2080_CTRL_NVLINK_POST_FAULT_UP_PARAMS {
|
|||
|
||||
#define NV2080_CTRL_CMD_NVLINK_POST_FAULT_UP (0x20803043U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_POST_FAULT_UP_PARAMS_MESSAGE_ID" */
|
||||
|
||||
#define NV2080_CTRL_NVLINK_PORT_EVENT_COUNT_SIZE 64U
|
||||
|
||||
/*
|
||||
* Structure to store port event information
|
||||
*
|
||||
* portEventType
|
||||
* Type of port even that occurred: NVLINK_PORT_EVENT_TYPE*
|
||||
*
|
||||
* gpuId
|
||||
* Gpu that port event occurred on
|
||||
*
|
||||
* linkId
|
||||
* Link id that port event occurred on
|
||||
*
|
||||
* time
|
||||
* Platform time (nsec) when event occurred
|
||||
*/
|
||||
typedef struct NV2080_CTRL_NVLINK_PORT_EVENT {
|
||||
NvU32 portEventType;
|
||||
NvU32 gpuId;
|
||||
NvU32 linkId;
|
||||
NV_DECLARE_ALIGNED(NvU64 time, 8);
|
||||
} NV2080_CTRL_NVLINK_PORT_EVENT;
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_NVLINK_GET_PORT_EVENTS
|
||||
*
|
||||
* This command returns the port up and port down events that have occurred
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* portEventIndex [IN/OUT]
|
||||
* On input: The index of the first port event at which to start reading out of the driver.
|
||||
*
|
||||
* On output: The index of the first port event that wasn't reported through the 'port event' array
|
||||
* in this call to NV2080_CTRL_CMD_NVLINK_GET_PORT_EVENTS.
|
||||
*
|
||||
* nextPortEventIndex[OUT]
|
||||
* The index that will be assigned to the next port event that occurs.
|
||||
* Users of the GET_PORT_EVENTS control call may set 'portEventIndex' to this field on initialization
|
||||
* to bypass port events that have already occurred without making multiple control calls.
|
||||
*
|
||||
* portEventCount [OUT]
|
||||
* Number of port events returned by the call. Currently, portEventCount is limited
|
||||
* by NV2080_CTRL_NVLINK_PORT_EVENT_COUNT_SIZE. In order to query all the port events, a
|
||||
* client needs to keep calling the control till portEventCount is zero.
|
||||
*
|
||||
* bOverflow [OUT]
|
||||
* True when the port event log is overflowed and no longer contains all the port
|
||||
* events that have occurred, false otherwise.
|
||||
*
|
||||
* portEvent [OUT]
|
||||
* The port event entires.
|
||||
*/
|
||||
#define NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS_MESSAGE_ID (0x44U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS {
|
||||
NV_DECLARE_ALIGNED(NvU64 portEventIndex, 8);
|
||||
NV_DECLARE_ALIGNED(NvU64 nextPortEventIndex, 8);
|
||||
NvU32 portEventCount;
|
||||
NvBool bOverflow;
|
||||
NV_DECLARE_ALIGNED(NV2080_CTRL_NVLINK_PORT_EVENT portEvent[NV2080_CTRL_NVLINK_PORT_EVENT_COUNT_SIZE], 8);
|
||||
} NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_GET_PORT_EVENTS (0x20803044U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS_MESSAGE_ID" */
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_NVLINK_CYCLE_LINK
|
||||
*
|
||||
* This command cycles a link by faulting it and then retraining the link
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* linkId [IN]
|
||||
* The link id of the link to be cycled
|
||||
*/
|
||||
#define NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS_MESSAGE_ID (0x45U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS {
|
||||
NvU32 linkId;
|
||||
} NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_CYCLE_LINK (0x20803045U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS_MESSAGE_ID" */
|
||||
|
||||
/*
|
||||
* NV2080_CTRL_CMD_NVLINK_IS_REDUCED_CONFIG
|
||||
|
@ -2982,13 +3065,13 @@ typedef struct NV2080_CTRL_NVLINK_POST_FAULT_UP_PARAMS {
|
|||
* [out] bReducedNvlinkConfig
|
||||
* Link number which the sequence should be triggered
|
||||
*/
|
||||
#define NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS_MESSAGE_ID (0x44U)
|
||||
#define NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS_MESSAGE_ID (0x46U)
|
||||
|
||||
typedef struct NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS {
|
||||
NvBool bReducedNvlinkConfig;
|
||||
} NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS;
|
||||
|
||||
#define NV2080_CTRL_CMD_NVLINK_IS_REDUCED_CONFIG (0x20803044U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS_MESSAGE_ID" */
|
||||
#define NV2080_CTRL_CMD_NVLINK_IS_REDUCED_CONFIG (0x20803046U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS_MESSAGE_ID" */
|
||||
|
||||
|
||||
/* _ctrl2080nvlink_h_ */
|
||||
|
|
|
@ -316,6 +316,7 @@ struct KernelNvlink {
|
|||
NvBool PRIVATE_FIELD(bEnableSafeModeAtLoad);
|
||||
NvBool PRIVATE_FIELD(bEnableAli);
|
||||
NvBool PRIVATE_FIELD(bFloorSwept);
|
||||
NvU32 PRIVATE_FIELD(numPortEvents);
|
||||
NvBool PRIVATE_FIELD(bLinkTrainingDebugSpew);
|
||||
NvBool PRIVATE_FIELD(bDisableL2Mode);
|
||||
NvU32 PRIVATE_FIELD(nvlinkLinkSpeed);
|
||||
|
|
|
@ -7243,6 +7243,36 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
#endif
|
||||
},
|
||||
{ /* [467] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x204u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
/*pFunc=*/ (void (*)(void)) subdeviceCtrlCmdNvlinkGetPortEvents_IMPL,
|
||||
#endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x204u)
|
||||
/*flags=*/ 0x204u,
|
||||
/*accessRight=*/0x0u,
|
||||
/*methodId=*/ 0x20803044u,
|
||||
/*paramSize=*/ sizeof(NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS),
|
||||
/*pClassInfo=*/ &(__nvoc_class_def_Subdevice.classInfo),
|
||||
#if NV_PRINTF_STRINGS_ALLOWED
|
||||
/*func=*/ "subdeviceCtrlCmdNvlinkGetPortEvents"
|
||||
#endif
|
||||
},
|
||||
{ /* [468] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x204u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
/*pFunc=*/ (void (*)(void)) subdeviceCtrlCmdNvlinkCycleLink_IMPL,
|
||||
#endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x204u)
|
||||
/*flags=*/ 0x204u,
|
||||
/*accessRight=*/0x0u,
|
||||
/*methodId=*/ 0x20803045u,
|
||||
/*paramSize=*/ sizeof(NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS),
|
||||
/*pClassInfo=*/ &(__nvoc_class_def_Subdevice.classInfo),
|
||||
#if NV_PRINTF_STRINGS_ALLOWED
|
||||
/*func=*/ "subdeviceCtrlCmdNvlinkCycleLink"
|
||||
#endif
|
||||
},
|
||||
{ /* [469] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x200u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7250,14 +7280,14 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
#endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x200u)
|
||||
/*flags=*/ 0x200u,
|
||||
/*accessRight=*/0x0u,
|
||||
/*methodId=*/ 0x20803044u,
|
||||
/*methodId=*/ 0x20803046u,
|
||||
/*paramSize=*/ sizeof(NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS),
|
||||
/*pClassInfo=*/ &(__nvoc_class_def_Subdevice.classInfo),
|
||||
#if NV_PRINTF_STRINGS_ALLOWED
|
||||
/*func=*/ "subdeviceCtrlCmdIsNvlinkReducedConfig"
|
||||
#endif
|
||||
},
|
||||
{ /* [468] */
|
||||
{ /* [470] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7272,7 +7302,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlcnGetDmemUsage"
|
||||
#endif
|
||||
},
|
||||
{ /* [469] */
|
||||
{ /* [471] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7287,7 +7317,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlcnGetEngineArch"
|
||||
#endif
|
||||
},
|
||||
{ /* [470] */
|
||||
{ /* [472] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7302,7 +7332,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlcnUstreamerQueueInfo"
|
||||
#endif
|
||||
},
|
||||
{ /* [471] */
|
||||
{ /* [473] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7317,7 +7347,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlcnUstreamerControlGet"
|
||||
#endif
|
||||
},
|
||||
{ /* [472] */
|
||||
{ /* [474] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x204u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7332,7 +7362,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlcnUstreamerControlSet"
|
||||
#endif
|
||||
},
|
||||
{ /* [473] */
|
||||
{ /* [475] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x0u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7347,7 +7377,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlcnGetCtxBufferInfo"
|
||||
#endif
|
||||
},
|
||||
{ /* [474] */
|
||||
{ /* [476] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7362,7 +7392,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlcnGetCtxBufferSize"
|
||||
#endif
|
||||
},
|
||||
{ /* [475] */
|
||||
{ /* [477] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7377,7 +7407,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdEccGetClientExposedCounters"
|
||||
#endif
|
||||
},
|
||||
{ /* [476] */
|
||||
{ /* [478] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7392,7 +7422,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdEccGetEciCounters"
|
||||
#endif
|
||||
},
|
||||
{ /* [477] */
|
||||
{ /* [479] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7407,7 +7437,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdEccGetVolatileCounts"
|
||||
#endif
|
||||
},
|
||||
{ /* [478] */
|
||||
{ /* [480] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x810u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7422,7 +7452,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlaRange"
|
||||
#endif
|
||||
},
|
||||
{ /* [479] */
|
||||
{ /* [481] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x102204u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7437,7 +7467,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlaSetupInstanceMemBlock"
|
||||
#endif
|
||||
},
|
||||
{ /* [480] */
|
||||
{ /* [482] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x100004u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7452,7 +7482,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlaGetRange"
|
||||
#endif
|
||||
},
|
||||
{ /* [481] */
|
||||
{ /* [483] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x1810u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7467,7 +7497,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdFlaGetFabricMemStats"
|
||||
#endif
|
||||
},
|
||||
{ /* [482] */
|
||||
{ /* [484] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x4211u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7482,7 +7512,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdGspGetFeatures"
|
||||
#endif
|
||||
},
|
||||
{ /* [483] */
|
||||
{ /* [485] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7497,7 +7527,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdGspGetRmHeapStats"
|
||||
#endif
|
||||
},
|
||||
{ /* [484] */
|
||||
{ /* [486] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x2210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7512,7 +7542,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdGrmgrGetGrFsInfo"
|
||||
#endif
|
||||
},
|
||||
{ /* [485] */
|
||||
{ /* [487] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x3u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7527,7 +7557,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdOsUnixGc6BlockerRefCnt"
|
||||
#endif
|
||||
},
|
||||
{ /* [486] */
|
||||
{ /* [488] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x11u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7542,7 +7572,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdOsUnixAllowDisallowGcoff"
|
||||
#endif
|
||||
},
|
||||
{ /* [487] */
|
||||
{ /* [489] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x1u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7557,7 +7587,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdOsUnixAudioDynamicPower"
|
||||
#endif
|
||||
},
|
||||
{ /* [488] */
|
||||
{ /* [490] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x13u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7572,7 +7602,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdOsUnixVidmemPersistenceStatus"
|
||||
#endif
|
||||
},
|
||||
{ /* [489] */
|
||||
{ /* [491] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x7u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7587,7 +7617,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdOsUnixUpdateTgpStatus"
|
||||
#endif
|
||||
},
|
||||
{ /* [490] */
|
||||
{ /* [492] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7602,7 +7632,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalBootloadGspVgpuPluginTask"
|
||||
#endif
|
||||
},
|
||||
{ /* [491] */
|
||||
{ /* [493] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7617,7 +7647,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalShutdownGspVgpuPluginTask"
|
||||
#endif
|
||||
},
|
||||
{ /* [492] */
|
||||
{ /* [494] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7632,7 +7662,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalPgpuAddVgpuType"
|
||||
#endif
|
||||
},
|
||||
{ /* [493] */
|
||||
{ /* [495] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7647,7 +7677,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalEnumerateVgpuPerPgpu"
|
||||
#endif
|
||||
},
|
||||
{ /* [494] */
|
||||
{ /* [496] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7662,7 +7692,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalClearGuestVmInfo"
|
||||
#endif
|
||||
},
|
||||
{ /* [495] */
|
||||
{ /* [497] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7677,7 +7707,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalGetVgpuFbUsage"
|
||||
#endif
|
||||
},
|
||||
{ /* [496] */
|
||||
{ /* [498] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7692,7 +7722,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalSetVgpuEncoderCapacity"
|
||||
#endif
|
||||
},
|
||||
{ /* [497] */
|
||||
{ /* [499] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7707,7 +7737,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalCleanupGspVgpuPluginResources"
|
||||
#endif
|
||||
},
|
||||
{ /* [498] */
|
||||
{ /* [500] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7722,7 +7752,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalGetPgpuFsEncoding"
|
||||
#endif
|
||||
},
|
||||
{ /* [499] */
|
||||
{ /* [501] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7737,7 +7767,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalGetPgpuMigrationSupport"
|
||||
#endif
|
||||
},
|
||||
{ /* [500] */
|
||||
{ /* [502] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7752,7 +7782,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdVgpuMgrInternalSetVgpuMgrConfig"
|
||||
#endif
|
||||
},
|
||||
{ /* [501] */
|
||||
{ /* [503] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0xa50u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7767,7 +7797,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdGetAvailableHshubMask"
|
||||
#endif
|
||||
},
|
||||
{ /* [502] */
|
||||
{ /* [504] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7782,7 +7812,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
/*func=*/ "subdeviceCtrlCmdPerfGetGpumonPerfmonUtilSamples"
|
||||
#endif
|
||||
},
|
||||
{ /* [503] */
|
||||
{ /* [505] */
|
||||
#if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x600u)
|
||||
/*pFunc=*/ (void (*)(void)) NULL,
|
||||
#else
|
||||
|
@ -7802,7 +7832,7 @@ static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_Subdevic
|
|||
|
||||
const struct NVOC_EXPORT_INFO __nvoc_export_info_Subdevice =
|
||||
{
|
||||
/*numEntries=*/ 504,
|
||||
/*numEntries=*/ 506,
|
||||
/*pExportEntries=*/ __nvoc_exported_method_def_Subdevice
|
||||
};
|
||||
|
||||
|
@ -8257,6 +8287,14 @@ static void __nvoc_init_funcTable_Subdevice_1(Subdevice *pThis, RmHalspecOwner *
|
|||
pThis->__subdeviceCtrlCmdNvlinkGetL1Threshold__ = &subdeviceCtrlCmdNvlinkGetL1Threshold_IMPL;
|
||||
#endif
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x204u)
|
||||
pThis->__subdeviceCtrlCmdNvlinkGetPortEvents__ = &subdeviceCtrlCmdNvlinkGetPortEvents_IMPL;
|
||||
#endif
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x204u)
|
||||
pThis->__subdeviceCtrlCmdNvlinkCycleLink__ = &subdeviceCtrlCmdNvlinkCycleLink_IMPL;
|
||||
#endif
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x200u)
|
||||
pThis->__subdeviceCtrlCmdIsNvlinkReducedConfig__ = &subdeviceCtrlCmdIsNvlinkReducedConfig_IMPL;
|
||||
#endif
|
||||
|
@ -8891,14 +8929,6 @@ static void __nvoc_init_funcTable_Subdevice_1(Subdevice *pThis, RmHalspecOwner *
|
|||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x10u)
|
||||
pThis->__subdeviceCtrlCmdGpuQueryMode__ = &subdeviceCtrlCmdGpuQueryMode_IMPL;
|
||||
#endif
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x4210u)
|
||||
pThis->__subdeviceCtrlCmdGpuGetInforomImageVersion__ = &subdeviceCtrlCmdGpuGetInforomImageVersion_IMPL;
|
||||
#endif
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
pThis->__subdeviceCtrlCmdGpuGetInforomObjectVersion__ = &subdeviceCtrlCmdGpuGetInforomObjectVersion_IMPL;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void __nvoc_init_funcTable_Subdevice_2(Subdevice *pThis, RmHalspecOwner *pRmhalspecowner) {
|
||||
|
@ -8909,6 +8939,14 @@ static void __nvoc_init_funcTable_Subdevice_2(Subdevice *pThis, RmHalspecOwner *
|
|||
PORT_UNREFERENCED_VARIABLE(rmVariantHal);
|
||||
PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x4210u)
|
||||
pThis->__subdeviceCtrlCmdGpuGetInforomImageVersion__ = &subdeviceCtrlCmdGpuGetInforomImageVersion_IMPL;
|
||||
#endif
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
pThis->__subdeviceCtrlCmdGpuGetInforomObjectVersion__ = &subdeviceCtrlCmdGpuGetInforomObjectVersion_IMPL;
|
||||
#endif
|
||||
|
||||
#if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x210u)
|
||||
pThis->__subdeviceCtrlCmdGpuQueryInforomEccSupport__ = &subdeviceCtrlCmdGpuQueryInforomEccSupport_IMPL;
|
||||
#endif
|
||||
|
@ -9918,10 +9956,6 @@ static void __nvoc_init_funcTable_Subdevice_2(Subdevice *pThis, RmHalspecOwner *
|
|||
pThis->__subdeviceControl__ = &__nvoc_thunk_GpuResource_subdeviceControl;
|
||||
|
||||
pThis->__subdeviceUnmap__ = &__nvoc_thunk_GpuResource_subdeviceUnmap;
|
||||
|
||||
pThis->__subdeviceGetMemInterMapParams__ = &__nvoc_thunk_RmResource_subdeviceGetMemInterMapParams;
|
||||
|
||||
pThis->__subdeviceGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_subdeviceGetMemoryMappingDescriptor;
|
||||
}
|
||||
|
||||
static void __nvoc_init_funcTable_Subdevice_3(Subdevice *pThis, RmHalspecOwner *pRmhalspecowner) {
|
||||
|
@ -9932,6 +9966,10 @@ static void __nvoc_init_funcTable_Subdevice_3(Subdevice *pThis, RmHalspecOwner *
|
|||
PORT_UNREFERENCED_VARIABLE(rmVariantHal);
|
||||
PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
|
||||
|
||||
pThis->__subdeviceGetMemInterMapParams__ = &__nvoc_thunk_RmResource_subdeviceGetMemInterMapParams;
|
||||
|
||||
pThis->__subdeviceGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_subdeviceGetMemoryMappingDescriptor;
|
||||
|
||||
pThis->__subdeviceUnregisterEvent__ = &__nvoc_thunk_Notifier_subdeviceUnregisterEvent;
|
||||
|
||||
pThis->__subdeviceControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_subdeviceControlSerialization_Prologue;
|
||||
|
|
|
@ -218,6 +218,8 @@ struct Subdevice {
|
|||
NV_STATUS (*__subdeviceCtrlCmdNvlinkSetL1Threshold__)(struct Subdevice *, NV2080_CTRL_NVLINK_SET_L1_THRESHOLD_PARAMS *);
|
||||
NV_STATUS (*__subdeviceCtrlCmdNvlinkDirectConnectCheck__)(struct Subdevice *, NV2080_CTRL_NVLINK_DIRECT_CONNECT_CHECK_PARAMS *);
|
||||
NV_STATUS (*__subdeviceCtrlCmdNvlinkGetL1Threshold__)(struct Subdevice *, NV2080_CTRL_NVLINK_GET_L1_THRESHOLD_PARAMS *);
|
||||
NV_STATUS (*__subdeviceCtrlCmdNvlinkGetPortEvents__)(struct Subdevice *, NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS *);
|
||||
NV_STATUS (*__subdeviceCtrlCmdNvlinkCycleLink__)(struct Subdevice *, NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS *);
|
||||
NV_STATUS (*__subdeviceCtrlCmdIsNvlinkReducedConfig__)(struct Subdevice *, NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS *);
|
||||
NV_STATUS (*__subdeviceCtrlCmdI2cReadBuffer__)(struct Subdevice *, NV2080_CTRL_I2C_READ_BUFFER_PARAMS *);
|
||||
NV_STATUS (*__subdeviceCtrlCmdI2cWriteBuffer__)(struct Subdevice *, NV2080_CTRL_I2C_WRITE_BUFFER_PARAMS *);
|
||||
|
@ -812,6 +814,8 @@ NV_STATUS __nvoc_objCreate_Subdevice(Subdevice**, Dynamic*, NvU32, struct CALL_C
|
|||
#define subdeviceCtrlCmdNvlinkSetL1Threshold(pSubdevice, pParams) subdeviceCtrlCmdNvlinkSetL1Threshold_DISPATCH(pSubdevice, pParams)
|
||||
#define subdeviceCtrlCmdNvlinkDirectConnectCheck(pSubdevice, pParams) subdeviceCtrlCmdNvlinkDirectConnectCheck_DISPATCH(pSubdevice, pParams)
|
||||
#define subdeviceCtrlCmdNvlinkGetL1Threshold(pSubdevice, pParams) subdeviceCtrlCmdNvlinkGetL1Threshold_DISPATCH(pSubdevice, pParams)
|
||||
#define subdeviceCtrlCmdNvlinkGetPortEvents(pSubdevice, pParams) subdeviceCtrlCmdNvlinkGetPortEvents_DISPATCH(pSubdevice, pParams)
|
||||
#define subdeviceCtrlCmdNvlinkCycleLink(pSubdevice, pParams) subdeviceCtrlCmdNvlinkCycleLink_DISPATCH(pSubdevice, pParams)
|
||||
#define subdeviceCtrlCmdIsNvlinkReducedConfig(pSubdevice, pParams) subdeviceCtrlCmdIsNvlinkReducedConfig_DISPATCH(pSubdevice, pParams)
|
||||
#define subdeviceCtrlCmdI2cReadBuffer(pSubdevice, pI2cParams) subdeviceCtrlCmdI2cReadBuffer_DISPATCH(pSubdevice, pI2cParams)
|
||||
#define subdeviceCtrlCmdI2cWriteBuffer(pSubdevice, pI2cParams) subdeviceCtrlCmdI2cWriteBuffer_DISPATCH(pSubdevice, pI2cParams)
|
||||
|
@ -1864,6 +1868,18 @@ static inline NV_STATUS subdeviceCtrlCmdNvlinkGetL1Threshold_DISPATCH(struct Sub
|
|||
return pSubdevice->__subdeviceCtrlCmdNvlinkGetL1Threshold__(pSubdevice, pParams);
|
||||
}
|
||||
|
||||
NV_STATUS subdeviceCtrlCmdNvlinkGetPortEvents_IMPL(struct Subdevice *pSubdevice, NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS *pParams);
|
||||
|
||||
static inline NV_STATUS subdeviceCtrlCmdNvlinkGetPortEvents_DISPATCH(struct Subdevice *pSubdevice, NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS *pParams) {
|
||||
return pSubdevice->__subdeviceCtrlCmdNvlinkGetPortEvents__(pSubdevice, pParams);
|
||||
}
|
||||
|
||||
NV_STATUS subdeviceCtrlCmdNvlinkCycleLink_IMPL(struct Subdevice *pSubdevice, NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS *pParams);
|
||||
|
||||
static inline NV_STATUS subdeviceCtrlCmdNvlinkCycleLink_DISPATCH(struct Subdevice *pSubdevice, NV2080_CTRL_NVLINK_CYCLE_LINK_PARAMS *pParams) {
|
||||
return pSubdevice->__subdeviceCtrlCmdNvlinkCycleLink__(pSubdevice, pParams);
|
||||
}
|
||||
|
||||
NV_STATUS subdeviceCtrlCmdIsNvlinkReducedConfig_IMPL(struct Subdevice *pSubdevice, NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS *pParams);
|
||||
|
||||
static inline NV_STATUS subdeviceCtrlCmdIsNvlinkReducedConfig_DISPATCH(struct Subdevice *pSubdevice, NV2080_CTRL_NVLINK_IS_REDUCED_CONFIG_PARAMS *pParams) {
|
||||
|
|
|
@ -53,6 +53,7 @@ static NvBool _knvlinkUpdateSwitchLinkMasks(OBJGPU *, KernelNvlink *, NvU32);
|
|||
static NvBool _knvlinkUpdateSwitchLinkMasksGpuDegraded(OBJGPU *, KernelNvlink *);
|
||||
static void _knvlinkUpdatePeerConfigs(OBJGPU *, KernelNvlink *);
|
||||
static void _knvlinkPrintTopologySummary(OBJGPU *, KernelNvlink *);
|
||||
static NvU32 _knvlinkGetNumPortEvents(OBJGPU *pGpu, KernelNvlink *pKernelNvlink);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -82,6 +83,7 @@ knvlinkCoreGetRemoteDeviceInfo_IMPL
|
|||
NvBool bNvswitchProxyPresent = NV_FALSE;
|
||||
NvBool bUpdateConnStatus = NV_FALSE;
|
||||
NvBool bCheckDegradedMode = NV_FALSE;
|
||||
NvBool bForceDiscovery = NV_FALSE;
|
||||
nvlink_conn_info conn_info = {0};
|
||||
NvU32 linkId;
|
||||
NvU32 numActiveLinksPerIoctrl = 0;
|
||||
|
@ -151,6 +153,12 @@ knvlinkCoreGetRemoteDeviceInfo_IMPL
|
|||
{
|
||||
if (gpuFabricProbeIsSupported(pGpu))
|
||||
{
|
||||
NvU32 numPortEvents = _knvlinkGetNumPortEvents(pGpu, pKernelNvlink);
|
||||
if (pKernelNvlink->numPortEvents < numPortEvents)
|
||||
{
|
||||
bForceDiscovery = NV_TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// If FM doesn't talk to NVLink driver using control calls
|
||||
// (i.e. uses NVLink inband comm instread) such as
|
||||
|
@ -158,7 +166,13 @@ knvlinkCoreGetRemoteDeviceInfo_IMPL
|
|||
// discover remote information explicitly.
|
||||
//
|
||||
nvlink_lib_discover_and_get_remote_conn_info(
|
||||
pKernelNvlink->nvlinkLinks[linkId].core_link, &conn_info, flags);
|
||||
pKernelNvlink->nvlinkLinks[linkId].core_link, &conn_info,
|
||||
flags, bForceDiscovery);
|
||||
|
||||
if (bForceDiscovery)
|
||||
{
|
||||
pKernelNvlink->numPortEvents = numPortEvents;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -205,7 +219,7 @@ knvlinkCoreGetRemoteDeviceInfo_IMPL
|
|||
}
|
||||
|
||||
nvlink_lib_discover_and_get_remote_conn_info(
|
||||
pKernelNvlink->nvlinkLinks[linkId].core_link, &conn_info, flags);
|
||||
pKernelNvlink->nvlinkLinks[linkId].core_link, &conn_info, flags, NV_FALSE);
|
||||
}
|
||||
|
||||
// RPC into GSP-RM to update the link connected status only if its required
|
||||
|
@ -1344,7 +1358,7 @@ knvlinkFloorSweep_IMPL
|
|||
FOR_EACH_INDEX_IN_MASK(32, linkId, pKernelNvlink->enabledLinks)
|
||||
{
|
||||
nvlink_lib_discover_and_get_remote_conn_info(
|
||||
pKernelNvlink->nvlinkLinks[linkId].core_link, &conn_info, 0);
|
||||
pKernelNvlink->nvlinkLinks[linkId].core_link, &conn_info, 0, NV_FALSE);
|
||||
}
|
||||
FOR_EACH_INDEX_IN_MASK_END;
|
||||
|
||||
|
@ -2485,4 +2499,30 @@ _knvlinkPrintTopologySummary
|
|||
#endif
|
||||
}
|
||||
|
||||
static NvU32
|
||||
_knvlinkGetNumPortEvents
|
||||
(
|
||||
OBJGPU *pGpu,
|
||||
KernelNvlink *pKernelNvlink
|
||||
)
|
||||
{
|
||||
NV_STATUS status;
|
||||
RM_API *pRmApi = GPU_GET_PHYSICAL_RMAPI(pGpu);
|
||||
NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS params = {0};
|
||||
|
||||
status = pRmApi->Control(pRmApi,
|
||||
pGpu->hInternalClient,
|
||||
pGpu->hInternalSubdevice,
|
||||
NV2080_CTRL_CMD_NVLINK_GET_PORT_EVENTS,
|
||||
¶ms,
|
||||
sizeof(NV2080_CTRL_NVLINK_GET_PORT_EVENTS_PARAMS));
|
||||
if (status != NV_OK)
|
||||
{
|
||||
// If this call fails, force discovery in knvlinkCoreGetRemoteDeviceInfo
|
||||
return 0;
|
||||
}
|
||||
|
||||
return params.portEventCount;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
NVIDIA_VERSION = 535.183.01
|
||||
NVIDIA_VERSION = 535.183.06
|
||||
|
||||
# This file.
|
||||
VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST))
|
||||
|
|
Loading…
Reference in New Issue