summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO28
-rw-r--r--PKGBUILD24
-rw-r--r--fs62142.patch13
-rw-r--r--kernel-4.16.patch33
-rw-r--r--kernel-5.1.patch258
5 files changed, 281 insertions, 75 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 882e3448100..5d797352576 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 9589ec5be8f..1644c0e3501 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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);