nvidia modules are ready

This commit is contained in:
idriskalp
2019-12-28 21:58:26 +03:00
parent 1a5e36a3e5
commit 8d33ceddbd
45 changed files with 2392 additions and 90 deletions
@@ -0,0 +1,50 @@
diff -Nurp NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-connector.c NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-connector.c
--- NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-connector.c 2018-08-22 03:55:29.000000000 +0300
+++ NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-connector.c 2018-11-09 19:46:54.625801192 +0200
@@ -30,6 +30,8 @@
#include "nvidia-drm-utils.h"
#include "nvidia-drm-encoder.h"
+#include <linux/version.h>
+
#include <drm/drm_crtc_helper.h>
#include <drm/drm_atomic.h>
@@ -226,8 +228,13 @@ static int nv_drm_connector_get_modes(st
if (nv_connector->edid != NULL) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
drm_mode_connector_update_edid_property(
connector, nv_connector->edid);
+#else
+ drm_connector_update_edid_property(
+ connector, nv_connector->edid);
+#endif
}
while (1) {
diff -Nurp NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-encoder.c NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-encoder.c
--- NVIDIA-Linux-x86_64-390.87.orig/kernel/nvidia-drm/nvidia-drm-encoder.c 2018-08-22 03:55:29.000000000 +0300
+++ NVIDIA-Linux-x86_64-390.87/kernel/nvidia-drm/nvidia-drm-encoder.c 2018-11-09 19:49:34.863861811 +0200
@@ -30,6 +30,8 @@
#include "nvidia-drm-connector.h"
#include "nvidia-drm-crtc.h"
+#include <linux/version.h>
+
#include <drm/drm_crtc_helper.h>
#include <drm/drm_atomic.h>
@@ -216,7 +218,11 @@ nv_drm_add_encoder(struct drm_device *de
/* Attach encoder and connector */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
ret = drm_mode_connector_attach_encoder(connector, encoder);
+#else
+ ret = drm_connector_attach_encoder(connector, encoder);
+#endif
if (ret != 0) {
NV_DRM_DEV_LOG_ERR(
@@ -0,0 +1,43 @@
--- a/kernel/nvidia/os-interface.c
+++ b/kernel/nvidia/os-interface.c
@@ -1670,7 +1670,7 @@
struct nv_ipmi_softc
{
- ipmi_user_t p_user; // ptr to ipmi_msghandler user structure
+ struct ipmi_user *p_user;
spinlock_t msg_lock;
struct list_head msgs;
NvU32 seqNum; //request sequence number
@@ -1679,7 +1679,7 @@
static inline int
nv_ipmi_set_my_address
(
- ipmi_user_t user,
+ struct ipmi_user *user,
unsigned char address
)
{
--- 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)
@@ -345,7 +347,11 @@ static int __nv_drm_vma_fault(struct vm_area_struct *vma,
page_offset = vmf->pgoff - drm_vma_node_start(&gem->vma_node);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
ret = vm_insert_pfn(vma, address, pfn + page_offset);
+#else
+ ret = vmf_insert_pfn(vma, address, pfn + page_offset);
+#endif
switch (ret) {
case 0:
+130
View File
@@ -0,0 +1,130 @@
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);
}
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);
+2
View File
@@ -0,0 +1,2 @@
blacklist nouveau
options nouveau modeset=0
@@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=NVIDIA X Server Settings
Comment=Configure NVIDIA X Server Settings
Exec=/usr/bin/nvidia-settings
Icon=/usr/share/pixmaps/nvidia-settings.png
Categories=Application;Settings;
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia-current"
libdir = "/usr/lib32/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib32/libGL.so.1.2.0 libGL-32bit %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib32/xorg/modules/volatile xorg-modules-volatile-32bit %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/ld.so.conf.d/10-nvidia-32bit.conf nvidia-ldsoconf-32bit %(datadir)s/32bit-ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL-32bit") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL-32bit %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL-32bit %s/libGL.so.1.2.0" % libdir)
pass
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/python
import os
driver_dir_name = "nvidia-current"
libdir = "/usr/lib/%s" % driver_dir_name
datadir = "/usr/share/%s" % driver_dir_name
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system(" /usr/sbin/alternatives \
--install /usr/lib/libGL.so.1.2.0 libGL %(libdir)s/libGL.so.1.2.0 50 \
--slave /usr/lib/xorg/modules/volatile xorg-modules-volatile %(libdir)s/modules"
% {"libdir": libdir, "datadir": datadir})
# --slave /etc/X11/XvMCConfig XvMCConfig %(datadir)s/XvMCConfig \
# --slave /etc/ld.so.conf.d/10-nvidia.conf nvidia-ldsoconf %(datadir)s/ld.so.conf"
# If this driver is in use, refresh links after installation.
if os.readlink("/etc/alternatives/libGL") == "%s/libGL.so.1.2.0" % libdir:
os.system("/usr/sbin/alternatives --set libGL %s/libGL.so.1.2.0" % libdir)
os.system("/sbin/ldconfig -X")
def preRemove():
# FIXME This is not needed when upgrading package; but pisi does not
# provide a way to learn operation type.
#os.system("/usr/sbin/alternatives --remove libGL %s/libGL.so.1.2.0" % libdir)
pass