Skip to content

Commit 6387af3

Browse files
committed
580.82.07
1 parent 288f16e commit 6387af3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1647
-820
lines changed

README.md

Lines changed: 9 additions & 4 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 580.76.05.
4+
version 580.82.07.
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-
580.76.05 driver release. This can be achieved by installing
20+
580.82.07 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/580.76.05/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/580.82.07/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.
@@ -749,6 +749,7 @@ Subsystem Device ID.
749749
| NVIDIA A10 | 2236 10DE 1482 |
750750
| NVIDIA A10G | 2237 10DE 152F |
751751
| NVIDIA A10M | 2238 10DE 1677 |
752+
| NVIDIA H20 NVL16 | 230E 10DE 20DF |
752753
| NVIDIA H100 NVL | 2321 10DE 1839 |
753754
| NVIDIA H800 PCIe | 2322 10DE 17A4 |
754755
| NVIDIA H800 | 2324 10DE 17A6 |
@@ -949,9 +950,10 @@ Subsystem Device ID.
949950
| NVIDIA GB200 | 2941 10DE 20D5 |
950951
| NVIDIA GB200 | 2941 10DE 21C9 |
951952
| NVIDIA GB200 | 2941 10DE 21CA |
953+
| NVIDIA DRIVE P2021 | 29BB 10DE 207C |
952954
| NVIDIA GeForce RTX 5090 | 2B85 |
953955
| NVIDIA GeForce RTX 5090 D | 2B87 |
954-
| NVIDIA GeForce RTX 5090 D V2 | 2B8C |
956+
| NVIDIA GeForce RTX 5090 D v2 | 2B8C |
955957
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 1028 204B |
956958
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 103C 204B |
957959
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 10DE 204B |
@@ -965,6 +967,7 @@ Subsystem Device ID.
965967
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 10DE 204C |
966968
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 17AA 204C |
967969
| NVIDIA RTX PRO 6000 Blackwell Server Edition | 2BB5 10DE 204E |
970+
| NVIDIA RTX 6000D | 2BB9 10DE 2091 |
968971
| NVIDIA GeForce RTX 5080 | 2C02 |
969972
| NVIDIA GeForce RTX 5070 Ti | 2C05 |
970973
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C18 |
@@ -1005,3 +1008,5 @@ Subsystem Device ID.
10051008
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F18 |
10061009
| NVIDIA RTX PRO 3000 Blackwell Generation Laptop GPU | 2F38 |
10071010
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F58 |
1011+
| NVIDIA B300 SXM6 AC | 3182 10DE 20E6 |
1012+
| NVIDIA GB300 | 31C2 10DE 21F1 |

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=\"580.76.05\"
82+
ccflags-y += -DNV_VERSION_STRING=\"580.82.07\"
8383

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

