[kdenlive/f24] (4 commits) ...sources uploaded
by Sérgio M. Basto
Summary of changes:
99312f1... Update to 16.12.0 (*)
b4d5e69... Merge branch 'f25' (*)
c49069c... Update kdenlive to 16.12.2 following Fedora KDE application (*)
da4344d... sources uploaded (*)
(*) This commit already existed in another branch; no separate mail sent
7 years, 9 months
[kdenlive/f25] sources uploaded
by Sérgio M. Basto
Summary of changes:
da4344d... sources uploaded (*)
(*) This commit already existed in another branch; no separate mail sent
7 years, 9 months
[kdenlive] sources uploaded
by Sérgio M. Basto
commit da4344d28fe117a027efd1dd7ba0406d07181d31
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Tue Feb 21 02:23:59 2017 +0000
sources uploaded
.gitignore | 1 +
sources | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/.gitignore b/.gitignore
index de7b097..b9e0c76 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/kdenlive-16.08.2.tar.xz
/kdenlive-16.08.3.tar.xz
/kdenlive-16.12.0.tar.xz
+/kdenlive-16.12.2.tar.xz
diff --git a/sources b/sources
index 1be63cf..6f97f8b 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-94ee95ee80284ad7dcd1b03a69be483d kdenlive-16.12.0.tar.xz
+b6089df48369611d5dfa75dc8cef6445 kdenlive-16.12.2.tar.xz
7 years, 9 months
[kdenlive: 6/6] Update kdenlive to 16.12.2 following Fedora KDE applications
by Sérgio M. Basto
commit c49069cfd85b9ee38233719a3f263732788e1308
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Tue Feb 21 01:42:55 2017 +0000
Update kdenlive to 16.12.2 following Fedora KDE applications
kdenlive.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/kdenlive.spec b/kdenlive.spec
index fd8d0e1..0f9645a 100644
--- a/kdenlive.spec
+++ b/kdenlive.spec
@@ -1,7 +1,7 @@
Name: kdenlive
Summary: Non-linear video editor
-Version: 16.12.0
+Version: 16.12.2
Release: 1%{?dist}
License: GPLv2+
@@ -139,6 +139,9 @@ fi
%changelog
+* Tue Feb 21 2017 Sérgio Basto <sergio(a)serjux.com> - 16.12.2-1
+- Update kdenlive to 16.12.2 following Fedora KDE applications
+
* Tue Jan 31 2017 Sérgio Basto <sergio(a)serjux.com> - 16.08.3-2
- Requires mlt-freeworld on el7
7 years, 9 months
[kdenlive: 5/6] Merge branch 'f25'
by Sérgio M. Basto
commit b4d5e69929c46b44bbaadb6602d507e83da5e311
Merge: 99312f1 01de0f9
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Tue Feb 21 01:11:01 2017 +0000
Merge branch 'f25'
.gitignore | 1 +
kdenlive.spec | 8 +++++++-
2 files changed, 8 insertions(+), 1 deletion(-)
---
diff --cc .gitignore
index e2210b7,3c4b79e..de7b097
--- a/.gitignore
+++ b/.gitignore
@@@ -2,4 -2,4 +2,5 @@@
/kdenlive-16.08.0.tar.xz
/kdenlive-16.08.1.tar.xz
/kdenlive-16.08.2.tar.xz
+ /kdenlive-16.08.3.tar.xz
+/kdenlive-16.12.0.tar.xz
diff --cc kdenlive.spec
index 956da1c,c774a2a..fd8d0e1
--- a/kdenlive.spec
+++ b/kdenlive.spec
@@@ -139,9 -139,12 +139,15 @@@ f
%changelog
+ * Tue Jan 31 2017 Sérgio Basto <sergio(a)serjux.com> - 16.08.3-2
+ - Requires mlt-freeworld on el7
+
+ * Tue Jan 31 2017 Sérgio Basto <sergio(a)serjux.com> - 16.08.3-1
+ - Update kdenlive to 16.08.3 like kde-baseapps
+
+* Fri Jan 06 2017 Leigh Scott <leigh123linux(a)googlemail.com> - 16.12.0-1
+- Update to 16.12.0
+
* Thu Oct 13 2016 Sérgio Basto <sergio(a)serjux.com> - 16.08.2-1
- Update to 16.08.2
- Scriplets fixed by upstream
7 years, 9 months
[kdenlive] (6 commits) ...Update kdenlive to 16.12.2 following Fedora KDE applications
by Sérgio M. Basto
Summary of changes:
bb36b0e... Merge branches 'master' and 'f20' into f20 (*)
1a8fc49... Merge branch 'el7' into f25 (*)
a5d7b20... Update kdenlive to 16.08.3 like kde-baseapps (*)
01de0f9... Requires mlt-freeworld on el7 (*)
b4d5e69... Merge branch 'f25'
c49069c... Update kdenlive to 16.12.2 following Fedora KDE application
(*) This commit already existed in another branch; no separate mail sent
7 years, 9 months
[nvidia-304xx-kmod] fix patch
by Leigh Scott
commit 9d5f1d449b5eab4d0d6fc0c70cde0b355cd219a2
Author: leigh123linux <leigh123linux(a)googlemail.com>
Date: Mon Feb 20 23:25:41 2017 +0000
fix patch
kernel_4.10.patch | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/kernel_4.10.patch b/kernel_4.10.patch
index 08a29fe..1e98740 100644
--- a/kernel_4.10.patch
+++ b/kernel_4.10.patch
@@ -8,10 +8,10 @@ Subject: [PATCH 1/1] Add support for Linux 4.10
nv-pat.c | 40 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 45 insertions(+)
-diff --git a/kernels/nv-linux.h b/kernels/nv-linux.h
+diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h
index b46e71f..3081c06 100644
---- a/kernels/nv-linux.h
-+++ b/kernels/nv-linux.h
+--- a/kernel/nv-linux.h
++++ b/kernel/nv-linux.h
@@ -1895,8 +1895,13 @@ static inline NvU64 nv_node_end_pfn(int nid)
#else
@@ -26,10 +26,10 @@ index b46e71f..3081c06 100644
#endif
-diff --git a/kernels/nv-pat.c b/kernels/nv-pat.c
+diff --git a/kernel/nv-pat.c b/kernel/nv-pat.c
index e71e81c..d742789 100644
---- a/kernels/nv-pat.c
-+++ b/kernels/nv-pat.c
+--- a/kernel/nv-pat.c
++++ b/kernel/nv-pat.c
@@ -203,6 +203,7 @@ void nv_disable_pat_support(void)
}
7 years, 9 months
[nvidia-304xx-kmod] patch for kernel-4.10
by Leigh Scott
commit f0535885f9239ea16b53f763ef1132af4b8202b5
Author: leigh123linux <leigh123linux(a)googlemail.com>
Date: Mon Feb 20 21:22:14 2017 +0000
patch for kernel-4.10
kernel_4.10.patch | 105 +++++++++++++++++++++++++++++++++++++++++++++++++
nvidia-304xx-kmod.spec | 7 +++-
2 files changed, 111 insertions(+), 1 deletion(-)
---
diff --git a/kernel_4.10.patch b/kernel_4.10.patch
new file mode 100644
index 0000000..08a29fe
--- /dev/null
+++ b/kernel_4.10.patch
@@ -0,0 +1,105 @@
+From d270372bf8abcf45409b30cdb33069280527b0ff Mon Sep 17 00:00:00 2001
+From: Alberto Milone <alberto.milone(a)canonical.com>
+Date: Wed, 15 Feb 2017 18:01:02 +0100
+Subject: [PATCH 1/1] Add support for Linux 4.10
+
+---
+ nv-linux.h | 5 +++++
+ nv-pat.c | 40 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+)
+
+diff --git a/kernels/nv-linux.h b/kernels/nv-linux.h
+index b46e71f..3081c06 100644
+--- a/kernels/nv-linux.h
++++ b/kernels/nv-linux.h
+@@ -1895,8 +1895,13 @@ static inline NvU64 nv_node_end_pfn(int nid)
+
+ #else
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
+ pages, vmas);
++#else
++ return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
++ pages, vmas, NULL);
++#endif
+
+ #endif
+
+diff --git a/kernels/nv-pat.c b/kernels/nv-pat.c
+index e71e81c..d742789 100644
+--- a/kernels/nv-pat.c
++++ b/kernels/nv-pat.c
+@@ -203,6 +203,7 @@ void nv_disable_pat_support(void)
+ }
+
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ static int
+ nv_kern_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
+ {
+@@ -234,6 +235,34 @@ static struct notifier_block nv_hotcpu_nfb = {
+ .notifier_call = nv_kern_cpu_callback,
+ .priority = 0
+ };
++#else
++static int nvidia_cpu_online(unsigned int hcpu)
++{
++ unsigned int cpu = get_cpu();
++ if (cpu == hcpu)
++ nv_setup_pat_entries(NULL);
++ else
++ NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, (void *)(long int)hcpu, 1);
++
++ put_cpu();
++
++ return 0;
++}
++
++static int nvidia_cpu_down_prep(unsigned int hcpu)
++{
++ unsigned int cpu = get_cpu();
++ if (cpu == hcpu)
++ nv_restore_pat_entries(NULL);
++ else
++ NV_SMP_CALL_FUNCTION(nv_restore_pat_entries, (void *)(long int)hcpu, 1);
++
++ put_cpu();
++
++ return 0;
++}
++#endif
++
+ #endif
+
+ int nv_init_pat_support(nv_stack_t *sp)
+@@ -255,7 +284,14 @@ int nv_init_pat_support(nv_stack_t *sp)
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
+ if (nv_pat_mode == NV_PAT_MODE_BUILTIN)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
++#else
++ if (cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
++ "gpu/nvidia:online",
++ nvidia_cpu_online,
++ nvidia_cpu_down_prep) != 0)
++#endif
+ {
+ nv_disable_pat_support();
+ nv_printf(NV_DBG_ERRORS,
+@@ -280,7 +316,11 @@ void nv_teardown_pat_support(void)
+ {
+ nv_disable_pat_support();
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ unregister_hotcpu_notifier(&nv_hotcpu_nfb);
++#else
++ cpuhp_remove_state_nocalls(CPUHP_AP_ONLINE_DYN);
++#endif
+ #endif
+ }
+ }
+--
+2.7.4
+
diff --git a/nvidia-304xx-kmod.spec b/nvidia-304xx-kmod.spec
index b31fba8..e526092 100644
--- a/nvidia-304xx-kmod.spec
+++ b/nvidia-304xx-kmod.spec
@@ -9,7 +9,7 @@
Name: nvidia-304xx-kmod
Version: 304.135
# Taken over by kmodtool
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: NVIDIA display driver kernel module
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -23,6 +23,7 @@ Source11: nvidia-304xx-kmodtool-excludekernel-filterfile
# https://anonscm.debian.org/viewvc/pkg-nvidia/packages/nvidia-graphics-dri...
#Patch0: disable-mtrr.patch
Patch1: 4.9.0_kernel.patch
+Patch2: kernel_4.10.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -51,6 +52,7 @@ do
pushd nvidiapkg-${arch}
#patch0 -p0
%patch1 -p1
+%patch2 -p1
popd
done
@@ -84,6 +86,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Mon Feb 20 2017 Leigh Scott <leigh123linux(a)googlemail.com> - 304.135-3
+- patch for kernel-4.10
+
* Wed Feb 15 2017 Leigh Scott <leigh123linux(a)googlemail.com> - 304.135-2
- remove disable mtrr patch
7 years, 9 months
[nvidia-kmod] patch for 4.10 kernel
by Leigh Scott
commit 1168d85cdb210e26d2a9aff5970d249e1a328e41
Author: leigh123linux <leigh123linux(a)googlemail.com>
Date: Mon Feb 20 21:12:26 2017 +0000
patch for 4.10 kernel
kernel_4.10.patch | 382 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
nvidia-kmod.spec | 7 +-
2 files changed, 388 insertions(+), 1 deletion(-)
---
diff --git a/kernel_4.10.patch b/kernel_4.10.patch
new file mode 100644
index 0000000..4ad9f8a
--- /dev/null
+++ b/kernel_4.10.patch
@@ -0,0 +1,382 @@
+From ca8b106738521823707f3567cedb41ca158792a3 Mon Sep 17 00:00:00 2001
+From: Alberto Milone <alberto.milone(a)canonical.com>
+Date: Wed, 15 Feb 2017 10:53:42 +0100
+Subject: [PATCH 1/1] Add support for Linux 4.10
+
+---
+ common/inc/nv-mm.h | 9 ++++--
+ nvidia-drm/nvidia-drm-fence.c | 72 +++++++++++++++++++++++++++++++++++++++++++
+ nvidia-drm/nvidia-drm-gem.h | 6 ++++
+ nvidia-drm/nvidia-drm-priv.h | 7 +++++
+ nvidia/nv-pat.c | 40 ++++++++++++++++++++++++
+ 5 files changed, 132 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h
+index 06d7da4..e5cc56a 100644
+--- a/kernel/common/inc/nv-mm.h
++++ b/kernel/common/inc/nv-mm.h
+@@ -46,6 +46,8 @@
+ * 2016 Dec 14:5b56d49fc31dbb0487e14ead790fc81ca9fb2c99
+ */
+
++#include <linux/version.h>
++
+ #if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
+ #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
+ #define NV_GET_USER_PAGES get_user_pages
+@@ -92,10 +94,13 @@
+ pages, vmas, NULL);
+
+ #else
+-
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
+ pages, vmas);
+-
++#else
++ return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
++ pages, vmas, NULL);
++#endif
+ #endif
+
+ }
+diff --git a/kernel/nvidia-drm/nvidia-drm-fence.c b/kernel/nvidia-drm/nvidia-drm-fence.c
+index 5e98c5f..fa2c508 100644
+--- a/kernel/nvidia-drm/nvidia-drm-fence.c
++++ b/kernel/nvidia-drm/nvidia-drm-fence.c
+@@ -31,7 +31,11 @@
+
+ #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
+ struct nv_fence {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence base;
++#else
++ struct dma_fence base;
++#endif
+ spinlock_t lock;
+
+ struct nvidia_drm_device *nv_dev;
+@@ -51,7 +55,11 @@ nv_fence_ready_to_signal(struct nv_fence *nv_fence)
+
+ static const char *nvidia_drm_gem_prime_fence_op_get_driver_name
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *fence
++#else
++ struct dma_fence *fence
++#endif
+ )
+ {
+ return "NVIDIA";
+@@ -59,7 +67,11 @@ static const char *nvidia_drm_gem_prime_fence_op_get_driver_name
+
+ static const char *nvidia_drm_gem_prime_fence_op_get_timeline_name
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *fence
++#else
++ struct dma_fence *fence
++#endif
+ )
+ {
+ return "nvidia.prime";
+@@ -67,7 +79,11 @@ static const char *nvidia_drm_gem_prime_fence_op_get_timeline_name
+
+ static bool nvidia_drm_gem_prime_fence_op_signaled
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *fence
++#else
++ struct dma_fence *fence
++#endif
+ )
+ {
+ struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
+@@ -99,7 +115,11 @@ unlock_struct_mutex:
+
+ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *fence
++#else
++ struct dma_fence *fence
++#endif
+ )
+ {
+ bool ret = true;
+@@ -107,7 +127,11 @@ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
+ struct nvidia_drm_gem_object *nv_gem = nv_fence->nv_gem;
+ struct nvidia_drm_device *nv_dev = nv_fence->nv_dev;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ if (fence_is_signaled(fence))
++#else
++ if (dma_fence_is_signaled(fence))
++#endif
+ {
+ return false;
+ }
+@@ -136,7 +160,11 @@ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
+ }
+
+ nv_gem->fenceContext.softFence = fence;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ fence_get(fence);
++#else
++ dma_fence_get(fence);
++#endif
+
+ unlock_struct_mutex:
+ mutex_unlock(&nv_dev->dev->struct_mutex);
+@@ -146,7 +174,11 @@ unlock_struct_mutex:
+
+ static void nvidia_drm_gem_prime_fence_op_release
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *fence
++#else
++ struct dma_fence *fence
++#endif
+ )
+ {
+ struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
+@@ -155,7 +187,11 @@ static void nvidia_drm_gem_prime_fence_op_release
+
+ static signed long nvidia_drm_gem_prime_fence_op_wait
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *fence,
++#else
++ struct dma_fence *fence,
++#endif
+ bool intr,
+ signed long timeout
+ )
+@@ -170,12 +206,20 @@ static signed long nvidia_drm_gem_prime_fence_op_wait
+ * that it should never get hit during normal operation, but not so long
+ * that the system becomes unresponsive.
+ */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ return fence_default_wait(fence, intr,
++#else
++ return dma_fence_default_wait(fence, intr,
++#endif
+ (timeout == MAX_SCHEDULE_TIMEOUT) ?
+ msecs_to_jiffies(96) : timeout);
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ static const struct fence_ops nvidia_drm_gem_prime_fence_ops = {
++#else
++static const struct dma_fence_ops nvidia_drm_gem_prime_fence_ops = {
++#endif
+ .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,
+@@ -285,7 +329,11 @@ static void nvidia_drm_gem_prime_fence_signal
+ bool force
+ )
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *fence = nv_gem->fenceContext.softFence;
++#else
++ struct dma_fence *fence = nv_gem->fenceContext.softFence;
++#endif
+
+ WARN_ON(!mutex_is_locked(&nv_dev->dev->struct_mutex));
+
+@@ -301,10 +349,18 @@ static void nvidia_drm_gem_prime_fence_signal
+
+ if (force || nv_fence_ready_to_signal(nv_fence))
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ fence_signal(&nv_fence->base);
++#else
++ dma_fence_signal(&nv_fence->base);
++#endif
+
+ nv_gem->fenceContext.softFence = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ fence_put(&nv_fence->base);
++#else
++ dma_fence_put(&nv_fence->base);
++#endif
+
+ nvKms->disableChannelEvent(nv_dev->pDevice,
+ nv_gem->fenceContext.cb);
+@@ -320,7 +376,11 @@ static void nvidia_drm_gem_prime_fence_signal
+
+ nv_fence = container_of(fence, struct nv_fence, base);
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ fence_signal(&nv_fence->base);
++#else
++ dma_fence_signal(&nv_fence->base);
++#endif
+ }
+ }
+
+@@ -513,7 +573,11 @@ int nvidia_drm_gem_prime_fence_init
+ * fence_context_alloc() cannot fail, so we do not need to check a return
+ * value.
+ */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ nv_gem->fenceContext.context = fence_context_alloc(1);
++#else
++ nv_gem->fenceContext.context = dma_fence_context_alloc(1);
++#endif
+
+ ret = nvidia_drm_gem_prime_fence_import_semaphore(
+ nv_dev, nv_gem, p->index,
+@@ -670,7 +734,11 @@ int nvidia_drm_gem_prime_fence_attach
+ nv_fence->nv_gem = nv_gem;
+
+ spin_lock_init(&nv_fence->lock);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
++#else
++ dma_fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
++#endif
+ &nv_fence->lock, nv_gem->fenceContext.context,
+ p->sem_thresh);
+
+@@ -680,7 +748,11 @@ int nvidia_drm_gem_prime_fence_attach
+
+ reservation_object_add_excl_fence(&nv_gem->fenceContext.resv,
+ &nv_fence->base);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ fence_put(&nv_fence->base); /* Reservation object has reference */
++#else
++ dma_fence_put(&nv_fence->base);
++#endif
+
+ ret = 0;
+
+diff --git a/kernel/nvidia-drm/nvidia-drm-gem.h b/kernel/nvidia-drm/nvidia-drm-gem.h
+index 4ff45e8..394576b 100644
+--- a/kernel/nvidia-drm/nvidia-drm-gem.h
++++ b/kernel/nvidia-drm/nvidia-drm-gem.h
+@@ -29,6 +29,8 @@
+
+ #include "nvidia-drm-priv.h"
+
++#include <linux/version.h>
++
+ #include <drm/drmP.h>
+ #include "nvkms-kapi.h"
+
+@@ -98,7 +100,11 @@ struct nvidia_drm_gem_object
+ /* Software signaling structures */
+ struct NvKmsKapiChannelEvent *cb;
+ struct nvidia_drm_gem_prime_soft_fence_event_args *cbArgs;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ struct fence *softFence; /* Fence for software signaling */
++#else
++ struct dma_fence *softFence;
++#endif
+ } fenceContext;
+ #endif
+ };
+diff --git a/kernel/nvidia-drm/nvidia-drm-priv.h b/kernel/nvidia-drm/nvidia-drm-priv.h
+index 1e9b9f9..ae171e7 100644
+--- a/kernel/nvidia-drm/nvidia-drm-priv.h
++++ b/kernel/nvidia-drm/nvidia-drm-priv.h
+@@ -25,6 +25,8 @@
+
+ #include "conftest.h" /* NV_DRM_AVAILABLE */
+
++#include <linux/version.h>
++
+ #if defined(NV_DRM_AVAILABLE)
+
+ #include <drm/drmP.h>
+@@ -34,7 +36,12 @@
+ #endif
+
+ #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ #include <linux/fence.h>
++#else
++#include <linux/dma-fence.h>
++#endif
++
+ #include <linux/reservation.h>
+ #endif
+
+diff --git a/kernel/nvidia/nv-pat.c b/kernel/nvidia/nv-pat.c
+index df78020..0af7d47 100644
+--- a/kernel/nvidia/nv-pat.c
++++ b/kernel/nvidia/nv-pat.c
+@@ -203,6 +203,7 @@ void nv_disable_pat_support(void)
+ }
+
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ static int
+ nvidia_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
+ {
+@@ -234,6 +235,34 @@ static struct notifier_block nv_hotcpu_nfb = {
+ .notifier_call = nvidia_cpu_callback,
+ .priority = 0
+ };
++#else
++static int nvidia_cpu_online(unsigned int hcpu)
++{
++ unsigned int cpu = get_cpu();
++ if (cpu == hcpu)
++ nv_setup_pat_entries(NULL);
++ else
++ NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, (void *)(long int)hcpu, 1);
++
++ put_cpu();
++
++ return 0;
++}
++
++static int nvidia_cpu_down_prep(unsigned int hcpu)
++{
++ unsigned int cpu = get_cpu();
++ if (cpu == hcpu)
++ nv_restore_pat_entries(NULL);
++ else
++ NV_SMP_CALL_FUNCTION(nv_restore_pat_entries, (void *)(long int)hcpu, 1);
++
++ put_cpu();
++
++ return 0;
++}
++#endif
++
+ #endif
+
+ int nv_init_pat_support(nvidia_stack_t *sp)
+@@ -255,7 +284,14 @@ int nv_init_pat_support(nvidia_stack_t *sp)
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
+ if (nv_pat_mode == NV_PAT_MODE_BUILTIN)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
++#else
++ if (cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
++ "gpu/nvidia:online",
++ nvidia_cpu_online,
++ nvidia_cpu_down_prep) != 0)
++#endif
+ {
+ nv_disable_pat_support();
+ nv_printf(NV_DBG_ERRORS,
+@@ -280,7 +316,11 @@ void nv_teardown_pat_support(void)
+ {
+ nv_disable_pat_support();
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ unregister_hotcpu_notifier(&nv_hotcpu_nfb);
++#else
++ cpuhp_remove_state_nocalls(CPUHP_AP_ONLINE_DYN);
++#endif
+ #endif
+ }
+ }
+--
+2.7.4
+
diff --git a/nvidia-kmod.spec b/nvidia-kmod.spec
index a458dd6..c99ab53 100644
--- a/nvidia-kmod.spec
+++ b/nvidia-kmod.spec
@@ -10,7 +10,7 @@ Name: nvidia-kmod
Epoch: 1
Version: 375.39
# Taken over by kmodtool
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: NVIDIA display driver kernel module
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -19,6 +19,7 @@ URL: http://www.nvidia.com/
Source11: nvidia-kmodtool-excludekernel-filterfile
Patch0: nv-linux-arm.patch
Patch1: nv-linux-arm2.patch
+Patch2: kernel_4.10.patch
# needed for plague to make sure it builds for i586 and i686
ExclusiveArch: i686 x86_64 armv7hl
@@ -44,6 +45,7 @@ tar --use-compress-program xz -xf %{_datadir}/%{name}-%{version}/%{name}-%{versi
# patch loop
%patch0 -p1
%patch1 -p1
+%patch2 -p1
for kernel_version in %{?kernel_versions} ; do
cp -a kernel _kmod_build_${kernel_version%%___*}
@@ -71,6 +73,9 @@ done
%changelog
+* Mon Feb 20 2017 Leigh Scott <leigh123linux(a)googlemail.com> - 1:375.39-2
+- patch for 4.10 kernel
+
* Wed Feb 15 2017 Leigh Scott <leigh123linux(a)googlemail.com> - 1:375.39-1
- Update to 375.39 release
7 years, 9 months