mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-07 23:53:51 +02:00
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
|
pkgname=nvidia390
|
||||||
version=390.116
|
version=390.116
|
||||||
revision=1
|
revision=2
|
||||||
maintainer="Juan RP <xtraeme@voidlinux.org>"
|
maintainer="Juan RP <xtraeme@voidlinux.org>"
|
||||||
license="Proprietary NVIDIA license"
|
license="Proprietary NVIDIA license"
|
||||||
homepage="http://www.nvidia.com"
|
homepage="http://www.nvidia.com"
|
||||||
|
@ -40,6 +40,16 @@ do_extract() {
|
||||||
rm -f ${_pkg}.run
|
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() {
|
pre_install() {
|
||||||
cd ${_pkg}
|
cd ${_pkg}
|
||||||
cp nvidia_icd.json.template nvidia_icd.json
|
cp nvidia_icd.json.template nvidia_icd.json
|
||||||
|
|
Loading…
Add table
Reference in a new issue