Skip to content

Commit 315fd96

Browse files
committed
560.31.02
1 parent 448d5cc commit 315fd96

40 files changed

+45696
-45549
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# NVIDIA Linux Open GPU Kernel Module Source
22

33
This is the source release of the NVIDIA Linux open GPU kernel modules,
4-
version 560.28.03.
4+
version 560.31.02.
55

66

77
## How to Build
@@ -17,7 +17,7 @@ as root:
1717

1818
Note that the kernel modules built here must be used with GSP
1919
firmware and user-space NVIDIA GPU driver components from a corresponding
20-
560.28.03 driver release. This can be achieved by installing
20+
560.31.02 driver release. This can be achieved by installing
2121
the NVIDIA GPU driver from the .run file using the `--no-kernel-modules`
2222
option. E.g.,
2323

@@ -185,7 +185,7 @@ table below).
185185
For details on feature support and limitations, see the NVIDIA GPU driver
186186
end user README here:
187187

188-
https://us.download.nvidia.com/XFree86/Linux-x86_64/560.28.03/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/560.31.02/README/kernel_open.html
189189

190190
For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
191191
Package for more details.
@@ -831,10 +831,12 @@ Subsystem Device ID.
831831
| NVIDIA GeForce RTX 2050 | 25AD |
832832
| NVIDIA RTX A1000 | 25B0 1028 1878 |
833833
| NVIDIA RTX A1000 | 25B0 103C 1878 |
834+
| NVIDIA RTX A1000 | 25B0 103C 8D96 |
834835
| NVIDIA RTX A1000 | 25B0 10DE 1878 |
835836
| NVIDIA RTX A1000 | 25B0 17AA 1878 |
836837
| NVIDIA RTX A400 | 25B2 1028 1879 |
837838
| NVIDIA RTX A400 | 25B2 103C 1879 |
839+
| NVIDIA RTX A400 | 25B2 103C 8D95 |
838840
| NVIDIA RTX A400 | 25B2 10DE 1879 |
839841
| NVIDIA RTX A400 | 25B2 17AA 1879 |
840842
| NVIDIA A16 | 25B6 10DE 14A9 |

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
7272
EXTRA_CFLAGS += -I$(src)
7373
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
7474
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
75-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"560.28.03\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"560.31.02\"
7676

7777
ifneq ($(SYSSRCHOST1X),)
7878
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)

kernel-open/common/inc/nv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1047,7 +1047,7 @@ NV_STATUS NV_API_CALL nv_vgpu_get_bar_info(nvidia_stack_t *, nv_state_t *, con
10471047
NvU64 *, NvU64 *, NvU32 *, NvBool *, NvU8 *);
10481048
NV_STATUS NV_API_CALL nv_vgpu_get_hbm_info(nvidia_stack_t *, nv_state_t *, const NvU8 *, NvU64 *, NvU64 *);
10491049
NV_STATUS NV_API_CALL nv_vgpu_process_vf_info(nvidia_stack_t *, nv_state_t *, NvU8, NvU32, NvU8, NvU8, NvU8, NvBool, void *);
1050-
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *);
1050+
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *, NvU32, NvBool *);
10511051
NV_STATUS NV_API_CALL nv_gpu_unbind_event(nvidia_stack_t *, NvU32, NvBool *);
10521052

10531053
NV_STATUS NV_API_CALL nv_get_usermap_access_params(nv_state_t*, nv_usermap_access_params_t*);

src/common/inc/nvBldVer.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,25 @@
3636
// and then checked back in. You cannot make changes to these sections without
3737
// corresponding changes to the buildmeister script
3838
#ifndef NV_BUILD_BRANCH
39-
#define NV_BUILD_BRANCH r560_70
39+
#define NV_BUILD_BRANCH r560_78
4040
#endif
4141
#ifndef NV_PUBLIC_BRANCH
42-
#define NV_PUBLIC_BRANCH r560_70
42+
#define NV_PUBLIC_BRANCH r560_78
4343
#endif
4444

4545
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
46-
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r560/r560_70-107"
47-
#define NV_BUILD_CHANGELIST_NUM (34587299)
46+
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r560/r560_78-120"
47+
#define NV_BUILD_CHANGELIST_NUM (34643855)
4848
#define NV_BUILD_TYPE "Official"
49-
#define NV_BUILD_NAME "rel/gpu_drv/r560/r560_70-107"
50-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34587299)
49+
#define NV_BUILD_NAME "rel/gpu_drv/r560/r560_78-120"
50+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34643855)
5151

