nvidia390: add patch for linux5.1 compatibility
This commit is contained in:
parent
dd768e5e99
commit
bc826b1fa5
3 changed files with 142 additions and 1 deletions
29
srcpkgs/nvidia390/files/kernel-5.1-x86_64.patch
Normal file
29
srcpkgs/nvidia390/files/kernel-5.1-x86_64.patch
Normal file
|
@ -0,0 +1,29 @@
|
|||
diff --git a/kernel/nvidia-uvm/uvm8.c b/kernel/nvidia-uvm/uvm8.c
|
||||
index e00923d..2e01e3c 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);
|
||||
|
102
srcpkgs/nvidia390/files/kernel-5.1.patch
Normal file
102
srcpkgs/nvidia390/files/kernel-5.1.patch
Normal file
|
@ -0,0 +1,102 @@
|
|||
diff --git a/kernel/common/inc/nv-list-helpers.h b/kernel/common/inc/nv-list-helpers.h
|
||||
index 0aed851..d6304c9 100644
|
||||
--- a/kernel/common/inc/nv-list-helpers.h
|
||||
+++ b/kernel/common/inc/nv-list-helpers.h
|
||||
@@ -26,6 +26,8 @@
|
||||
#include <linux/list.h>
|
||||
#include "conftest.h"
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
#if !defined (list_for_each)
|
||||
#define list_for_each(pos, head) \
|
||||
for (pos = (head)->next; pos != (head); pos = (pos)->next)
|
||||
@@ -91,10 +93,12 @@
|
||||
list_entry((pos)->member.next, typeof(*(pos)), member)
|
||||
#endif
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
|
||||
static inline int list_is_first(const struct list_head *list,
|
||||
const struct list_head *head)
|
||||
{
|
||||
return list->prev == head;
|
||||
}
|
||||
+#endif
|
||||
|
||||
#endif // __NV_LIST_HELPERS_H__
|
||||
diff --git a/kernel/nvidia-drm/nvidia-drm-connector.c b/kernel/nvidia-drm/nvidia-drm-connector.c
|
||||
index 24631c0..ba1497c 100644
|
||||
--- a/kernel/nvidia-drm/nvidia-drm-connector.c
|
||||
+++ b/kernel/nvidia-drm/nvidia-drm-connector.c
|
||||
@@ -30,7 +30,12 @@
|
||||
#include "nvidia-drm-utils.h"
|
||||
#include "nvidia-drm-encoder.h"
|
||||
|
||||
+#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
|
||||
#include <drm/drm_crtc_helper.h>
|
||||
+#else
|
||||
+#include <drm/drm_probe_helper.h>
|
||||
+#endif
|
||||
|
||||
#include <drm/drm_atomic.h>
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c
|
||||
index 1c2db68..d524d51 100644
|
||||
--- a/kernel/nvidia-drm/nvidia-drm-drv.c
|
||||
+++ b/kernel/nvidia-drm/nvidia-drm-drv.c
|
||||
@@ -41,7 +41,12 @@
|
||||
|
||||
#include <drm/drmP.h>
|
||||
|
||||
+#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
|
||||
#include <drm/drm_crtc_helper.h>
|
||||
+#else
|
||||
+#include <drm/drm_probe_helper.h>
|
||||
+#endif
|
||||
|
||||
#if defined(NV_DRM_DRM_GEM_H_PRESENT)
|
||||
#include <drm/drm_gem.h>
|
||||
diff --git a/kernel/nvidia-drm/nvidia-drm-encoder.c b/kernel/nvidia-drm/nvidia-drm-encoder.c
|
||||
index f66bbd7..df38042 100644
|
||||
--- a/kernel/nvidia-drm/nvidia-drm-encoder.c
|
||||
+++ b/kernel/nvidia-drm/nvidia-drm-encoder.c
|
||||
@@ -31,7 +31,12 @@
|
||||
#include "nvidia-drm-crtc.h"
|
||||
#include "nvidia-drm-helper.h"
|
||||
|
||||
+#include <linux/version.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
|
||||
#include <drm/drm_crtc_helper.h>
|
||||
+#else
|
||||
+#include <drm/drm_probe_helper.h>
|
||||
+#endif
|
||||
|
||||
#include <drm/drm_atomic.h>
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
diff --git a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
|
||||
index 8636eff..fd0c8da 100644
|
||||
--- a/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
|
||||
+++ b/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
#include "nv-mm.h"
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
static void __nv_drm_gem_nvkms_memory_free(struct nv_drm_gem_object *nv_gem)
|
||||
{
|
||||
struct nv_drm_device *nv_dev = nv_gem->nv_dev;
|
||||
@@ -268,7 +270,11 @@ static int __nv_drm_vma_fault(struct vm_area_struct *vma,
|
||||
*/
|
||||
|
||||
#if defined(NV_VM_OPS_FAULT_REMOVED_VMA_ARG)
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)
|
||||
static int nv_drm_vma_fault(struct vm_fault *vmf)
|
||||
+#else
|
||||
+static vm_fault_t nv_drm_vma_fault(struct vm_fault *vmf)
|
||||
+#endif
|
||||
{
|
||||
return __nv_drm_vma_fault(vmf->vma, vmf);
|
||||
}
|
|
@ -4,7 +4,7 @@ _desc="NVIDIA drivers (GeForce 400, 500 series)"
|
|||
|
||||
pkgname=nvidia390
|
||||
version=390.116
|
||||
revision=1
|
||||
revision=2
|
||||
maintainer="Juan RP <xtraeme@voidlinux.org>"
|
||||
license="Proprietary NVIDIA license"
|
||||
homepage="http://www.nvidia.com"
|
||||
|
@ -40,6 +40,16 @@ do_extract() {
|
|||
rm -f ${_pkg}.run
|
||||
}
|
||||
|
||||
do_patch() {
|
||||
cd ${_pkg}
|
||||
patch -p1 < ${FILESDIR}/kernel-5.1.patch
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
x86_64)
|
||||
patch -p1 < ${FILESDIR}/kernel-5.1-x86_64.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
pre_install() {
|
||||
cd ${_pkg}
|
||||
cp nvidia_icd.json.template nvidia_icd.json
|
||||
|
|
Loading…
Reference in a new issue