From 0b0a1c48ccc1067dda6c7ddb3f7922fa27698cfc Mon Sep 17 00:00:00 2001 From: SupervisedThinking Date: Fri, 27 May 2022 00:06:44 +0200 Subject: [PATCH] xf86-video-nvidia: update to 470.129.06 - drop Linux 5.18 patch --- .../x11/driver/xf86-video-nvidia/package.mk | 4 +- .../patches/nvidia-470xx-fix-linux-5.18.patch | 289 ------------------ .../xf86-video-nvidia/udev.d/96-nvidia.rules | 20 ++ 3 files changed, 22 insertions(+), 291 deletions(-) delete mode 100644 packages/x11/driver/xf86-video-nvidia/patches/nvidia-470xx-fix-linux-5.18.patch diff --git a/packages/x11/driver/xf86-video-nvidia/package.mk b/packages/x11/driver/xf86-video-nvidia/package.mk index 7abb080a72..18253cb22d 100644 --- a/packages/x11/driver/xf86-video-nvidia/package.mk +++ b/packages/x11/driver/xf86-video-nvidia/package.mk @@ -6,8 +6,8 @@ PKG_NAME="xf86-video-nvidia" # Remember to run "python3 packages/x11/driver/xf86-video-nvidia/scripts/make_nvidia_udev.py" and commit # changes to "packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules" whenever bumping version. # The build host may require installation of python3-lxml and python3-requests packages. -PKG_VERSION="470.103.01" -PKG_SHA256="c2a7315f04aa44a97ef7af7c9e016ca30f7053623b2e03148a4bd2298a9114b7" +PKG_VERSION="470.129.06" +PKG_SHA256="6ac030d692d45c065ad88d30fb7358834df9ceb4f37caaad459a4d7c64877ea7" PKG_ARCH="x86_64" PKG_LICENSE="nonfree" PKG_SITE="https://www.nvidia.com/en-us/drivers/unix/" diff --git a/packages/x11/driver/xf86-video-nvidia/patches/nvidia-470xx-fix-linux-5.18.patch b/packages/x11/driver/xf86-video-nvidia/patches/nvidia-470xx-fix-linux-5.18.patch deleted file mode 100644 index 4aa917f681..0000000000 --- a/packages/x11/driver/xf86-video-nvidia/patches/nvidia-470xx-fix-linux-5.18.patch +++ /dev/null @@ -1,289 +0,0 @@ -From 0ec02378bcc0d35d713fd93ba42c3848bc8b1077 Mon Sep 17 00:00:00 2001 -From: Joan Bruguera -Date: Sat, 12 Mar 2022 08:37:32 +0100 -Subject: [PATCH 1/2] Buildfix NVIDIA 470.103.01 for Linux 5.18-rc1 (part 1) - ---- - common/inc/nv-linux.h | 7 +++++++ - nvidia-drm/nvidia-drm-drv.c | 4 ++++ - nvidia-drm/nvidia-drm-gem.c | 6 ++++++ - 3 files changed, 17 insertions(+) - -diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h -index 82e19d6..58e66c7 100644 ---- a/kernel/common/inc/nv-linux.h -+++ b/kernel/common/inc/nv-linux.h -@@ -11,6 +11,8 @@ - #ifndef _NV_LINUX_H_ - #define _NV_LINUX_H_ - -+#warning Do not buy NVIDIA for your next GPU! -+#include - #include "nvstatus.h" - #include "nv.h" - #include "nv-ioctl-numa.h" -@@ -958,7 +960,12 @@ static inline pgprot_t nv_adjust_pgprot(pgprot_t vm_prot, NvU32 extra) - * When AMD memory encryption is enabled, device memory mappings with the - * C-bit set read as 0xFF, so ensure the bit is cleared for user mappings. - */ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) && defined(_ASM_X86_PGTABLE_H)) -+ // Rel. commit "x86/coco: Add API to handle encryption mask" (Kirill A. Shutemov, 22 Feb 2022) -+ prot = __pgprot(__sme_clr(pgprot_val(prot))); -+#else - prot = pgprot_decrypted(prot); -+#endif - #endif - return prot; - } -diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c -index d7067a4..f57cbc8 100644 ---- a/kernel/nvidia-drm/nvidia-drm-drv.c -+++ b/kernel/nvidia-drm/nvidia-drm-drv.c -@@ -20,6 +20,7 @@ - * DEALINGS IN THE SOFTWARE. - */ - -+#include - #include "nvidia-drm-conftest.h" /* NV_DRM_AVAILABLE and NV_DRM_DRM_GEM_H_PRESENT */ - - #include "nvidia-drm-priv.h" -@@ -254,7 +255,10 @@ nv_drm_init_mode_config(struct nv_drm_device *nv_dev, - #if defined(NV_DRM_FORMAT_MODIFIERS_PRESENT) - /* Allow clients to define framebuffer layouts using DRM format modifiers */ - -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)) -+ // Rel. commit "drm: remove allow_fb_modifiers" (Tomohito Esaki, 28 Jan 2022) - dev->mode_config.allow_fb_modifiers = true; -+#endif - #endif - - /* Initialize output polling support */ -diff --git a/kernel/nvidia-drm/nvidia-drm-gem.c b/kernel/nvidia-drm/nvidia-drm-gem.c -index 82de645..8cd3f76 100644 ---- a/kernel/nvidia-drm/nvidia-drm-gem.c -+++ b/kernel/nvidia-drm/nvidia-drm-gem.c -@@ -49,6 +49,12 @@ - - #include "nv-mm.h" - -+#include -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)) -+// Rel. commit "dma-buf-map: Rename to iosys-map" (Lucas De Marchi, 4 Feb 2022) -+#define dma_buf_map iosys_map -+#endif -+ - void nv_drm_gem_free(struct drm_gem_object *gem) - { - struct nv_drm_gem_object *nv_gem = to_nv_gem_object(gem); --- -2.35.1 - - -From 6b934e829fb942d1735e2371320ddbec089c6900 Mon Sep 17 00:00:00 2001 -From: Joan Bruguera -Date: Mon, 4 Apr 2022 19:59:51 +0200 -Subject: [PATCH 2/2] Buildfix NVIDIA 470.103.01 for Linux 5.18-rc1 (part 2) - -See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d56baf6efaf14e2910610216c581ca71d6940012 - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7968778914e53788a01c2dee2692cab157de9ac0 ---- - nvidia-uvm/uvm_gpu.c | 8 ++++---- - nvidia/linux_nvswitch.c | 18 +++++++++--------- - nvidia/nv.c | 18 +++++++++--------- - 3 files changed, 22 insertions(+), 22 deletions(-) - -diff --git a/kernel/nvidia-uvm/uvm_gpu.c b/kernel/nvidia-uvm/uvm_gpu.c -index f58c00b..c9607a8 100644 ---- a/kernel/nvidia-uvm/uvm_gpu.c -+++ b/kernel/nvidia-uvm/uvm_gpu.c -@@ -3059,16 +3059,16 @@ out: - - NV_STATUS uvm_gpu_map_cpu_pages(uvm_gpu_t *gpu, struct page *page, size_t size, NvU64 *dma_addr_out) - { -- NvU64 dma_addr = pci_map_page(gpu->parent->pci_dev, page, 0, size, PCI_DMA_BIDIRECTIONAL); -+ NvU64 dma_addr = dma_map_page(&gpu->parent->pci_dev->dev, page, 0, size, DMA_BIDIRECTIONAL); - - UVM_ASSERT(PAGE_ALIGNED(size)); - -- if (pci_dma_mapping_error(gpu->parent->pci_dev, dma_addr)) -+ if (dma_mapping_error(&gpu->parent->pci_dev->dev, dma_addr)) - return NV_ERR_OPERATING_SYSTEM; - - if (dma_addr < gpu->parent->dma_addressable_start || - dma_addr + size - 1 > gpu->parent->dma_addressable_limit) { -- pci_unmap_page(gpu->parent->pci_dev, dma_addr, size, PCI_DMA_BIDIRECTIONAL); -+ dma_unmap_page(&gpu->parent->pci_dev->dev, dma_addr, size, DMA_BIDIRECTIONAL); - 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, -@@ -3102,7 +3102,7 @@ void uvm_gpu_unmap_cpu_pages(uvm_gpu_t *gpu, NvU64 dma_address, size_t size) - if (gpu->parent->npu) - dma_address = nv_expand_nvlink_addr(dma_address); - dma_address += gpu->parent->dma_addressable_start; -- pci_unmap_page(gpu->parent->pci_dev, dma_address, size, PCI_DMA_BIDIRECTIONAL); -+ dma_unmap_page(&gpu->parent->pci_dev->dev, dma_address, size, DMA_BIDIRECTIONAL); - atomic64_sub(size, &gpu->parent->mapped_cpu_pages_size); - } - -diff --git a/kernel/nvidia/linux_nvswitch.c b/kernel/nvidia/linux_nvswitch.c -index ddfc53c..714b9eb 100644 ---- a/kernel/nvidia/linux_nvswitch.c -+++ b/kernel/nvidia/linux_nvswitch.c -@@ -2139,11 +2139,11 @@ _nvswitch_to_pci_dma_direction - ) - { - if (direction == NVSWITCH_DMA_DIR_TO_SYSMEM) -- return PCI_DMA_FROMDEVICE; -+ return DMA_FROM_DEVICE; - else if (direction == NVSWITCH_DMA_DIR_FROM_SYSMEM) -- return PCI_DMA_TODEVICE; -+ return DMA_TO_DEVICE; - else -- return PCI_DMA_BIDIRECTIONAL; -+ return DMA_BIDIRECTIONAL; - } - - NvlStatus -@@ -2164,9 +2164,9 @@ nvswitch_os_map_dma_region - - dma_dir = _nvswitch_to_pci_dma_direction(direction); - -- *dma_handle = (NvU64)pci_map_single(pdev, cpu_addr, size, dma_dir); -+ *dma_handle = (NvU64) dma_map_single(&pdev->dev, cpu_addr, size, dma_dir); - -- if (pci_dma_mapping_error(pdev, *dma_handle)) -+ if (dma_mapping_error(&pdev->dev, *dma_handle)) - { - pr_err("nvidia-nvswitch: unable to create PCI DMA mapping\n"); - return -NVL_ERR_GENERIC; -@@ -2193,7 +2193,7 @@ nvswitch_os_unmap_dma_region - - dma_dir = _nvswitch_to_pci_dma_direction(direction); - -- pci_unmap_single(pdev, dma_handle, size, dma_dir); -+ dma_unmap_single(&pdev->dev, dma_handle, size, dma_dir); - - return NVL_SUCCESS; - } -@@ -2210,7 +2210,7 @@ nvswitch_os_set_dma_mask - if (!pdev) - return -NVL_BAD_ARGS; - -- if (pci_set_dma_mask(pdev, DMA_BIT_MASK(dma_addr_width))) -+ if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(dma_addr_width))) - return -NVL_ERR_GENERIC; - - return NVL_SUCCESS; -@@ -2233,7 +2233,7 @@ nvswitch_os_sync_dma_region_for_cpu - - dma_dir = _nvswitch_to_pci_dma_direction(direction); - -- pci_dma_sync_single_for_cpu(pdev, dma_handle, size, dma_dir); -+ dma_sync_single_for_cpu(&pdev->dev, dma_handle, size, dma_dir); - - return NVL_SUCCESS; - } -@@ -2255,7 +2255,7 @@ nvswitch_os_sync_dma_region_for_device - - dma_dir = _nvswitch_to_pci_dma_direction(direction); - -- pci_dma_sync_single_for_device(pdev, dma_handle, size, dma_dir); -+ dma_sync_single_for_device(&pdev->dev, dma_handle, size, dma_dir); - - return NVL_SUCCESS; - } -diff --git a/kernel/nvidia/nv.c b/kernel/nvidia/nv.c -index 92a7dc6..5065158 100644 ---- a/kernel/nvidia/nv.c -+++ b/kernel/nvidia/nv.c -@@ -2821,13 +2821,13 @@ nv_set_dma_address_size( - */ - if (!nvl->tce_bypass_enabled) - { -- pci_set_dma_mask(nvl->pci_dev, new_mask); -+ dma_set_mask(&nvl->pci_dev->dev, new_mask); - /* Certain kernels have a bug which causes pci_set_consistent_dma_mask - * to call GPL sme_active symbol, this bug has already been fixed in a - * minor release update but detect the failure scenario here to prevent - * an installation regression */ - #if !NV_IS_EXPORT_SYMBOL_GPL_sme_active -- pci_set_consistent_dma_mask(nvl->pci_dev, new_mask); -+ dma_set_coherent_mask(&nvl->pci_dev->dev, new_mask); - #endif - } - } -@@ -4524,19 +4524,19 @@ NvU64 NV_API_CALL nv_get_dma_start_address( - * as the starting address for all DMA mappings. - */ - saved_dma_mask = pci_dev->dma_mask; -- if (pci_set_dma_mask(pci_dev, DMA_BIT_MASK(64)) != 0) -+ if (dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(64)) != 0) - { - goto done; - } - -- dma_addr = pci_map_single(pci_dev, NULL, 1, DMA_BIDIRECTIONAL); -- if (pci_dma_mapping_error(pci_dev, dma_addr)) -+ dma_addr = dma_map_single(&pci_dev->dev, NULL, 1, DMA_BIDIRECTIONAL); -+ if (dma_mapping_error(&pci_dev->dev, dma_addr)) - { -- pci_set_dma_mask(pci_dev, saved_dma_mask); -+ dma_set_mask(&pci_dev->dev, saved_dma_mask); - goto done; - } - -- pci_unmap_single(pci_dev, dma_addr, 1, DMA_BIDIRECTIONAL); -+ dma_unmap_single(&pci_dev->dev, dma_addr, 1, DMA_BIDIRECTIONAL); - - /* - * From IBM: "For IODA2, native DMA bypass or KVM TCE-based implementation -@@ -4568,7 +4568,7 @@ NvU64 NV_API_CALL nv_get_dma_start_address( - */ - nv_printf(NV_DBG_WARNINGS, - "NVRM: DMA window limited by platform\n"); -- pci_set_dma_mask(pci_dev, saved_dma_mask); -+ dma_set_mask(&pci_dev->dev, saved_dma_mask); - goto done; - } - else if ((dma_addr & saved_dma_mask) != 0) -@@ -4587,7 +4587,7 @@ NvU64 NV_API_CALL nv_get_dma_start_address( - */ - nv_printf(NV_DBG_WARNINGS, - "NVRM: DMA window limited by memory size\n"); -- pci_set_dma_mask(pci_dev, saved_dma_mask); -+ dma_set_mask(&pci_dev->dev, saved_dma_mask); - goto done; - } - } --- -2.35.1 - - -From 689ede6109d1b8aef914809f290e75632c338b9f Mon Sep 17 00:00:00 2001 -From: Joan Bruguera -Date: Sat, 9 Apr 2022 19:42:24 +0200 -Subject: [PATCH] Buildfix NVIDIA 470.103.01 for Linux 5.18-rc2 - -acpi_bus_get_device was removed and its trivial replacement acpi_fetch_acpi_dev -is GPL-exported, so just disable ACPI support as I don't want to deal with it. ---- - nvidia/nv-acpi.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/kernel/nvidia/nv-acpi.c b/kernel/nvidia/nv-acpi.c -index faf8b44..22a9152 100644 ---- a/kernel/nvidia/nv-acpi.c -+++ b/kernel/nvidia/nv-acpi.c -@@ -16,7 +16,8 @@ - - #include - --#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) -+#include -+#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) && (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)) - static NV_STATUS nv_acpi_extract_integer (const union acpi_object *, void *, NvU32, NvU32 *); - static NV_STATUS nv_acpi_extract_buffer (const union acpi_object *, void *, NvU32, NvU32 *); - static NV_STATUS nv_acpi_extract_package (const union acpi_object *, void *, NvU32, NvU32 *); --- -2.35.1 - diff --git a/packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules b/packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules index 72190e390e..9fd0d4168d 100644 --- a/packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules +++ b/packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules @@ -298,6 +298,8 @@ ATTR{device}=="0x1fa0", GOTO="configure_nvidia" ATTR{device}=="0x1fb0", GOTO="configure_nvidia" ATTR{device}=="0x1fb1", GOTO="configure_nvidia" ATTR{device}=="0x1fb2", GOTO="configure_nvidia" +ATTR{device}=="0x1fb6", GOTO="configure_nvidia" +ATTR{device}=="0x1fb7", GOTO="configure_nvidia" ATTR{device}=="0x1fb8", GOTO="configure_nvidia" ATTR{device}=="0x1fb9", GOTO="configure_nvidia" ATTR{device}=="0x1fba", GOTO="configure_nvidia" @@ -326,9 +328,11 @@ ATTR{device}=="0x2191", GOTO="configure_nvidia" ATTR{device}=="0x2192", GOTO="configure_nvidia" ATTR{device}=="0x21c4", GOTO="configure_nvidia" ATTR{device}=="0x21d1", GOTO="configure_nvidia" +ATTR{device}=="0x2203", GOTO="configure_nvidia" ATTR{device}=="0x2204", GOTO="configure_nvidia" ATTR{device}=="0x2206", GOTO="configure_nvidia" ATTR{device}=="0x2208", GOTO="configure_nvidia" +ATTR{device}=="0x220a", GOTO="configure_nvidia" ATTR{device}=="0x220d", GOTO="configure_nvidia" ATTR{device}=="0x2216", GOTO="configure_nvidia" ATTR{device}=="0x2230", GOTO="configure_nvidia" @@ -337,6 +341,10 @@ ATTR{device}=="0x2232", GOTO="configure_nvidia" ATTR{device}=="0x2235", GOTO="configure_nvidia" ATTR{device}=="0x2236", GOTO="configure_nvidia" ATTR{device}=="0x2237", GOTO="configure_nvidia" +ATTR{device}=="0x2414", GOTO="configure_nvidia" +ATTR{device}=="0x2420", GOTO="configure_nvidia" +ATTR{device}=="0x2438", GOTO="configure_nvidia" +ATTR{device}=="0x2460", GOTO="configure_nvidia" ATTR{device}=="0x2482", GOTO="configure_nvidia" ATTR{device}=="0x2484", GOTO="configure_nvidia" ATTR{device}=="0x2486", GOTO="configure_nvidia" @@ -346,14 +354,21 @@ ATTR{device}=="0x2489", GOTO="configure_nvidia" ATTR{device}=="0x248a", GOTO="configure_nvidia" ATTR{device}=="0x249c", GOTO="configure_nvidia" ATTR{device}=="0x249d", GOTO="configure_nvidia" +ATTR{device}=="0x24a0", GOTO="configure_nvidia" ATTR{device}=="0x24b0", GOTO="configure_nvidia" ATTR{device}=="0x24b6", GOTO="configure_nvidia" ATTR{device}=="0x24b7", GOTO="configure_nvidia" ATTR{device}=="0x24b8", GOTO="configure_nvidia" +ATTR{device}=="0x24b9", GOTO="configure_nvidia" +ATTR{device}=="0x24ba", GOTO="configure_nvidia" +ATTR{device}=="0x24bb", GOTO="configure_nvidia" ATTR{device}=="0x24dc", GOTO="configure_nvidia" ATTR{device}=="0x24dd", GOTO="configure_nvidia" +ATTR{device}=="0x24e0", GOTO="configure_nvidia" +ATTR{device}=="0x24fa", GOTO="configure_nvidia" ATTR{device}=="0x2503", GOTO="configure_nvidia" ATTR{device}=="0x2504", GOTO="configure_nvidia" +ATTR{device}=="0x2507", GOTO="configure_nvidia" ATTR{device}=="0x2520", GOTO="configure_nvidia" ATTR{device}=="0x2523", GOTO="configure_nvidia" ATTR{device}=="0x2531", GOTO="configure_nvidia" @@ -368,9 +383,14 @@ ATTR{device}=="0x25a7", GOTO="configure_nvidia" ATTR{device}=="0x25a9", GOTO="configure_nvidia" ATTR{device}=="0x25b6", GOTO="configure_nvidia" ATTR{device}=="0x25b8", GOTO="configure_nvidia" +ATTR{device}=="0x25b9", GOTO="configure_nvidia" +ATTR{device}=="0x25ba", GOTO="configure_nvidia" +ATTR{device}=="0x25bb", GOTO="configure_nvidia" ATTR{device}=="0x25e0", GOTO="configure_nvidia" ATTR{device}=="0x25e2", GOTO="configure_nvidia" ATTR{device}=="0x25e5", GOTO="configure_nvidia" +ATTR{device}=="0x25f9", GOTO="configure_nvidia" +ATTR{device}=="0x25fa", GOTO="configure_nvidia" GOTO="configure_nvidia-legacy" LABEL="configure_nvidia"