Skip to content

Commit b04fce9

Browse files
committed
595.44.05
1 parent 667aaff commit b04fce9

File tree

17 files changed

+199
-23
lines changed

17 files changed

+199
-23
lines changed

README.md

Lines changed: 8 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 595.44.03.
4+
version 595.44.05.
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-
595.44.03 driver release. This can be achieved by installing
20+
595.44.05 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/595.44.03/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/595.44.05/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.
@@ -946,6 +946,7 @@ Subsystem Device ID.
946946
| NVIDIA B200 | 2901 10DE 1999 |
947947
| NVIDIA B200 | 2901 10DE 199B |
948948
| NVIDIA B200 | 2901 10DE 20DA |
949+
| NVIDIA B200 | 2909 10DE 22EB |
949950
| NVIDIA GB200 | 2941 10DE 2046 |
950951
| NVIDIA GB200 | 2941 10DE 20CA |
951952
| NVIDIA GB200 | 2941 10DE 20D5 |
@@ -974,6 +975,8 @@ Subsystem Device ID.
974975
| NVIDIA RTX PRO 6000 Blackwell Server Edition | 2BB5 10DE 204E |
975976
| NVIDIA RTX PRO 6000 Blackwell Server Edition | 2BB5 10DE 220B |
976977
| NVIDIA RTX 6000D | 2BB9 10DE 2091 |
978+
| NVIDIA RTX 6000D | 2BB9 10DE 2092 |
979+
| NVIDIA RTX 6000D | 2BB9 10DE 2279 |
977980
| NVIDIA GeForce RTX 5080 | 2C02 |
978981
| NVIDIA GeForce RTX 5070 Ti | 2C05 |
979982
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C18 |
@@ -992,6 +995,7 @@ Subsystem Device ID.
992995
| NVIDIA RTX PRO 4000 Blackwell | 2C34 17AA 2052 |
993996
| NVIDIA RTX PRO 5000 Blackwell Generation Laptop GPU | 2C38 |
994997
| NVIDIA RTX PRO 4000 Blackwell Generation Laptop GPU | 2C39 |
998+
| NVIDIA RTX PRO 4500 Blackwell Server Edition | 2C3A 10DE 21F4 |
995999
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C58 |
9961000
| NVIDIA GeForce RTX 5080 Laptop GPU | 2C59 |
9971001
| NVIDIA RTX PRO 5000 Blackwell Embedded GPU | 2C77 |
@@ -1021,3 +1025,4 @@ Subsystem Device ID.
10211025
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F58 |
10221026
| NVIDIA B300 SXM6 AC | 3182 10DE 20E6 |
10231027
| NVIDIA GB300 | 31C2 10DE 21F1 |
1028+
| NVIDIA GB300 | 31C3 10DE 22F8 |

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ ccflags-y += -I$(src)/common/inc
7979
ccflags-y += -I$(src)
8080
ccflags-y += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
8181
ccflags-y += -D__KERNEL__ -DMODULE -DNVRM
82-
ccflags-y += -DNV_VERSION_STRING=\"595.44.03\"
82+
ccflags-y += -DNV_VERSION_STRING=\"595.44.05\"
8383

8484
# Include and link Tegra out-of-tree modules.
8585
ifneq ($(wildcard /usr/src/nvidia/nvidia-public),)

