]> git.pld-linux.org Git - packages/xorg-driver-video-nvidia-legacy-390xx.git/commitdiff
- fixes for kernel 5.18, rel 2 auto/th/xorg-driver-video-nvidia-legacy-390xx-390.151-2
authorJan Rękorajski <baggins@pld-linux.org>
Thu, 26 May 2022 09:27:04 +0000 (11:27 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Thu, 26 May 2022 09:27:04 +0000 (11:27 +0200)
kernel-5.18-uvm.patch [new file with mode: 0644]
kernel-5.18.patch [new file with mode: 0644]
xorg-driver-video-nvidia-legacy-390xx.spec

diff --git a/kernel-5.18-uvm.patch b/kernel-5.18-uvm.patch
new file mode 100644 (file)
index 0000000..cc02ee9
--- /dev/null
@@ -0,0 +1,38 @@
+--- NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia-uvm/uvm8_gpu.c~      2022-04-20 19:57:58.000000000 +0200
++++ NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia-uvm/uvm8_gpu.c       2022-05-26 11:20:33.644914149 +0200
+@@ -2214,7 +2214,11 @@
+ NV_STATUS uvm_gpu_map_cpu_pages(uvm_gpu_t *gpu, struct page *page, size_t size, NvU64 *dma_addr_out)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+     NvU64 dma_addr = pci_map_page(gpu->pci_dev, page, 0, size, PCI_DMA_BIDIRECTIONAL);
++#else
++    NvU64 dma_addr = dma_map_page(&gpu->pci_dev->dev, page, 0, size, DMA_BIDIRECTIONAL);
++#endif
+     UVM_ASSERT(PAGE_ALIGNED(size));
+@@ -2222,7 +2226,11 @@
+         return NV_ERR_OPERATING_SYSTEM;
+     if (dma_addr < gpu->dma_addressable_start || dma_addr + size - 1 > gpu->dma_addressable_limit) {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+         pci_unmap_page(gpu->pci_dev, dma_addr, size, PCI_DMA_BIDIRECTIONAL);
++#else
++        dma_unmap_page(&gpu->pci_dev->dev, dma_addr, size, DMA_BIDIRECTIONAL);
++#endif
+         UVM_ERR_PRINT_RL("PCI mapped range [0x%llx, 0x%llx) not in the addressable range [0x%llx, 0x%llx), GPU %s\n",
+                          dma_addr,
+                          dma_addr + (NvU64)size,
+@@ -2256,7 +2264,11 @@
+     if (gpu->npu_dev)
+         dma_address = nv_expand_nvlink_addr(dma_address);
+     dma_address += gpu->dma_addressable_start;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+     pci_unmap_page(gpu->pci_dev, dma_address, size, PCI_DMA_BIDIRECTIONAL);
++#else
++    dma_unmap_page(&gpu->pci_dev->dev, dma_address, size, DMA_BIDIRECTIONAL);
++#endif
+     atomic64_sub(size, &gpu->mapped_cpu_pages_size);
+ }
diff --git a/kernel-5.18.patch b/kernel-5.18.patch
new file mode 100644 (file)
index 0000000..43cf468
--- /dev/null
@@ -0,0 +1,94 @@
+--- NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia/nv.c~        2022-04-20 19:57:55.000000000 +0200
++++ NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia/nv.c 2022-05-26 10:54:29.375034057 +0200
+@@ -2742,7 +2742,11 @@
+     if (!nvl->tce_bypass_enabled)
+     {
+         NvU64 new_mask = (((NvU64)1) << phys_addr_bits) - 1;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+         pci_set_dma_mask(nvl->dev, new_mask);
++#else
++        dma_set_mask(&nvl->dev->dev, new_mask);
++#endif
+     }
+ }
+--- NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia/nv-dma.c.orig        2022-04-20 19:57:55.000000000 +0200
++++ NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia/nv-dma.c     2022-05-26 11:03:12.139154417 +0200
+@@ -27,8 +27,13 @@
+     NvU64 *va
+ )
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+     *va = pci_map_page(dma_map->dev, dma_map->pages[0], 0,
+             dma_map->page_count * PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
++#else
++    *va = dma_map_page(&dma_map->dev->dev, dma_map->pages[0], 0,
++            dma_map->page_count * PAGE_SIZE, DMA_BIDIRECTIONAL);
++#endif
+     if (NV_PCI_DMA_MAPPING_ERROR(dma_map->dev, *va))
+     {
+         return NV_ERR_OPERATING_SYSTEM;
+@@ -57,8 +62,13 @@
+ static void nv_dma_unmap_contig(nv_dma_map_t *dma_map)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+     pci_unmap_page(dma_map->dev, dma_map->mapping.contig.dma_addr,
+             dma_map->page_count * PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
++#else
++    dma_unmap_page(&dma_map->dev->dev, dma_map->mapping.contig.dma_addr,
++            dma_map->page_count * PAGE_SIZE, DMA_BIDIRECTIONAL);
++#endif
+ }
+ static void nv_fill_scatterlist
+@@ -166,10 +176,17 @@
+     NV_FOR_EACH_DMA_SUBMAP(dma_map, submap, i)
+     {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+         submap->sg_map_count = pci_map_sg(dma_map->dev,
+                 NV_DMA_SUBMAP_SCATTERLIST(submap),
+                 NV_DMA_SUBMAP_SCATTERLIST_LENGTH(submap),
+                 PCI_DMA_BIDIRECTIONAL);
++#else
++        submap->sg_map_count = dma_map_sg(&dma_map->dev->dev,
++                NV_DMA_SUBMAP_SCATTERLIST(submap),
++                NV_DMA_SUBMAP_SCATTERLIST_LENGTH(submap),
++                DMA_BIDIRECTIONAL);
++#endif
+         if (submap->sg_map_count == 0)
+         {
+             status = NV_ERR_OPERATING_SYSTEM;
+@@ -197,9 +214,15 @@
+             break;
+         }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+         pci_unmap_sg(dma_map->dev, NV_DMA_SUBMAP_SCATTERLIST(submap),
+                 NV_DMA_SUBMAP_SCATTERLIST_LENGTH(submap),
+                 PCI_DMA_BIDIRECTIONAL);
++#else
++        dma_unmap_sg(&dma_map->dev->dev, NV_DMA_SUBMAP_SCATTERLIST(submap),
++                NV_DMA_SUBMAP_SCATTERLIST_LENGTH(submap),
++                DMA_BIDIRECTIONAL);
++#endif
+     }
+ }
+--- NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/common/inc/nv-linux.h.orig  2022-04-20 19:57:56.000000000 +0200
++++ NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/common/inc/nv-linux.h       2022-05-26 11:05:45.337533146 +0200
+@@ -339,8 +339,13 @@
+ #if defined(NV_PCI_DMA_MAPPING_ERROR_PRESENT)
+ #if (NV_PCI_DMA_MAPPING_ERROR_ARGUMENT_COUNT == 2)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
+ #define NV_PCI_DMA_MAPPING_ERROR(dev, addr) \
+     pci_dma_mapping_error(dev, addr)
++#else
++#define NV_PCI_DMA_MAPPING_ERROR(pdev, addr) \
++    dma_mapping_error(&pdev->dev, addr)
++#endif
+ #elif (NV_PCI_DMA_MAPPING_ERROR_ARGUMENT_COUNT == 1)
+ #define NV_PCI_DMA_MAPPING_ERROR(dev, addr) \
+     pci_dma_mapping_error(addr)
index 6b4583e5e59807f1c404b39b27fc9f15c6b80586..7dcaa51dff682d0ef02833028fee8cd92fb85138 100644 (file)
@@ -29,7 +29,7 @@ exit 1
 
 %define                no_install_post_check_so 1
 
-%define                rel     1
+%define                rel     2
 %define                pname   xorg-driver-video-nvidia-legacy-390xx
 Summary:       Linux Drivers for nVidia GeForce/Quadro Chips
 Summary(hu.UTF-8):     Linux meghajtók nVidia GeForce/Quadro chipekhez
@@ -51,6 +51,8 @@ Source4:      10-nvidia.conf
 Source5:       10-nvidia-modules.conf
 Patch0:                X11-driver-nvidia-GL.patch
 Patch1:                X11-driver-nvidia-desktop.patch
+Patch2:                kernel-5.18.patch
+Patch3:                kernel-5.18-uvm.patch
 URL:           https://www.nvidia.com/en-us/drivers/unix/
 BuildRequires: rpm-build >= 4.6
 BuildRequires: rpmbuild(macros) >= 1.752
@@ -311,6 +313,10 @@ rm -rf NVIDIA-Linux-x86*-%{version}*
 %endif
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%ifarch %{x8664}
+%patch3 -p1
+%endif
 echo 'EXTRA_CFLAGS += -Wno-pointer-arith -Wno-sign-compare -Wno-unused' >> kernel/Makefile.kbuild
 
 %build
This page took 0.248862 seconds and 4 git commands to generate.