summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorwhoseos2017-06-21 00:32:53 +0200
committerwhoseos2017-06-21 00:36:15 +0200
commitb982b01a0f17ea32ac2c687241945fdecf059e29 (patch)
tree3eab796350b5688fab431c941d692f5b4a56991f
parent208afbfd0b1922424409b5a0415a0b5abdfb71c5 (diff)
downloadaur-b982b01a0f17ea32ac2c687241945fdecf059e29.tar.gz
Merge changes from nvidia-beta and update to latest vulkan developer driver 381.26.03
-rw-r--r--.SRCINFO20
-rw-r--r--.gitignore2
-rw-r--r--PKGBUILD20
-rw-r--r--linux-4.10.patch349
-rw-r--r--linux-4.11.patch24
-rw-r--r--nvidia-vulkan-developer-beta.install3
6 files changed, 48 insertions, 370 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 32bb060f82fe..bfd3d7966cb0 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = nvidia-vulkan-developer-beta
pkgdesc = NVIDIA driver for Arch's official 'linux' package (vulkan developer beta version)
- pkgver = 375.27.15
- pkgrel = 2
+ pkgver = 381.26.03
+ pkgrel = 1
url = http://www.nvidia.com/
install = nvidia-vulkan-developer-beta.install
arch = i686
@@ -9,19 +9,19 @@ pkgbase = nvidia-vulkan-developer-beta
license = custom:NVIDIA
makedepends = linux-headers
depends = linux
- depends = nvidia-utils-vulkan-developer-beta>=375.27.15
+ depends = nvidia-utils-vulkan-developer-beta>=381.26.03
depends = libgl
- provides = nvidia=375.27.15
+ provides = nvidia=381.26.03
conflicts = nvidia-96xx
conflicts = nvidia-173xx
conflicts = nvidia
options = !strip
- source = linux-4.10.patch
- md5sums = SKIP
- source_i686 = https://developer.nvidia.com/linux-3752715-32-bit
- md5sums_i686 = 0a2e0a05ed1f5babba47b5d301a4e8fa
- source_x86_64 = https://developer.nvidia.com/linux-3752715-64-bit
- md5sums_x86_64 = a1f786592c91c97d654fec4e84e31e56
+ source = linux-4.11.patch
+ md5sums = cc8941b6898d9daa0fb67371f57a56b6
+ source_i686 = https://developer.nvidia.com/3812603-linux-32bit
+ md5sums_i686 = 07d6373f9d2672afacf11be1060bebb6
+ source_x86_64 = https://developer.nvidia.com/3812603-linux-64bit
+ md5sums_x86_64 = b41bddbe1a613f3c3a07591a276f3202
pkgname = nvidia-vulkan-developer-beta
diff --git a/.gitignore b/.gitignore
index 025e1f093b20..9e507ba7e169 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,4 @@
!PKGBUILD
!.SRCINFO
!nvidia-vulkan-developer-beta.install
-!linux-4.10.patch
+!linux-4.11.patch
diff --git a/PKGBUILD b/PKGBUILD
index 88f1d34b335e..817989bb2935 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,8 +3,8 @@
# Based on [aur]'s nvidia-beta: https://aur.archlinux.org/packages/nvidia-beta/
pkgname=nvidia-vulkan-developer-beta
-pkgver=375.27.15
-pkgrel=2
+pkgver=381.26.03
+pkgrel=1
pkgdesc="NVIDIA driver for Arch's official 'linux' package (vulkan developer beta version)"
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
@@ -18,15 +18,17 @@ install=$pkgname.install
# Installer name
case "$CARCH" in
- i686) _pkg="linux-375271532bit"; _pkg_dir="NVIDIA-Linux-x86_64-$pkgver" ;;
- x86_64) _pkg="linux-3752715-64-bit"; _pkg_dir="NVIDIA-Linux-x86_64-$pkgver" ;;
+ i686) _pkg="${pkgver//./}-linux-32bit"; _pkg_dir="NVIDIA-Linux-x86-$pkgver" ;;
+ x86_64) _pkg="${pkgver//./}-linux-64bit"; _pkg_dir="NVIDIA-Linux-x86_64-$pkgver" ;;
esac
# Source
-source_i686=("https://developer.nvidia.com/linux-3752715-32-bit")
-source_x86_64=("https://developer.nvidia.com/linux-3752715-64-bit")
-md5sums_i686=('0a2e0a05ed1f5babba47b5d301a4e8fa')
-md5sums_x86_64=('a1f786592c91c97d654fec4e84e31e56')
+source=('linux-4.11.patch')
+source_i686=("https://developer.nvidia.com/${pkgver//./}-linux-32bit")
+source_x86_64=("https://developer.nvidia.com/${pkgver//./}-linux-64bit")
+md5sums=('cc8941b6898d9daa0fb67371f57a56b6')
+md5sums_i686=('07d6373f9d2672afacf11be1060bebb6')
+md5sums_x86_64=('b41bddbe1a613f3c3a07591a276f3202')
# Auto-detect patches (e.g. linux-4.1.patch)
for _patch in $(find "$startdir" -maxdepth 1 -name '*.patch' -printf "%f\n"); do
@@ -57,7 +59,7 @@ prepare() {
# Check version
if (( $(vercmp $_kernel $_major_patch) >= 0 )); then
msg2 "Applying $_patch..."
- patch -p0 -i "$_patch"
+ patch -p1 -i "$_patch"
fi
done
}
diff --git a/linux-4.10.patch b/linux-4.10.patch
deleted file mode 100644
index 34e1848ca49a..000000000000
--- a/linux-4.10.patch
+++ /dev/null
@@ -1,349 +0,0 @@
-diff -ruN kernel/common/inc/nv-linux.h patched/kernel/common/inc/nv-linux.h
---- kernel/common/inc/nv-linux.h 2017-03-27 07:29:12.000000000 +0200
-+++ patched/kernel/common/inc/nv-linux.h 2017-04-01 23:33:38.000000000 +0200
-@@ -294,7 +294,8 @@
-
- extern int nv_pat_mode;
-
--#if defined(CONFIG_HOTPLUG_CPU)
-+//#if defined(CONFIG_HOTPLUG_CPU)
-+#if 0
- #define NV_ENABLE_HOTPLUG_CPU
- #include <linux/cpu.h> /* CPU hotplug support */
- #include <linux/notifier.h> /* struct notifier_block, etc */
-diff -ruN kernel/common/inc/nv-mm.h patched/kernel/common/inc/nv-mm.h
---- kernel/common/inc/nv-mm.h 2017-03-27 07:29:12.000000000 +0200
-+++ patched/kernel/common/inc/nv-mm.h 2017-04-02 00:07:18.944754358 +0200
-@@ -83,7 +83,7 @@
- if (force)
- flags |= FOLL_FORCE;
-
-- return get_user_pages_remote(tsk, mm, start, nr_pages, flags, pages, vmas);
-+ return get_user_pages_remote(tsk, mm, start, nr_pages, flags, pages, vmas, NULL);
- }
- #endif
- #else
-diff -ruN kernel/nvidia/nv-p2p.c patched/kernel/nvidia/nv-p2p.c
---- kernel/nvidia/nv-p2p.c 2017-03-27 07:29:12.000000000 +0200
-+++ patched/kernel/nvidia/nv-p2p.c 2017-04-01 23:37:19.000000000 +0200
-@@ -146,7 +146,7 @@
- int nvidia_p2p_get_pages(
- uint64_t p2p_token,
- uint32_t va_space,
-- uint64_t virtual_address,
-+ uint64_t address,
- uint64_t length,
- struct nvidia_p2p_page_table **page_table,
- void (*free_callback)(void * data),
-@@ -211,7 +211,7 @@
- }
-
- status = rm_p2p_get_pages(sp, p2p_token, va_space,
-- virtual_address, length, physical_addresses, wreqmb_h,
-+ address, length, physical_addresses, wreqmb_h,
- rreqmb_h, &entries, &gpu_uuid, *page_table,
- free_callback, data);
- if (status != NV_OK)
-@@ -286,7 +286,7 @@
-
- if (bGetPages)
- {
-- rm_p2p_put_pages(sp, p2p_token, va_space, virtual_address,
-+ rm_p2p_put_pages(sp, p2p_token, va_space, address,
- gpu_uuid, *page_table);
- }
-
-@@ -329,7 +329,7 @@
- int nvidia_p2p_put_pages(
- uint64_t p2p_token,
- uint32_t va_space,
-- uint64_t virtual_address,
-+ uint64_t address,
- struct nvidia_p2p_page_table *page_table
- )
- {
-@@ -343,7 +343,7 @@
- return rc;
- }
-
-- status = rm_p2p_put_pages(sp, p2p_token, va_space, virtual_address,
-+ status = rm_p2p_put_pages(sp, p2p_token, va_space, address,
- page_table->gpu_uuid, page_table);
- if (status == NV_OK)
- nvidia_p2p_free_page_table(page_table);
-diff -ruN kernel/nvidia/nv-pat.c patched/kernel/nvidia/nv-pat.c
---- kernel/nvidia/nv-pat.c 2017-03-27 07:29:12.000000000 +0200
-+++ patched/kernel/nvidia/nv-pat.c 2017-04-01 23:38:47.000000000 +0200
-@@ -217,7 +217,7 @@
- else
- NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, hcpu, 1);
- break;
-- case CPU_DOWN_PREPARE:
-+ case CPU_DOWN_PREPARE_FROZEN:
- if (cpu == (NvUPtr)hcpu)
- nv_restore_pat_entries(NULL);
- else
-diff -ruN kernel/nvidia-drm/nvidia-drm-fence.c patched/kernel/nvidia-drm/nvidia-drm-fence.c
---- kernel/nvidia-drm/nvidia-drm-fence.c 2017-03-27 07:35:50.000000000 +0200
-+++ patched/kernel/nvidia-drm/nvidia-drm-fence.c 2017-04-01 23:59:26.000000000 +0200
-@@ -31,7 +31,7 @@
-
- #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
- struct nv_fence {
-- struct fence base;
-+ struct dma_fence base;
- spinlock_t lock;
-
- struct nvidia_drm_device *nv_dev;
-@@ -51,7 +51,7 @@
-
- static const char *nvidia_drm_gem_prime_fence_op_get_driver_name
- (
-- struct fence *fence
-+ struct dma_fence *fence
- )
- {
- return "NVIDIA";
-@@ -59,7 +59,7 @@
-
- static const char *nvidia_drm_gem_prime_fence_op_get_timeline_name
- (
-- struct fence *fence
-+ struct dma_fence *fence
- )
- {
- return "nvidia.prime";
-@@ -67,7 +67,7 @@
-
- static bool nvidia_drm_gem_prime_fence_op_signaled
- (
-- struct fence *fence
-+ struct dma_fence *fence
- )
- {
- struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
-@@ -99,7 +99,7 @@
-
- static bool nvidia_drm_gem_prime_fence_op_enable_signaling
- (
-- struct fence *fence
-+ struct dma_fence *fence
- )
- {
- bool ret = true;
-@@ -107,7 +107,7 @@
- struct nvidia_drm_gem_object *nv_gem = nv_fence->nv_gem;
- struct nvidia_drm_device *nv_dev = nv_fence->nv_dev;
-
-- if (fence_is_signaled(fence))
-+ if (dma_fence_is_signaled(fence))
- {
- return false;
- }
-@@ -132,7 +132,7 @@
- }
-
- nv_gem->fenceContext.softFence = fence;
-- fence_get(fence);
-+ dma_fence_get(fence);
-
- unlock_struct_mutex:
- mutex_unlock(&nv_dev->dev->struct_mutex);
-@@ -142,7 +142,7 @@
-
- static void nvidia_drm_gem_prime_fence_op_release
- (
-- struct fence *fence
-+ struct dma_fence *fence
- )
- {
- struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
-@@ -151,7 +151,7 @@
-
- static signed long nvidia_drm_gem_prime_fence_op_wait
- (
-- struct fence *fence,
-+ struct dma_fence *fence,
- bool intr,
- signed long timeout
- )
-@@ -166,12 +166,12 @@
- * that it should never get hit during normal operation, but not so long
- * that the system becomes unresponsive.
- */
-- return fence_default_wait(fence, intr,
-+ return dma_fence_default_wait(fence, intr,
- (timeout == MAX_SCHEDULE_TIMEOUT) ?
- msecs_to_jiffies(96) : timeout);
- }
-
--static const struct fence_ops nvidia_drm_gem_prime_fence_ops = {
-+static const struct dma_fence_ops nvidia_drm_gem_prime_fence_ops = {
- .get_driver_name = nvidia_drm_gem_prime_fence_op_get_driver_name,
- .get_timeline_name = nvidia_drm_gem_prime_fence_op_get_timeline_name,
- .signaled = nvidia_drm_gem_prime_fence_op_signaled,
-@@ -281,7 +281,7 @@
- bool force
- )
- {
-- struct fence *fence = nv_gem->fenceContext.softFence;
-+ struct dma_fence *fence = nv_gem->fenceContext.softFence;
-
- WARN_ON(!mutex_is_locked(&nv_dev->dev->struct_mutex));
-
-@@ -297,10 +297,10 @@
-
- if (force || nv_fence_ready_to_signal(nv_fence))
- {
-- fence_signal(&nv_fence->base);
-+ dma_fence_signal(&nv_fence->base);
-
- nv_gem->fenceContext.softFence = NULL;
-- fence_put(&nv_fence->base);
-+ dma_fence_put(&nv_fence->base);
-
- nvKms->disableChannelEvent(nv_dev->pDevice,
- nv_gem->fenceContext.cb);
-@@ -316,7 +316,7 @@
-
- nv_fence = container_of(fence, struct nv_fence, base);
-
-- fence_signal(&nv_fence->base);
-+ dma_fence_signal(&nv_fence->base);
- }
- }
-
-@@ -509,7 +509,7 @@
- * fence_context_alloc() cannot fail, so we do not need to check a return
- * value.
- */
-- nv_gem->fenceContext.context = fence_context_alloc(1);
-+ nv_gem->fenceContext.context = dma_fence_context_alloc(1);
-
- ret = nvidia_drm_gem_prime_fence_import_semaphore(
- nv_dev, nv_gem, p->index,
-@@ -666,13 +666,13 @@
- nv_fence->nv_gem = nv_gem;
-
- spin_lock_init(&nv_fence->lock);
-- fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
-+ dma_fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
- &nv_fence->lock, nv_gem->fenceContext.context,
- p->sem_thresh);
-
- reservation_object_add_excl_fence(&nv_gem->fenceContext.resv,
- &nv_fence->base);
-- fence_put(&nv_fence->base); /* Reservation object has reference */
-+ dma_fence_put(&nv_fence->base); /* Reservation object has reference */
-
- ret = 0;
-
-diff -ruN kernel/nvidia-drm/nvidia-drm-gem.h patched/kernel/nvidia-drm/nvidia-drm-gem.h
---- kernel/nvidia-drm/nvidia-drm-gem.h 2017-03-27 07:35:50.000000000 +0200
-+++ patched/kernel/nvidia-drm/nvidia-drm-gem.h 2017-04-01 23:44:43.000000000 +0200
-@@ -98,7 +98,7 @@
- /* Software signaling structures */
- struct NvKmsKapiChannelEvent *cb;
- struct nvidia_drm_gem_prime_soft_fence_event_args *cbArgs;
-- struct fence *softFence; /* Fence for software signaling */
-+ struct dma_fence *softFence; /* Fence for software signaling */
- } fenceContext;
- #endif
- };
-diff -ruN kernel/nvidia-drm/nvidia-drm-modeset.c patched/kernel/nvidia-drm/nvidia-drm-modeset.c
---- kernel/nvidia-drm/nvidia-drm-modeset.c 2017-03-27 07:35:50.000000000 +0200
-+++ patched/kernel/nvidia-drm/nvidia-drm-modeset.c 2017-04-01 23:46:30.000000000 +0200
-@@ -69,8 +69,7 @@
-
- void nvidia_drm_atomic_state_free(struct drm_atomic_state *state)
- {
-- struct nvidia_drm_atomic_state *nv_state =
-- to_nv_atomic_state(state);
-+ struct nvidia_drm_atomic_state *nv_state = to_nv_atomic_state(state);
- drm_atomic_state_default_release(state);
- nvidia_drm_free(nv_state);
- }
-@@ -645,7 +644,7 @@
-
- wake_up_all(&nv_dev->pending_commit_queue);
-
-- drm_atomic_state_free(state);
-+ drm_atomic_state_put(state);
-
- #if !defined(NV_DRM_MODE_CONFIG_FUNCS_HAS_ATOMIC_STATE_ALLOC)
- nvidia_drm_free(requested_config);
-@@ -983,7 +982,7 @@
- * drm_atomic_commit().
- */
- if (ret != 0) {
-- drm_atomic_state_free(state);
-+ drm_atomic_state_put(state);
- }
-
- drm_modeset_unlock_all(dev);
-diff -ruN kernel/nvidia-drm/nvidia-drm-priv.h patched/kernel/nvidia-drm/nvidia-drm-priv.h
---- kernel/nvidia-drm/nvidia-drm-priv.h 2017-03-27 07:35:50.000000000 +0200
-+++ patched/kernel/nvidia-drm/nvidia-drm-priv.h 2017-04-01 23:47:06.000000000 +0200
-@@ -34,7 +34,7 @@
- #endif
-
- #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
--#include <linux/fence.h>
-+#include <linux/dma-fence.h>
- #include <linux/reservation.h>
- #endif
-
-diff -ruN kernel/nvidia-uvm/uvm8.c patched/kernel/nvidia-uvm/uvm8.c
---- kernel/nvidia-uvm/uvm8.c 2017-03-27 07:33:07.000000000 +0200
-+++ patched/kernel/nvidia-uvm/uvm8.c 2017-04-01 23:48:44.000000000 +0200
-@@ -101,7 +101,7 @@
- // so we force it to fail instead.
- static int uvm_vm_fault_sigbus(struct vm_area_struct *vma, struct vm_fault *vmf)
- {
-- UVM_DBG_PRINT_RL("Fault to address 0x%p in disabled vma\n", vmf->virtual_address);
-+ UVM_DBG_PRINT_RL("Fault to address 0x%p in disabled vma\n", vmf->address);
- vmf->page = NULL;
- return VM_FAULT_SIGBUS;
- }
-@@ -315,7 +315,7 @@
- {
- uvm_va_space_t *va_space = uvm_va_space_get(vma->vm_file);
- uvm_va_block_t *va_block;
-- NvU64 fault_addr = (NvU64)(uintptr_t)vmf->virtual_address;
-+ NvU64 fault_addr = (NvU64)(uintptr_t)vmf->address;
- bool is_write = vmf->flags & FAULT_FLAG_WRITE;
- NV_STATUS status = uvm_global_get_status();
- bool tools_enabled;
-diff -ruN kernel/nvidia-uvm/uvm8_test.c patched/kernel/nvidia-uvm/uvm8_test.c
---- kernel/nvidia-uvm/uvm8_test.c 2017-03-27 07:33:07.000000000 +0200
-+++ patched/kernel/nvidia-uvm/uvm8_test.c 2017-04-01 23:49:34.000000000 +0200
-@@ -103,7 +103,7 @@
- return NV_ERR_INVALID_STATE;
- }
-
--static NV_STATUS uvm8_test_get_kernel_virtual_address(
-+static NV_STATUS uvm8_test_get_kernel_address(
- UVM_TEST_GET_KERNEL_VIRTUAL_ADDRESS_PARAMS *params,
- struct file *filp)
- {
-@@ -173,7 +173,7 @@
- UVM_ROUTE_CMD_STACK(UVM_TEST_RANGE_GROUP_RANGE_COUNT, uvm8_test_range_group_range_count);
- UVM_ROUTE_CMD_STACK(UVM_TEST_GET_PREFETCH_FAULTS_REENABLE_LAPSE, uvm8_test_get_prefetch_faults_reenable_lapse);
- UVM_ROUTE_CMD_STACK(UVM_TEST_SET_PREFETCH_FAULTS_REENABLE_LAPSE, uvm8_test_set_prefetch_faults_reenable_lapse);
-- UVM_ROUTE_CMD_STACK(UVM_TEST_GET_KERNEL_VIRTUAL_ADDRESS, uvm8_test_get_kernel_virtual_address);
-+ UVM_ROUTE_CMD_STACK(UVM_TEST_GET_KERNEL_VIRTUAL_ADDRESS, uvm8_test_get_kernel_address);
- UVM_ROUTE_CMD_STACK(UVM_TEST_PMA_ALLOC_FREE, uvm8_test_pma_alloc_free);
- UVM_ROUTE_CMD_STACK(UVM_TEST_PMM_ALLOC_FREE_ROOT, uvm8_test_pmm_alloc_free_root);
- UVM_ROUTE_CMD_STACK(UVM_TEST_PMM_INJECT_PMA_EVICT_ERROR, uvm8_test_pmm_inject_pma_evict_error);
-diff -ruN kernel/nvidia-uvm/uvm_lite.c patched/kernel/nvidia-uvm/uvm_lite.c
---- kernel/nvidia-uvm/uvm_lite.c 2017-03-27 07:33:08.000000000 +0200
-+++ patched/kernel/nvidia-uvm/uvm_lite.c 2017-04-01 23:50:17.000000000 +0200
-@@ -1333,7 +1333,7 @@
- #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
- int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
- {
-- unsigned long vaddr = (unsigned long)vmf->virtual_address;
-+ unsigned long vaddr = (unsigned long)vmf->address;
- struct page *page = NULL;
- int retval;
-
diff --git a/linux-4.11.patch b/linux-4.11.patch
new file mode 100644
index 000000000000..dd6e508cfea2
--- /dev/null
+++ b/linux-4.11.patch
@@ -0,0 +1,24 @@
+--- 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>
+@@ -196,7 +198,11 @@
+ module_exit(nv_linux_drm_exit);
+
+ #if defined(MODULE_LICENSE)
++#if LINUX_VERSION_CODE > KERNEL_VERSION(4, 10, 0)
++ MODULE_LICENSE("Dual MIT/GPL");
++#else
+ MODULE_LICENSE("MIT");
++#endif
+ #endif
+ #if defined(MODULE_INFO)
+ MODULE_INFO(supported, "external");
+
diff --git a/nvidia-vulkan-developer-beta.install b/nvidia-vulkan-developer-beta.install
index 99a13f0b63c6..ca513095a043 100644
--- a/nvidia-vulkan-developer-beta.install
+++ b/nvidia-vulkan-developer-beta.install
@@ -1,5 +1,6 @@
_depmod() {
- _extramodules='extramodules-4.10-ARCH'
+ # This gets auto-updated during build
+ _extramodules='extramodules-4.11-ARCH'
# Update module dependencies
depmod $(cat /usr/lib/modules/$_extramodules/version)