Skip to content

Commit 74ee05e

Browse files
nivgauravjuvekar
authored andcommitted
555.52.04
(cherry picked from commit 78d807e)
1 parent 3084c04 commit 74ee05e

36 files changed

+1140
-487
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## Release 555 Entries
44

5+
### [555.52.04] 2024-06-05
6+
57
### [555.42.02] 2024-05-21
68

79
## Release 550 Entries

README.md

Lines changed: 6 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 555.42.02.
4+
version 555.52.04.
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-
555.42.02 driver release. This can be achieved by installing
20+
555.52.04 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

@@ -188,7 +188,7 @@ encountered specific to them.
188188
For details on feature support and limitations, see the NVIDIA GPU driver
189189
end user README here:
190190

191-
https://us.download.nvidia.com/XFree86/Linux-x86_64/555.42.02/README/kernel_open.html
191+
https://us.download.nvidia.com/XFree86/Linux-x86_64/555.52.04/README/kernel_open.html
192192

193193
For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
194194
Package for more details.
@@ -757,6 +757,8 @@ Subsystem Device ID.
757757
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C0 |
758758
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C1 |
759759
| NVIDIA H100 PCIe | 2331 10DE 1626 |
760+
| NVIDIA H200 | 2335 10DE 18BE |
761+
| NVIDIA H200 | 2335 10DE 18BF |
760762
| NVIDIA H100 | 2339 10DE 17FC |
761763
| NVIDIA H800 NVL | 233A 10DE 183A |
762764
| NVIDIA GH200 120GB | 2342 10DE 16EB |
@@ -874,6 +876,7 @@ Subsystem Device ID.
874876
| NVIDIA L40S | 26B9 10DE 1851 |
875877
| NVIDIA L40S | 26B9 10DE 18CF |
876878
| NVIDIA L20 | 26BA 10DE 1957 |
879+
| NVIDIA L20 | 26BA 10DE 1990 |
877880
| NVIDIA GeForce RTX 4080 SUPER | 2702 |
878881
| NVIDIA GeForce RTX 4080 | 2704 |
879882
| NVIDIA GeForce RTX 4070 Ti SUPER | 2705 |

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=\"555.42.02\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"555.52.04\"
7676

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

kernel-open/conftest.sh

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5252,25 +5252,23 @@ compile_test() {
52525252
compile_check_conftest "$CODE" "NV_PCI_CLASS_MULTIMEDIA_HD_AUDIO_PRESENT" "" "generic"
52535253
;;
52545254

5255-
unsafe_follow_pfn)
5255+
follow_pfn)
52565256
#
5257-
# Determine if unsafe_follow_pfn() is present.
5257+
# Determine if follow_pfn() is present.
52585258
#
5259-
# unsafe_follow_pfn() was added by commit 69bacee7f9ad
5260-
# ("mm: Add unsafe_follow_pfn") in v5.13-rc1.
5261-
#
5262-
# Note: this commit never made it to the linux kernel, so
5263-
# unsafe_follow_pfn() never existed.
5259+
# follow_pfn() was added by commit 3b6748e2dd69
5260+
# ("mm: introduce follow_pfn()") in v2.6.31-rc1, and removed
5261+
# by commit 233eb0bf3b94 ("mm: remove follow_pfn")
5262+
# from linux-next 233eb0bf3b94.
52645263
#
52655264
CODE="
52665265
#include <linux/mm.h>
5267-
void conftest_unsafe_follow_pfn(void) {
5268-
unsafe_follow_pfn();
5266+
void conftest_follow_pfn(void) {
5267+
follow_pfn();
52695268
}"
52705269

5271-
compile_check_conftest "$CODE" "NV_UNSAFE_FOLLOW_PFN_PRESENT" "" "functions"
5270+
compile_check_conftest "$CODE" "NV_FOLLOW_PFN_PRESENT" "" "functions"
52725271
;;
5273-
52745272
drm_plane_atomic_check_has_atomic_state_arg)
52755273
#
52765274
# Determine if drm_plane_helper_funcs::atomic_check takes 'state'