kernel-open/nvidia-uvm/uvm_gpu.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3222,10 +3222,25 @@ uvm_gpu_phys_address_t uvm_gpu_peer_phys_address(uvm_gpu_t *owning_gpu, NvU64 ad
32223222
uvm_gpu_address_t uvm_gpu_peer_copy_address(uvm_gpu_t *owning_gpu, NvU64 address, uvm_gpu_t *accessing_gpu)
32233223
{
32243224
uvm_gpu_identity_mapping_t *gpu_peer_mapping;
3225+
const bool mig_peers_use_phys = uvm_gpus_are_smc_peers(owning_gpu, accessing_gpu) &&
3226+
accessing_gpu->parent->ce_phys_vidmem_write_supported;
32253227

3226-
if (accessing_gpu->parent->peer_copy_mode == UVM_GPU_PEER_COPY_MODE_PHYSICAL)
3228+
// MIG peers do not create peer vidmem mappings like other peers. They do
3229+
// create their vidmem identity mappings to cover all possible physical
3230+
// addresses, even those of other MIG peers.
3231+
// Use vidmem this identity mapping if CEs need to use virtual addresses.
3232+
if (uvm_gpus_are_smc_peers(owning_gpu, accessing_gpu) && !mig_peers_use_phys) {
3233+
uvm_gpu_phys_address_t phys_address = uvm_gpu_peer_phys_address(owning_gpu, address, accessing_gpu);
3234+
return uvm_gpu_address_virtual_from_vidmem_phys(accessing_gpu, phys_address.address);
3235+
}
3236+
3237+
// Use physical addresses for MIGs peers if CE allows it. Irespective of
3238+
// the peer copy mode.
3239+
if (accessing_gpu->parent->peer_copy_mode == UVM_GPU_PEER_COPY_MODE_PHYSICAL || mig_peers_use_phys)
32273240
return uvm_gpu_address_from_phys(uvm_gpu_peer_phys_address(owning_gpu, address, accessing_gpu));
32283241

3242+
// MIG peers do not create peer GPU mappings so it should never reach here.
3243+
UVM_ASSERT(!uvm_gpus_are_smc_peers(owning_gpu, accessing_gpu));
32293244
UVM_ASSERT(accessing_gpu->parent->peer_copy_mode == UVM_GPU_PEER_COPY_MODE_VIRTUAL);
32303245
gpu_peer_mapping = uvm_gpu_get_peer_mapping(accessing_gpu, owning_gpu->id);
32313246

src/common/displayport/inc/dp_connectorimpl2x.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
* SPDX-FileCopyrightText: Copyright (c) 2023-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
33
* SPDX-License-Identifier: MIT
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -110,6 +110,7 @@ namespace DisplayPort
110110
bool bStuffDummySymbolsFor128b132b;
111111
bool bStuffDummySymbolsFor8b10b;
112112
bool bDisableWatermarkCaching;
113+
bool bEnableClearMSAWhenNotUsed;
113114

114115
// Do not enable downspread while link training.
115116
bool bDisableDownspread;

src/common/displayport/inc/dp_regkeydatabase.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@
118118

119119
#define NV_DP_REGKEY_DISABLE_NATIVE_DISPLAYID2X_SUPPORT "DISABLE_NATIVE_DISPLAYID2X_SUPPORT"
120120
#define NV_DP_REGKEY_FORCE_NLPIGNORE_DDS "DP_FORCE_NLPIGNORE_DDS"
121+
122+
#define NV_DP_REGKEY_ENABLE_CLEAR_MSA_WHEN_NOT_USED "DP_ENABLE_CLEAR_MSA_WHEN_NOT_USED"
123+
121124
//
122125
// Data Base used to store all the regkey values.
123126
// The actual data base is declared statically in dp_evoadapter.cpp.
@@ -169,6 +172,7 @@ struct DP_REGKEY_DATABASE
169172
bool bDisableNativeDisplayId2xSupport;
170173
bool bUseMaxDSCCompressionMST;
171174
bool bIgnoreUnplugUnlessRequested;
175+
bool bEnableClearMSAWhenNotUsed;
172176
};
173177

174178
extern struct DP_REGKEY_DATABASE dpRegkeyDatabase;

src/common/displayport/src/dp_connectorimpl.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7342,7 +7342,7 @@ void ConnectorImpl::notifyLongPulse(bool statusConnected)
73427342
return;
73437343
}
73447344

7345-
if (existingDev && (existingDev->isPreviouslyFakedMuxDevice() || bIgnoreUnplugUnlessRequested) && !existingDev->isMarkedForDeletion())
7345+
if (existingDev && existingDev->isPreviouslyFakedMuxDevice() && !existingDev->isMarkedForDeletion())
73467346
{
73477347
DP_PRINTF(DP_NOTICE, "NotifyLongPulse ignored as there is a previously faked device but it is not marked for deletion");
73487348
if (!statusConnected)
@@ -7352,6 +7352,12 @@ void ConnectorImpl::notifyLongPulse(bool statusConnected)
73527352
}
73537353
return;
73547354
}
7355+
7356+
if (existingDev && bIgnoreUnplugUnlessRequested && !statusConnected && !existingDev->isMarkedForDeletion())
7357+
{
7358+
sink->notifyDetectComplete();
7359+
return;
7360+
}
73557361
}
73567362

73577363
if (previousPlugged && statusConnected)