kernel-open/common/inc/nv-linux.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -827,6 +827,10 @@ extern void *nvidia_stack_t_cache;
827827
* d50d82faa0c964e31f7a946ba8aba7c715ca7ab0 (4.18) fixes this issue by cleaning
828828
* up sysfs entry within slab_mutex, so the entry is deleted before a cache with
829829
* the same attributes could be created.
830+
* The definition for sysfs_slab_unlink() was moved to mm/slab.h in commit
831+
* 19975f83412f ("mm/slab: move the rest of slub_def.h to mm/slab.h") (6.8).
832+
* Since we can't conftest mm/slab.h, use the fact that linux/slub_def.h was
833+
* removed by the commit.
830834
*
831835
* To workaround this kernel issue, we take two steps:
832836
* - Create unmergeable caches: a kmem_cache with a constructor is unmergeable.
@@ -838,7 +842,7 @@ extern void *nvidia_stack_t_cache;
838842
* wait for the timestamp to increment by at least one to ensure that we do
839843
* not hit a name conflict in cache create -> destroy (async) -> create cycle.
840844
*/
841-
#if !defined(NV_SYSFS_SLAB_UNLINK_PRESENT)
845+
#if !defined(NV_SYSFS_SLAB_UNLINK_PRESENT) && defined(NV_LINUX_SLUB_DEF_H_PRESENT)
842846
static inline void nv_kmem_ctor_dummy(void *arg)
843847
{
844848
(void)arg;
@@ -866,7 +870,7 @@ static inline void nv_kmem_ctor_dummy(void *arg)
866870

867871
static inline void *nv_kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags)
868872
{
869-
#if !defined(NV_SYSFS_SLAB_UNLINK_PRESENT)
873+
#if !defined(NV_SYSFS_SLAB_UNLINK_PRESENT) && defined(NV_LINUX_SLUB_DEF_H_PRESENT)
870874
/*
871875
* We cannot call kmem_cache_zalloc directly as it adds the __GFP_ZERO
872876
* flag. This flag together with the presence of a slab constructor is
@@ -1577,7 +1581,7 @@ static inline struct kmem_cache *nv_kmem_cache_create(const char *name, unsigned
15771581
char *name_unique;
15781582
struct kmem_cache *cache;
15791583

1580-
#if !defined(NV_SYSFS_SLAB_UNLINK_PRESENT)
1584+
#if !defined(NV_SYSFS_SLAB_UNLINK_PRESENT) && defined(NV_LINUX_SLUB_DEF_H_PRESENT)
15811585
size_t len;
15821586
NvU64 tm_ns = nv_ktime_get_raw_ns();
15831587

kernel-open/conftest.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2302,6 +2302,43 @@ compile_test() {
23022302
fi
23032303
;;
23042304

2305+
drm_fb_create_takes_format_info)
2306+
#
2307+
# Determine if a `struct drm_format_info *` is passed into
2308+
# the .fb_create callback. If so, it will have 4 arguments.
2309+
# This parameter was added in commit 81112eaac559 ("drm:
2310+
# Pass the format info to .fb_create") in linux-next
2311+
# (2025-07-16)
2312+
CODE="
2313+
#include <drm/drm_mode_config.h>
2314+
#include <drm/drm_framebuffer.h>
2315+
2316+
static const struct drm_mode_config_funcs funcs;
2317+
void conftest_drm_fb_create_takes_format_info(void) {
2318+
funcs.fb_create(NULL, NULL, NULL, NULL);
2319+
}"
2320+
2321+
compile_check_conftest "$CODE" "NV_DRM_FB_CREATE_TAKES_FORMAT_INFO" "" "types"
2322+
;;
2323+
2324+
drm_fill_fb_struct_takes_format_info)
2325+
#
2326+
# Determine if a `struct drm_format_info *` is passed into
2327+
# drm_helper_mode_fill_fb_struct(). If so, it will have 4 arguments.
2328+
# This parameter was added in commit a34cc7bf1034 ("drm:
2329+
# Allow the caller to pass in the format info to
2330+
# drm_helper_mode_fill_fb_struct()") in linux-next
2331+
# (2025-07-16)
2332+
CODE="
2333+
#include <drm/drm_modeset_helper.h>
2334+
2335+
void conftest_drm_fill_fb_struct_takes_format_info(void) {
2336+
drm_helper_mode_fill_fb_struct(NULL, NULL, NULL, NULL);
2337+
}"
2338+
2339+
compile_check_conftest "$CODE" "NV_DRM_FILL_FB_STRUCT_TAKES_FORMAT_INFO" "" "types"
2340+
;;
2341+
23052342
drm_connector_funcs_have_mode_in_name)
23062343
#
23072344
# Determine if _mode_ is present in connector function names. We

kernel-open/header-presence-tests.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ NV_HEADER_PRESENCE_TESTS = \
3737
linux/iosys-map.h \
3838
linux/vfio_pci_core.h \
3939
linux/cc_platform.h \
40+
linux/slub_def.h \
4041
asm/mshyperv.h \
4142
crypto/sig.h
4243

kernel-open/nvidia-drm/nvidia-drm-fb.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,9 @@ static int nv_drm_framebuffer_init(struct drm_device *dev,
242242
struct drm_framebuffer *nv_drm_framebuffer_create(
243243
struct drm_device *dev,
244244
struct drm_file *file,
245+
#if defined(NV_DRM_FB_CREATE_TAKES_FORMAT_INFO)
246+
const struct drm_format_info *info,
247+
#endif
245248
const struct drm_mode_fb_cmd2 *cmd)
246249
{
247250
struct nv_drm_device *nv_dev = to_nv_device(dev);
@@ -289,6 +292,9 @@ struct drm_framebuffer *nv_drm_framebuffer_create(
289292
drm_helper_mode_fill_fb_struct(
290293
dev,
291294
&nv_fb->base,
295+
#if defined(NV_DRM_FB_CREATE_TAKES_FORMAT_INFO)
296+
info,
297+
#endif
292298
cmd);
293299

294300
/*

kernel-open/nvidia-drm/nvidia-drm-fb.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ static inline struct nv_drm_framebuffer *to_nv_framebuffer(
5353
struct drm_framebuffer *nv_drm_framebuffer_create(
5454
struct drm_device *dev,
5555
struct drm_file *file,
56+
#if defined(NV_DRM_FB_CREATE_TAKES_FORMAT_INFO)
57+
const struct drm_format_info *info,
58+
#endif
5659
const struct drm_mode_fb_cmd2 *cmd);
5760

5861
#endif /* NV_DRM_AVAILABLE */

kernel-open/nvidia-drm/nvidia-drm-modeset.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,14 @@ int nv_drm_atomic_commit(struct drm_device *dev,
702702
return ret;
703703
}
704704

705+
/*
706+
* Used to update legacy modeset state pointers to support UAPIs not updated
707+
* by the core atomic modeset infrastructure.
708+
*
709+
* Example: /sys/class/drm/<card connector>/enabled
710+
*/
711+
drm_atomic_helper_update_legacy_modeset_state(dev, state);
712+
705713
/*
706714
* nv_drm_atomic_commit_internal() must not return failure after
707715
* calling drm_atomic_helper_swap_state().

kernel-open/nvidia-drm/nvidia-drm-sources.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_gem_prime_mmap
106106
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_output_poll_changed
107107
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_date
108108
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_connector_helper_funcs_mode_valid_has_const_mode_arg
109+
NV_CONFTEST_TYPE_COMPILE_TESTS += drm_fb_create_takes_format_info

kernel-open/nvidia-uvm/uvm_blackwell.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,13 @@ void uvm_hal_blackwell_arch_init_properties(uvm_parent_gpu_t *parent_gpu)
143143
// by UVM.
144144
if (parent_gpu->rm_info.gpuArch == NV2080_CTRL_MC_ARCH_INFO_ARCHITECTURE_GB100 &&
145145
parent_gpu->rm_info.gpuImplementation ==
146-
NV2080_CTRL_MC_ARCH_INFO_IMPLEMENTATION_GB10B)
146+
NV2080_CTRL_MC_ARCH_INFO_IMPLEMENTATION_GB10B) {
147147
parent_gpu->is_integrated_gpu = true;
148+
// GB10B has sticky L2 coherent cache lines.
149+
// For details, refer to the comments in uvm_gpu.h
150+
// where this field is declared.
151+
parent_gpu->sticky_l2_coherent_cache_lines = true;
152+
}
148153
if (parent_gpu->rm_info.gpuArch == NV2080_CTRL_MC_ARCH_INFO_ARCHITECTURE_GB200 &&
149154
parent_gpu->rm_info.gpuImplementation ==
150155
NV2080_CTRL_MC_ARCH_INFO_IMPLEMENTATION_GB20B)

0 commit comments

Comments
 (0)