kernel-open/nvidia/nvidia.Kbuild

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += pci_enable_atomic_ops_to_root
161161
NV_CONFTEST_FUNCTION_COMPILE_TESTS += vga_tryget
162162
NV_CONFTEST_FUNCTION_COMPILE_TESTS += cc_platform_has
163163
NV_CONFTEST_FUNCTION_COMPILE_TESTS += seq_read_iter
164-
NV_CONFTEST_FUNCTION_COMPILE_TESTS += unsafe_follow_pfn
164+
NV_CONFTEST_FUNCTION_COMPILE_TESTS += follow_pfn
165165
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_gem_object_get
166166
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_gem_object_put_unlocked
167167
NV_CONFTEST_FUNCTION_COMPILE_TESTS += add_memory_driver_managed
@@ -231,6 +231,7 @@ NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_memory_block_size_b
231231
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_tegra_platform_is_fpga
232232
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_tegra_platform_is_sim
233233
NV_CONFTEST_SYMBOL_COMPILE_TESTS += crypto
234+
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_follow_pte
234235

235236
NV_CONFTEST_TYPE_COMPILE_TESTS += dma_ops
236237
NV_CONFTEST_TYPE_COMPILE_TESTS += swiotlb_dma_ops

kernel-open/nvidia/os-mlock.c

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,28 @@ static inline int nv_follow_pfn(struct vm_area_struct *vma,
3636
unsigned long address,
3737
unsigned long *pfn)
3838
{
39-
#if defined(NV_UNSAFE_FOLLOW_PFN_PRESENT)
40-
return unsafe_follow_pfn(vma, address, pfn);
41-
#else
39+
#if defined(NV_FOLLOW_PFN_PRESENT)
4240
return follow_pfn(vma, address, pfn);
41+
#else
42+
#if NV_IS_EXPORT_SYMBOL_PRESENT_follow_pte
43+
int status = 0;
44+
spinlock_t *ptl;
45+
pte_t *ptep;
46+
47+
if (!(vma->vm_flags & (VM_IO | VM_PFNMAP)))
48+
return status;
49+
50+
status = follow_pte(vma, address, &ptep, &ptl);
51+
if (status)
52+
return status;
53+
*pfn = pte_pfn(ptep_get(ptep));
54+
55+
// The lock is acquired inside follow_pte()
56+
pte_unmap_unlock(ptep, ptl);
57+
return 0;
58+
#else // NV_IS_EXPORT_SYMBOL_PRESENT_follow_pte
59+
return -1;
60+
#endif // NV_IS_EXPORT_SYMBOL_PRESENT_follow_pte
4361
#endif
4462
}
4563

src/common/displayport/inc/dp_configcaps.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ namespace DisplayPort
246246
virtual bool getOuiSupported() = 0;
247247
virtual AuxRetry::status setOuiSource(unsigned ouiId, const char * model, size_t modelNameLength, NvU8 chipRevision) = 0;
248248
virtual bool getOuiSource(unsigned &ouiId, char * modelName, size_t modelNameBufferSize, NvU8 & chipRevision) = 0;
249-
virtual bool getOuiSink(unsigned &ouiId, char * modelName, size_t modelNameBufferSize, NvU8 & chipRevision) = 0;
249+
virtual bool getOuiSink(unsigned &ouiId, unsigned char * modelName, size_t modelNameBufferSize, NvU8 & chipRevision) = 0;
250250
};
251251

