diff options
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | PKGBUILD | 24 | ||||
-rw-r--r-- | fs62142.patch | 13 | ||||
-rw-r--r-- | kernel-4.16.patch | 33 | ||||
-rw-r--r-- | kernel-5.1.patch | 258 |
5 files changed, 281 insertions, 75 deletions
@@ -1,6 +1,6 @@ pkgbase = nvidia-vulkan pkgdesc = NVIDIA drivers for linux (vulkan developer branch) - pkgver = 418.52.05 + pkgver = 418.52.07 pkgrel = 1 url = https://developer.nvidia.com/vulkan-driver arch = x86_64 @@ -9,33 +9,31 @@ pkgbase = nvidia-vulkan makedepends = linux makedepends = linux-headers options = !strip - source = NVIDIA-Linux-x86_64-418.52.05.run::https://developer.nvidia.com/vulkan-beta-4185205-linux + source = NVIDIA-Linux-x86_64-418.52.07.run::https://developer.nvidia.com/vulkan-beta-4185207-linux source = nvidia-drm-outputclass.conf source = nvidia-vulkan-utils.sysusers - source = kernel-4.16.patch - source = fs62142.patch - sha512sums = be655efef38a1e67594acc2d6dfd77c66a8fa34bf8b6420a3b650f3b2b64e10cf0cceeb6b88d84a71996a98ae9d60475329595a9ff8836efa70e6b209a1c4747 + source = kernel-5.1.patch + sha512sums = 6ba43016a80400852231473897d656d53c481df986d511d293f42fb4aabf9b0a11551cbe33bacdfa9cf1a1954cb59594ed5b64a91dbbe4dc67b93d2ef7581089 sha512sums = c49d246a519731bfab9d22afa5c2dd2d366db06d80182738b84881e93cd697c783f16ee04819275c05597bb063451a5d6102fbc562cd078d2a374533a23cea48 sha512sums = 4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499 - sha512sums = ad1185d998adbf89abf7aea300e5b3bbabe2296016f42592fbc232a6c3983f233df1103d37f35a041f12cc1c722d3edce813a4a1b215784a49c7f0e3e652b5af - sha512sums = df949debf9fed92b3c58322c02685fb344bbfff2920557e7d55ed3f70559f48cd6199bc85e2af170b7e56797f3e9881a53eab8c411f21e75f5abec26eaa47752 + sha512sums = 62baa7602c658ac81effa6414bb1c32d59736c9d4d5095d06364a491f6c75e598dc9adb11aa72e06f1da4080a067c1ade94baa94bda1381964bb57fdf45eba00 pkgname = nvidia-vulkan pkgdesc = NVIDIA drivers for linux (vulkan developer branch) depends = linux - depends = nvidia-vulkan-utils=418.52.05 + depends = nvidia-vulkan-utils=418.52.07 depends = libglvnd - provides = nvidia=418.52.05 + provides = nvidia=418.52.07 conflicts = nvidia pkgname = nvidia-vulkan-dkms pkgdesc = NVIDIA driver sources for linux (vulkan developer branch) depends = dkms - depends = nvidia-vulkan-utils=418.52.05 + depends = nvidia-vulkan-utils=418.52.07 depends = libglvnd optdepends = linux-headers: Build the module for Arch kernel optdepends = linux-lts-headers: Build the module for LTS Arch kernel - provides = nvidia=418.52.05 + provides = nvidia=418.52.07 conflicts = nvidia pkgname = nvidia-vulkan-utils @@ -48,7 +46,7 @@ pkgname = nvidia-vulkan-utils optdepends = gtk3: nvidia-settings (GTK+ v3) optdepends = xorg-server-devel: nvidia-xconfig optdepends = opencl-nvidia-vulkan: OpenCL support - provides = nvidia-utils=418.52.05 + provides = nvidia-utils=418.52.07 provides = vulkan-driver provides = opengl-driver provides = nvidia-libgl @@ -63,7 +61,7 @@ pkgname = opencl-nvidia-vulkan depends = zlib optdepends = opencl-headers: headers necessary for OpenCL development provides = opencl-driver - provides = opencl-nvidia=418.52.05 + provides = opencl-nvidia=418.52.07 conflicts = opencl-nvidia pkgname = lib32-nvidia-vulkan-utils @@ -73,7 +71,7 @@ pkgname = lib32-nvidia-vulkan-utils depends = lib32-libglvnd depends = nvidia-vulkan-utils optdepends = lib32-opencl-nvidia-vulkan - provides = lib32-nvidia-utils=418.52.05 + provides = lib32-nvidia-utils=418.52.07 provides = lib32-vulkan-driver provides = lib32-opengl-driver provides = lib32-nvidia-libgl @@ -87,7 +85,7 @@ pkgname = lib32-opencl-nvidia-vulkan depends = lib32-gcc-libs optdepends = opencl-headers: headers necessary for OpenCL development provides = lib32-opencl-driver - provides = lib32-opencl-nvidia=418.52.05 + provides = lib32-opencl-nvidia=418.52.07 conflicts = lib32-opencl-nvidia conflicts = lib32-opencl-nvidia-390xx @@ -7,7 +7,7 @@ pkgbase=nvidia-vulkan pkgname=('nvidia-vulkan' 'nvidia-vulkan-dkms' 'nvidia-vulkan-utils' 'opencl-nvidia-vulkan' 'lib32-nvidia-vulkan-utils' 'lib32-opencl-nvidia-vulkan') -pkgver=418.52.05 +pkgver=418.52.07 _extramodules=extramodules-ARCH pkgrel=1 pkgdesc="NVIDIA drivers for linux (vulkan developer branch)" @@ -17,16 +17,14 @@ makedepends=('libglvnd' 'linux' 'linux-headers') license=('custom') options=('!strip') _pkg="NVIDIA-Linux-x86_64-${pkgver}" -source=("${_pkg}.run::https://developer.nvidia.com/vulkan-beta-4185205-linux" +source=("${_pkg}.run::https://developer.nvidia.com/vulkan-beta-4185207-linux" 'nvidia-drm-outputclass.conf' 'nvidia-vulkan-utils.sysusers' - 'kernel-4.16.patch' - 'fs62142.patch') -sha512sums=('be655efef38a1e67594acc2d6dfd77c66a8fa34bf8b6420a3b650f3b2b64e10cf0cceeb6b88d84a71996a98ae9d60475329595a9ff8836efa70e6b209a1c4747' + 'kernel-5.1.patch') +sha512sums=('6ba43016a80400852231473897d656d53c481df986d511d293f42fb4aabf9b0a11551cbe33bacdfa9cf1a1954cb59594ed5b64a91dbbe4dc67b93d2ef7581089' 'c49d246a519731bfab9d22afa5c2dd2d366db06d80182738b84881e93cd697c783f16ee04819275c05597bb063451a5d6102fbc562cd078d2a374533a23cea48' '4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499' - 'ad1185d998adbf89abf7aea300e5b3bbabe2296016f42592fbc232a6c3983f233df1103d37f35a041f12cc1c722d3edce813a4a1b215784a49c7f0e3e652b5af' - 'df949debf9fed92b3c58322c02685fb344bbfff2920557e7d55ed3f70559f48cd6199bc85e2af170b7e56797f3e9881a53eab8c411f21e75f5abec26eaa47752') + '62baa7602c658ac81effa6414bb1c32d59736c9d4d5095d06364a491f6c75e598dc9adb11aa72e06f1da4080a067c1ade94baa94bda1381964bb57fdf45eba00') create_links() { # create soname links @@ -42,17 +40,15 @@ prepare() { sh "${_pkg}.run" --extract-only cd "${_pkg}" - # Restore phys_to_dma support (still needed for 396.18) - # https://bugs.archlinux.org/task/58074 - patch -Np1 -i ../kernel-4.16.patch - - # Fix https://bugs.archlinux.org/task/62142 - patch -Np1 -i ../fs62142.patch - bsdtar -xf nvidia-persistenced-init.tar.bz2 sed -i 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' nvidia_icd.json.template + # Patch adapted from TK Glitch's repo - https://github.com/Tk-Glitch/PKGBUILDS/tree/master/nvidia-all/patches + patch -Np1 -i ../kernel-5.1.patch + + sed -i "s/static int nv_drm_vma_fault(struct vm_fault \*vmf)/#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)\nstatic int nv_drm_vma_fault(struct vm_fault \*vmf)\n#else\nstatic vm_fault_t nv_drm_vma_fault(struct vm_fault \*vmf)\n#endif/g" kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c + cp -a kernel kernel-dkms cd kernel-dkms sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf diff --git a/fs62142.patch b/fs62142.patch deleted file mode 100644 index 04806bd8d15..00000000000 --- a/fs62142.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/kernel/nvidia/nv-dma.c b/kernel/nvidia/nv-dma.c -index 73cdeed..e691014 100644 ---- a/kernel/nvidia/nv-dma.c -+++ b/kernel/nvidia/nv-dma.c -@@ -606,7 +606,7 @@ static NvBool nv_dma_is_map_resource_implemented - #if defined(NV_DMA_MAP_RESOURCE_PRESENT) - const struct dma_map_ops *ops = get_dma_ops(&nvl->dev->dev); - -- return (ops->map_resource != NULL); -+ return (ops && ops->map_resource); - #else - return NV_FALSE; - #endif diff --git a/kernel-4.16.patch b/kernel-4.16.patch deleted file mode 100644 index 67172815ff6..00000000000 --- a/kernel-4.16.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h -index 10fc418..22ef968 100644 ---- a/kernel/common/inc/nv-linux.h -+++ b/kernel/common/inc/nv-linux.h -@@ -175,7 +175,11 @@ static inline uid_t __kuid_val(kuid_t uid) - - #if defined(NV_VM_INSERT_PAGE_PRESENT) - #include <linux/pagemap.h> -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0) - #include <linux/dma-mapping.h> -+#else -+#include <linux/dma-direct.h> -+#endif - #endif - - #if defined(CONFIG_SWIOTLB) && defined(NVCPU_AARCH64) -diff --git a/kernel/conftest.sh b/kernel/conftest.sh -index b23dbb4..42dc576 100755 ---- a/kernel/conftest.sh -+++ b/kernel/conftest.sh -@@ -1906,7 +1906,12 @@ compile_test() { - # Determine if the phys_to_dma function is present. - # - CODE=" -+ #include <linux/version.h> -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0) - #include <linux/dma-mapping.h> -+#else -+ #include <linux/dma-direct.h> -+#endif - void conftest_phys_to_dma(void) { - phys_to_dma(); - }" diff --git a/kernel-5.1.patch b/kernel-5.1.patch new file mode 100644 index 00000000000..0a51ea69582 --- /dev/null +++ b/kernel-5.1.patch @@ -0,0 +1,258 @@ +diff --git a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c +index 1db7777..863bb77 100644 +--- a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c ++++ b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c +@@ -20,6 +20,8 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#include <linux/version.h> ++ + #include "nvidia-drm-conftest.h" + + #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) + +diff --git a/kernel/nvidia-drm/nvidia-drm-encoder.c b/kernel/nvidia-drm/nvidia-drm-encoder.c +index f66bbd7c9..4de87a271 100644 +--- a/kernel/nvidia-drm/nvidia-drm-encoder.c ++++ b/kernel/nvidia-drm/nvidia-drm-encoder.c +@@ -20,6 +20,8 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#include <linux/version.h> ++ + #include "nvidia-drm-conftest.h" /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ + + #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) + +diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c +index 58fd2724a..fc9169a96 100644 +--- a/kernel/nvidia-drm/nvidia-drm-drv.c ++++ b/kernel/nvidia-drm/nvidia-drm-drv.c +@@ -20,6 +20,8 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#include <linux/version.h> ++ + #include "nvidia-drm-conftest.h" /* NV_DRM_AVAILABLE and NV_DRM_DRM_GEM_H_PRESENT */ + + #include "nvidia-drm-priv.h" + +diff --git a/kernel/nvidia-drm/nvidia-drm-connector.c b/kernel/nvidia-drm/nvidia-drm-connector.c +index 4dd12d112..44c9d8ed3 100644 +--- a/kernel/nvidia-drm/nvidia-drm-connector.c ++++ b/kernel/nvidia-drm/nvidia-drm-connector.c +@@ -20,6 +20,8 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#include <linux/version.h> ++ + #include "nvidia-drm-conftest.h" /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ + + #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) + +diff --git a/kernel/common/inc/nv.h b/kernel/common/inc/nv.h +index d52c2a1ef..f6dc2dc32 100644 +--- a/kernel/common/inc/nv.h ++++ b/kernel/common/inc/nv.h +@@ -18,6 +18,8 @@ + #include <stdarg.h> + #include <nv-kernel-interface-api.h> + ++#include <linux/version.h> ++ + #if !defined(NV_MIN) + #define NV_MIN(_a,_b) ((_a) < (_b) ? (_a) : (_b)) + #endif + +diff --git a/kernel/nvidia-drm/nvidia-drm-gem.h b/kernel/nvidia-drm/nvidia-drm-gem.h +index f276588db..7cbdbe632 100644 +--- a/kernel/nvidia-drm/nvidia-drm-gem.h ++++ b/kernel/nvidia-drm/nvidia-drm-gem.h +@@ -38,6 +38,8 @@ + + #endif + ++#include <linux/version.h> ++ + struct nv_drm_gem_object; + + struct nv_drm_gem_object_funcs { + +diff --git a/kernel/nvidia-drm/nvidia-drm-helper.c b/kernel/nvidia-drm/nvidia-drm-helper.c +index 4ccf81929..7fb59bbb3 100644 +--- a/kernel/nvidia-drm/nvidia-drm-helper.c ++++ b/kernel/nvidia-drm/nvidia-drm-helper.c +@@ -29,6 +29,8 @@ + + #include "nvidia-drm-helper.h" + ++#include <linux/version.h> ++ + #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) + + #include <drm/drmP.h> + +diff --git a/kernel/nvidia-drm/nvidia-drm-linux.c b/kernel/nvidia-drm/nvidia-drm-linux.c +index 5a2bbc18c..133d8fe64 100644 +--- a/kernel/nvidia-drm/nvidia-drm-linux.c ++++ b/kernel/nvidia-drm/nvidia-drm-linux.c +@@ -20,6 +20,8 @@ + * DEALINGS IN THE SOFTWARE. + */ + ++#include <linux/version.h> ++ + #include <linux/module.h> + #include <linux/slab.h> + #include <linux/err.h> + +diff --git a/kernel/nvidia-uvm/uvm_linux.h b/kernel/nvidia-uvm/uvm_linux.h +index 8707ac070..990cefbd4 100644 +--- a/kernel/nvidia-uvm/uvm_linux.h ++++ b/kernel/nvidia-uvm/uvm_linux.h +@@ -29,6 +29,8 @@ + // + // + ++#include <linux/version.h> ++ + #ifndef _UVM_LINUX_H + #define _UVM_LINUX_H + +diff --git a/kernel/nvidia/nvlink_linux.c b/kernel/nvidia/nvlink_linux.c +index c13b72515..db691679c 100644 +--- a/kernel/nvidia/nvlink_linux.c ++++ b/kernel/nvidia/nvlink_linux.c +@@ -37,6 +37,8 @@ + #include <linux/string.h> + #include <linux/mutex.h> + ++#include <linux/version.h> ++ + #define MAX_ERROR_STRING 512 + + #define NV_MAX_ISR_DELAY_US 20000 + +diff --git a/kernel/nvidia/os-interface.c b/kernel/nvidia/os-interface.c +index d1c889f69..88c57b2da 100644 +--- a/kernel/nvidia/os-interface.c ++++ b/kernel/nvidia/os-interface.c +@@ -14,6 +14,8 @@ + #include "os-interface.h" + #include "nv-linux.h" + ++#include <linux/version.h> ++ + #define MAX_ERROR_STRING 512 + static char nv_error_string[MAX_ERROR_STRING]; + nv_spinlock_t nv_error_string_lock; + +diff --git a/kernel/nvidia-modeset/nvidia-modeset-linux.c b/kernel/nvidia-modeset/nvidia-modeset-linux.c +index 1b9148ee7..4c1bd3617 100644 +--- a/kernel/nvidia-modeset/nvidia-modeset-linux.c ++++ b/kernel/nvidia-modeset/nvidia-modeset-linux.c +@@ -8,6 +8,8 @@ + * _NVRM_COPYRIGHT_END_ + */ + ++#include <linux/version.h> ++ + #include <linux/module.h> + #include <linux/kernel.h> + #include <linux/slab.h> + +diff --git a/kernel/nvidia-drm/nvidia-drm-connector.c b/kernel/nvidia-drm/nvidia-drm-connector.c +index 4dd12d112..44c9d8ed3 100644 +--- a/kernel/nvidia-drm/nvidia-drm-connector.c ++++ b/kernel/nvidia-drm/nvidia-drm-connector.c +@@ -201,6 +203,12 @@ nv_drm_connector_detect(struct drm_connector *connector, bool force) + return __nv_drm_connector_detect_internal(connector); + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) ++int drm_helper_probe_single_connector_modes(struct drm_connector ++ *connector, uint32_t maxX, ++ uint32_t maxY); ++#endif ++ + static struct drm_connector_funcs nv_connector_funcs = { + #if defined NV_DRM_ATOMIC_HELPER_CONNECTOR_DPMS_PRESENT + .dpms = drm_atomic_helper_connector_dpms, +diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c +index 58fd2724a..fc9169a96 100644 +--- a/kernel/nvidia-drm/nvidia-drm-drv.c ++++ b/kernel/nvidia-drm/nvidia-drm-drv.c +@@ -35,6 +37,13 @@ + #include "nvidia-drm-gem-nvkms-memory.h" + #include "nvidia-drm-gem-user-memory.h" + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) ++void drm_kms_helper_poll_init(struct drm_device *dev); ++void drm_kms_helper_poll_fini(struct drm_device *dev); ++bool drm_helper_hpd_irq_event(struct drm_device *dev); ++void drm_kms_helper_poll_disable(struct drm_device *dev); ++#endif ++ + #if defined(NV_DRM_AVAILABLE) + + #include "nvidia-drm-ioctl.h" +diff --git a/kernel/nvidia-drm/nvidia-drm-encoder.c b/kernel/nvidia-drm/nvidia-drm-encoder.c +index f66bbd7c9..4de87a271 100644 +--- a/kernel/nvidia-drm/nvidia-drm-encoder.c ++++ b/kernel/nvidia-drm/nvidia-drm-encoder.c +@@ -36,6 +38,10 @@ + #include <drm/drm_atomic.h> + #include <drm/drm_atomic_helper.h> + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) ++void drm_kms_helper_hotplug_event(struct drm_device *dev); ++#endif ++ + static void nv_drm_encoder_destroy(struct drm_encoder *encoder) + { + struct nv_drm_encoder *nv_encoder = to_nv_encoder(encoder); +@@ -152,6 +158,12 @@ nv_drm_encoder_new(struct drm_device *dev, + return &nv_encoder->base; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0) ++int drm_helper_probe_single_connector_modes(struct drm_connector ++ *connector, uint32_t maxX, ++ uint32_t maxY); ++#endif ++ + /* + * Add encoder for given NvKmsKapiDisplay + */ +diff --git a/kernel/nvidia-uvm/uvm8.c b/kernel/nvidia-uvm/uvm8.c +index 44467988e..4cba5dc33 100644 +--- a/kernel/nvidia-uvm/uvm8.c ++++ b/kernel/nvidia-uvm/uvm8.c +@@ -172,7 +172,11 @@ static int uvm_vm_fault_sigbus(struct vm_area_struct *vma, struct vm_fault *vmf) + return VM_FAULT_SIGBUS; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) + static int uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) ++#else ++static vm_fault_t uvm_vm_fault_sigbus_wrapper(struct vm_fault *vmf) ++#endif + { + #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) + return uvm_vm_fault_sigbus(vmf->vma, vmf); +@@ -507,7 +511,11 @@ convert_error: + } + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) + static int uvm_vm_fault_wrapper(struct vm_fault *vmf) ++#else ++static vm_fault_t uvm_vm_fault_wrapper(struct vm_fault *vmf) ++#endif + { + #if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG) + return uvm_vm_fault(vmf->vma, vmf); |