5252
#else /* Windows builds */
53-
#define NV_BUILD_BRANCH_VERSION "r560_70-2"
54-
#define NV_BUILD_CHANGELIST_NUM (34567210)
53+
#define NV_BUILD_BRANCH_VERSION "r560_78-2"
54+
#define NV_BUILD_CHANGELIST_NUM (34643068)
5555
#define NV_BUILD_TYPE "Official"
56-
#define NV_BUILD_NAME "560.73"
57-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34567210)
56+
#define NV_BUILD_NAME "560.81"
57+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34643068)
5858
#define NV_BUILD_BRANCH_BASE_VERSION R560
5959
#endif
6060
// End buildmeister python edited section

src/common/inc/nvUnixVersion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \
55
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1)
66

7-
#define NV_VERSION_STRING "560.28.03"
7+
#define NV_VERSION_STRING "560.31.02"
88

99
#else
1010

src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000vgpu.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -155,24 +155,24 @@ typedef struct NV0000_CTRL_VGPU_DELETE_DEVICE_PARAMS {
155155
} NV0000_CTRL_VGPU_DELETE_DEVICE_PARAMS;
156156

157157
/*
158-
* NV0000_CTRL_CMD_VGPU_VFIO_UNREGISTER_STATUS
158+
* NV0000_CTRL_CMD_VGPU_VFIO_NOTIFY_RM_STATUS
159159
*
160-
* This command informs RM the status vgpu-vfio unregister for a GPU.
160+
* This command informs RM the status of vgpu-vfio GPU operations such as probe and unregister.
161161
*
162162
* returnStatus [IN]
163-
* This parameter provides the status vgpu-vfio unregister operation.
163+
* This parameter provides the status of vgpu-vfio GPU operation.
164164
*
165165
* gpuPciId [IN]
166166
* This parameter provides the gpu id of the GPU
167167
*/
168168

169-
#define NV0000_CTRL_CMD_VGPU_VFIO_UNREGISTER_STATUS (0xc05) /* finn: Evaluated from "(FINN_NV01_ROOT_VGPU_INTERFACE_ID << 8) | NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS_MESSAGE_ID" */
169+
#define NV0000_CTRL_CMD_VGPU_VFIO_NOTIFY_RM_STATUS (0xc05) /* finn: Evaluated from "(FINN_NV01_ROOT_VGPU_INTERFACE_ID << 8) | NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS_MESSAGE_ID" */
170170

171-
#define NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS_MESSAGE_ID (0x5U)
171+
#define NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS_MESSAGE_ID (0x5U)
172172

173-
typedef struct NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS {
173+
typedef struct NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS {
174174
NvU32 returnStatus;
175175
NvU32 gpuId;
176-
} NV0000_CTRL_VGPU_VFIO_UNREGISTER_STATUS_PARAMS;
176+
} NV0000_CTRL_VGPU_VFIO_NOTIFY_RM_STATUS_PARAMS;
177177

178178
/* _ctrl0000vgpu_h_ */

src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvlink.h

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3638,18 +3638,6 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_MTSDE_PARAMS {
36383638
NvU8 slot_index;
36393639
} NV2080_CTRL_NVLINK_PRM_ACCESS_MTSDE_PARAMS;
36403640