src/common/displayport/src/dp_connectorimpl2x.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ void ConnectorImpl2x::applyDP2xRegkeyOverrides()
114114
this->maxLinkRateFromRegkey = dpRegkeyDatabase.applyMaxLinkRateOverrides;
115115
bSupportInternalUhbrOnFpga = dpRegkeyDatabase.supportInternalUhbrOnFpga;
116116
this->bDisableWatermarkCaching = dpRegkeyDatabase.bDisableWatermarkCaching;
117+
this->bEnableClearMSAWhenNotUsed = dpRegkeyDatabase.bEnableClearMSAWhenNotUsed;
117118
if (dpRegkeyDatabase.bIgnoreCableIdCaps)
118119
{
119120
hal->setIgnoreCableIdCaps(true);
@@ -935,6 +936,18 @@ bool ConnectorImpl2x::notifyAttachBegin(Group *target, const DpModesetParams &mo
935936
main->setDpStereoMSAParameters(!enableInbandStereoSignaling, modesetParams.msaparams);
936937
main->setDpMSAParameters(!enableInbandStereoSignaling, modesetParams.msaparams);
937938
}
939+
else
940+
{
941+
// Clear MSA parameters for MST topology
942+
if (this->bEnableClearMSAWhenNotUsed)
943+
{
944+
NV0073_CTRL_CMD_DP_SET_MSA_PROPERTIES_PARAMS msaParams = modesetParams.msaparams;
945+
msaParams.bEnableMSA = false;
946+
947+
main->setDpStereoMSAParameters(false, msaParams);
948+
main->setDpMSAParameters(false, msaParams);
949+
}
950+
}
938951

939952
NV_DPTRACE_INFO(NOTIFY_ATTACH_BEGIN_STATUS, bLinkTrainingStatus);
940953

src/common/displayport/src/dp_evoadapter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ const struct
116116
{NV_DP_REGKEY_ENABLE_128b132b_DSC_LNK_CFG_REDUCTION, &dpRegkeyDatabase.bEnable128b132bDSCLnkCfgReduction, DP_REG_VAL_BOOL},
117117
{NV_DP_REGKEY_DISABLE_NATIVE_DISPLAYID2X_SUPPORT, &dpRegkeyDatabase.bDisableNativeDisplayId2xSupport, DP_REG_VAL_BOOL},
118118
{NV_DP_REGKEY_USE_MAX_DSC_COMPRESSION_MST, &dpRegkeyDatabase.bUseMaxDSCCompressionMST, DP_REG_VAL_BOOL},
119-
{NV_DP_REGKEY_FORCE_NLPIGNORE_DDS, &dpRegkeyDatabase.bIgnoreUnplugUnlessRequested, DP_REG_VAL_BOOL}
119+
{NV_DP_REGKEY_FORCE_NLPIGNORE_DDS, &dpRegkeyDatabase.bIgnoreUnplugUnlessRequested, DP_REG_VAL_BOOL},
120+
{NV_DP_REGKEY_ENABLE_CLEAR_MSA_WHEN_NOT_USED, &dpRegkeyDatabase.bEnableClearMSAWhenNotUsed, DP_REG_VAL_BOOL}
120121
};
121122

122123
EvoMainLink::EvoMainLink(EvoInterface * provider, Timer * timer) :

src/common/inc/nvBldVer.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,18 @@
4343
#endif
4444

4545
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
46-
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r595/VK595_35-124"
47-
#define NV_BUILD_CHANGELIST_NUM (37628192)
46+
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r595/VK595_35-126"
47+
#define NV_BUILD_CHANGELIST_NUM (37724599)
4848
#define NV_BUILD_TYPE "Official"
49-
#define NV_BUILD_NAME "rel/gpu_drv/r595/VK595_35-124"
50-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37628192)
49+
#define NV_BUILD_NAME "rel/gpu_drv/r595/VK595_35-126"
50+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37724599)
5151

5252
#else /* Windows builds */
53-
#define NV_BUILD_BRANCH_VERSION "VK595_35-7"
54-
#define NV_BUILD_CHANGELIST_NUM (37628192)
53+
#define NV_BUILD_BRANCH_VERSION "VK595_35-9"
54+
#define NV_BUILD_CHANGELIST_NUM (37724599)
5555
#define NV_BUILD_TYPE "Official"
56-
#define NV_BUILD_NAME "595.92"
57-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37628192)
56+
#define NV_BUILD_NAME "596.10"
57+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (37724599)
5858
#define NV_BUILD_BRANCH_BASE_VERSION R595
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
@@ -5,7 +5,7 @@
55
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1) || \
66
defined(NV_DCECORE)
77

8-
#define NV_VERSION_STRING "595.44.03"
8+
#define NV_VERSION_STRING "595.44.05"
99

1010
#else
1111

0 commit comments

Comments
 (0)