252252
class HDCP
@@ -898,7 +898,7 @@ namespace DisplayPort
898898
size_t modelNameLength, NvU8 chipRevision);
899899
virtual bool getOuiSource(unsigned &ouiId, char * modelName,
900900
size_t modelNameBufferSize, NvU8 & chipRevision);
901-
virtual bool getOuiSink(unsigned &ouiId, char * modelName,
901+
virtual bool getOuiSink(unsigned &ouiId, unsigned char * modelName,
902902
size_t modelNameBufferSize, NvU8 & chipRevision);
903903

904904
// DPCD offset 21h

src/common/displayport/inc/dp_connector.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -701,7 +701,7 @@ namespace DisplayPort
701701

702702
virtual bool getHDCPAbortCodesDP12(NvU32 &hdcpAbortCodesDP12) = 0;
703703

704-
virtual bool getOuiSink(unsigned &ouiId, char * modelName,
704+
virtual bool getOuiSink(unsigned &ouiId, unsigned char * modelName,
705705
size_t modelNameBufferSize, NvU8 & chipRevision) = 0;
706706

707707
virtual bool getIgnoreSourceOuiHandshake() = 0;

src/common/displayport/inc/dp_connectorimpl.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,9 @@ namespace DisplayPort
105105
NvU8 cachedSourceChipRevision;
106106
bool bOuiCached;
107107

108-
unsigned ouiId; // Sink ouiId
109-
char modelName[NV_DPCD_SOURCE_DEV_ID_STRING__SIZE + 1]; // Device Model-name
110-
bool bIgnoreSrcOuiHandshake; // Skip writing source OUI
108+
unsigned ouiId; // Sink ouiId
109+
unsigned char modelName[NV_DPCD_SOURCE_DEV_ID_STRING__SIZE + 1]; // Device Model-name
110+
bool bIgnoreSrcOuiHandshake; // Skip writing source OUI
111111

112112
LinkPolicy linkPolicy;
113113

@@ -316,6 +316,7 @@ namespace DisplayPort
316316
bool bDisableSSC;
317317
bool bEnableFastLT;
318318
NvU32 maxLinkRateFromRegkey;
319+
bool bFlushTimeslotWhenDirty;
319320

320321
//
321322
// Latency(ms) to apply between link-train and FEC enable for bug
@@ -644,7 +645,7 @@ namespace DisplayPort
644645
void freeTimeslice(GroupImpl * targetGroup);
645646
void flushTimeslotsToHardware();
646647
bool getHDCPAbortCodesDP12(NvU32 &hdcpAbortCodesDP12);
647-
bool getOuiSink(unsigned &ouiId, char * modelName, size_t modelNameBufferSize, NvU8 & chipRevision);
648+
bool getOuiSink(unsigned &ouiId, unsigned char * modelName, size_t modelNameBufferSize, NvU8 & chipRevision);
648649
bool hdcpValidateKsv(const NvU8 *ksv, NvU32 Size);
649650
void cancelHdcpCallbacks();
650651
bool handleCPIRQ();

src/common/displayport/inc/dp_regkeydatabase.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,14 @@
7373
//
7474
#define NV_DP_DSC_MST_CAP_BUG_3143315 "DP_DSC_MST_CAP_BUG_3143315"
7575

76-
//
76+
7777
// Bug 4388987 : This regkey will disable reading PCON caps for MST.
78-
//
7978
#define NV_DP_REGKEY_MST_PCON_CAPS_READ_DISABLED "DP_BUG_4388987_WAR"
8079

81-
//
80+
// Bug 4426624: Flush timeslot change to HW when dirty bit is set.
81+
#define NV_DP_REGKEY_FLUSH_TIMESLOT_INFO_WHEN_DIRTY "DP_BUG_4426624_WAR"
82+
8283
// Bug 4459839 : This regkey will enable DSC irrespective of LT status.
83-
//
8484
#define NV_DP_REGKEY_FORCE_DSC_ON_SINK "DP_FORCE_DSC_ON_SINK"
8585
#define NV_DP_REGKEY_ENABLE_SKIP_DPCD_READS_WAR "DP_BUG_4478047_WAR"
8686
#define NV_DP_REGKEY_DISABLE_TUNNEL_BW_ALLOCATION "DP_DISABLE_TUNNEL_BW_ALLOCATION"
@@ -120,6 +120,7 @@ struct DP_REGKEY_DATABASE
120120
bool bMSTPCONCapsReadDisabled;
121121
bool bForceDscOnSink;
122122
bool bSkipFakeDeviceDpcdAccess;
123+
bool bFlushTimeslotWhenDirty;
123124
bool bForceDisableTunnelBwAllocation;
124125
};
125126

0 commit comments

Comments
 (0)