3641-
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_MGCR (0x20803060U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS_MESSAGE_ID" */
3642-
3643-
#define NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS_MESSAGE_ID (0x60U)
3644-
3645-
typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS {
3646-
NvBool bWrite;
3647-
NV2080_CTRL_NVLINK_PRM_DATA prm;
3648-
NvU8 segment;
3649-
NvU32 GPIO_set;
3650-
NvU32 GPIO_clear;
3651-
} NV2080_CTRL_NVLINK_PRM_ACCESS_MGCR_PARAMS;
3652-
36533641
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_MTCAP (0x20803061U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_MTCAP_PARAMS_MESSAGE_ID" */
36543642

36553643
#define NV2080_CTRL_NVLINK_PRM_ACCESS_MTCAP_PARAMS_MESSAGE_ID (0x61U)
@@ -3739,25 +3727,6 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_PDDR_PARAMS {
37393727
NvU8 module_info_ext;
37403728
} NV2080_CTRL_NVLINK_PRM_ACCESS_PDDR_PARAMS;
37413729

3742-
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_MTMP (0x20803067U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS_MESSAGE_ID" */
3743-
3744-
#define NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS_MESSAGE_ID (0x67U)
3745-
3746-
typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS {
3747-
NvBool bWrite;
3748-
NV2080_CTRL_NVLINK_PRM_DATA prm;
3749-
NvU16 sensor_index;
3750-
NvU8 slot_index;
3751-
NvU8 sdme;
3752-
NvU8 weme;
3753-
NvU8 mtr;
3754-
NvU8 mte;
3755-
NvU16 temperature_threshold_hi;
3756-
NvU8 sdee;
3757-
NvU8 tee;
3758-
NvU16 temperature_threshold_lo;
3759-
} NV2080_CTRL_NVLINK_PRM_ACCESS_MTMP_PARAMS;
3760-
37613730
#define NV2080_CTRL_CMD_NVLINK_PRM_ACCESS_PPTT (0x20803068U) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_NVLINK_INTERFACE_ID << 8) | NV2080_CTRL_NVLINK_PRM_ACCESS_PPTT_PARAMS_MESSAGE_ID" */
37623731

37633732
#define NV2080_CTRL_NVLINK_PRM_ACCESS_PPTT_PARAMS_MESSAGE_ID (0x68U)

src/common/sdk/nvidia/inc/nvfixedtypes.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,11 @@ typedef NvSFXP24_8 NvTemp;
372372
*/
373373
#define NV_TYPES_NVSFXP11_5_TO_NV_TEMP(x) ((NvTemp)(x) << 3)
374374

375+
/*!
376+
* Macro to convert NvTemp to SFXP 11.5.
377+
*/
378+
#define NV_TYPES_NV_TEMP_TO_NVSFXP11_5(x) ((NvSFXP11_5)(x) >> 3)
379+
375380
/*!
376381
* Macro to convert UFXP 5.3 to NvTemp.
377382
*/

src/nvidia/arch/nvalloc/unix/include/nv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1047,7 +1047,7 @@ NV_STATUS NV_API_CALL nv_vgpu_get_bar_info(nvidia_stack_t *, nv_state_t *, con
10471047
NvU64 *, NvU64 *, NvU32 *, NvBool *, NvU8 *);
10481048
NV_STATUS NV_API_CALL nv_vgpu_get_hbm_info(nvidia_stack_t *, nv_state_t *, const NvU8 *, NvU64 *, NvU64 *);
10491049
NV_STATUS NV_API_CALL nv_vgpu_process_vf_info(nvidia_stack_t *, nv_state_t *, NvU8, NvU32, NvU8, NvU8, NvU8, NvBool, void *);
1050-
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *);
1050+
NV_STATUS NV_API_CALL nv_gpu_bind_event(nvidia_stack_t *, NvU32, NvBool *);
10511051
NV_STATUS NV_API_CALL nv_gpu_unbind_event(nvidia_stack_t *, NvU32, NvBool *);
10521052

10531053
NV_STATUS NV_API_CALL nv_get_usermap_access_params(nv_state_t*, nv_usermap_access_params_t*);

src/nvidia/arch/nvalloc/unix/src/os-hypervisor.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,9 @@ NV_STATUS NV_API_CALL nv_gpu_unbind_event
799799
}
800800

801801
NV_STATUS NV_API_CALL nv_gpu_bind_event(
802-
nvidia_stack_t *sp
802+
nvidia_stack_t *sp,
803+
NvU32 gpuId,
804+
NvBool *isEventNotified
803805
)
804806
{
805807
THREAD_STATE_NODE threadState;
@@ -812,7 +814,7 @@ NV_STATUS NV_API_CALL nv_gpu_bind_event(
812814
// LOCK: acquire API lock
813815
if ((rmStatus = rmapiLockAcquire(API_LOCK_FLAGS_NONE, RM_LOCK_MODULES_HYPERVISOR)) == NV_OK)
814816
{
815-
CliAddSystemEvent(NV0000_NOTIFIERS_GPU_BIND_EVENT, 0, NULL);
817+
CliAddSystemEvent(NV0000_NOTIFIERS_GPU_BIND_EVENT, gpuId, isEventNotified);
816818

817819
// UNLOCK: release API lock
818820
rmapiLockRelease();

src/nvidia/arch/nvalloc/unix/src/osapi.c

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1519,24 +1519,6 @@ static NV_STATUS RmP2PDmaMapPagesCoherent(
15191519
return status;
15201520
}
15211521

1522-
static void
1523-
RmHandleNvpcfEvents(
1524-
nv_state_t *pNv
1525-
)
1526-
{
1527-
OBJGPU *pGpu = NV_GET_NV_PRIV_PGPU(pNv);
1528-
THREAD_STATE_NODE threadState;
1529-
1530-
if (RmUnixRmApiPrologue(pNv, &threadState, RM_LOCK_MODULES_ACPI) == NULL)
1531-
{
1532-
return;
1533-
}
1534-
1535-
gpuNotifySubDeviceEvent(pGpu, NV2080_NOTIFIERS_NVPCF_EVENTS, NULL, 0, 0, 0);
1536-
1537-
RmUnixRmApiEpilogue(pNv, &threadState);
1538-
}
1539-
15401522
/*
15411523
* ---------------------------------------------------------------------------
15421524
*
@@ -4276,7 +4258,6 @@ void NV_API_CALL rm_power_source_change_event(
42764258
THREAD_STATE_NODE threadState;
42774259
void *fp;
42784260
nv_state_t *nv;
4279-
OBJGPU *pGpu = gpumgrGetGpu(0);
42804261
NV_STATUS rmStatus = NV_OK;
42814262

42824263
NV_ENTER_RM_RUNTIME(sp,fp);
@@ -4285,6 +4266,7 @@ void NV_API_CALL rm_power_source_change_event(
42854266
// LOCK: acquire API lock
42864267
if ((rmStatus = rmapiLockAcquire(API_LOCK_FLAGS_NONE, RM_LOCK_MODULES_EVENT)) == NV_OK)
42874268
{
4269+
OBJGPU *pGpu = gpumgrGetGpu(0);
42884270
if (pGpu != NULL)
42894271
{
42904272
nv = NV_GET_NV_STATE(pGpu);
@@ -5902,16 +5884,32 @@ void NV_API_CALL rm_acpi_nvpcf_notify(
59025884
nvidia_stack_t *sp
59035885
)
59045886
{
5905-
void *fp;
5906-
OBJGPU *pGpu = gpumgrGetGpu(0);
5887+
void *fp;
5888+
THREAD_STATE_NODE threadState;
5889+
NV_STATUS rmStatus = NV_OK;
59075890

59085891
NV_ENTER_RM_RUNTIME(sp,fp);
5909-
5910-
if (pGpu != NULL)
5892+
threadStateInit(&threadState, THREAD_STATE_FLAGS_NONE);
5893+
5894+
// LOCK: acquire API lock
5895+
if ((rmStatus = rmapiLockAcquire(API_LOCK_FLAGS_NONE,
5896+
RM_LOCK_MODULES_EVENT)) == NV_OK)
59115897
{
5912-
nv_state_t *nv = NV_GET_NV_STATE(pGpu);
5913-
RmHandleNvpcfEvents(nv);
5898+
OBJGPU *pGpu = gpumgrGetGpu(0);
5899+
if (pGpu != NULL)
5900+
{
5901+
nv_state_t *nv = NV_GET_NV_STATE(pGpu);
5902+
if ((rmStatus = os_ref_dynamic_power(nv, NV_DYNAMIC_PM_FINE)) ==
5903+
NV_OK)
5904+
{
5905+
gpuNotifySubDeviceEvent(pGpu, NV2080_NOTIFIERS_NVPCF_EVENTS,
5906+
NULL, 0, 0, 0);
5907+
}
5908+
os_unref_dynamic_power(nv, NV_DYNAMIC_PM_FINE);
5909+
}
5910+
rmapiLockRelease();
59145911
}
59155912

5913+
threadStateFree(&threadState, THREAD_STATE_FLAGS_NONE);
59165914
NV_EXIT_RM_RUNTIME(sp,fp);
59175915
}

0 commit comments

Comments
 (0)