nvidia304 obsoleted
This commit is contained in:
@@ -1,137 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Licensed under the GNU General Public License, version 3.
|
||||
# See the file http://www.gnu.org/licenses/gpl.txt
|
||||
|
||||
from pisi.actionsapi import kerneltools
|
||||
from pisi.actionsapi import shelltools
|
||||
from pisi.actionsapi import autotools
|
||||
from pisi.actionsapi import pisitools
|
||||
from pisi.actionsapi import get
|
||||
|
||||
WorkDir = "."
|
||||
KDIR = kerneltools.getKernelVersion()
|
||||
NoStrip = ["/lib/modules"]
|
||||
|
||||
version = get.srcVERSION()
|
||||
driver_dir_name = "nvidia304"
|
||||
datadir = "/usr/share/%s" % driver_dir_name
|
||||
|
||||
if get.buildTYPE() == 'emul32':
|
||||
arch = "x86"
|
||||
nvlibdir = "/usr/lib32/%s" % driver_dir_name
|
||||
libdir = "/usr/lib32"
|
||||
else:
|
||||
arch = get.ARCH().replace("i686", "x86")
|
||||
nvlibdir = "/usr/lib/%s" % driver_dir_name
|
||||
libdir = "/usr/lib"
|
||||
|
||||
def setup():
|
||||
shelltools.system("sh NVIDIA-Linux-%s-%s.run -x --target tmp"
|
||||
% (arch, get.srcVERSION()))
|
||||
shelltools.move("tmp/*", ".")
|
||||
|
||||
shelltools.system("patch -p1 < kernel-4.14.patch")
|
||||
shelltools.system("patch -p1 < nvidia-304.137-bionic-18.04.patch")
|
||||
shelltools.system("patch -p0 < linux-5.3.patch")
|
||||
|
||||
# Our libc is TLS enabled so use TLS library
|
||||
shelltools.unlink("*-tls.so*")
|
||||
shelltools.move("tls/*", ".")
|
||||
|
||||
# xorg-server provides libwfb.so
|
||||
shelltools.unlink("libnvidia-wfb.so.*")
|
||||
|
||||
shelltools.echo("ld.so.conf", nvlibdir)
|
||||
shelltools.echo("XvMCConfig", "%s/libXvMCNVIDIA.so" % nvlibdir)
|
||||
|
||||
def build():
|
||||
# We don't need kernel module for emul32 build
|
||||
if get.buildTYPE() == 'emul32':
|
||||
return
|
||||
|
||||
shelltools.export("SYSSRC", "/lib/modules/%s/build" % KDIR)
|
||||
shelltools.cd("kernel")
|
||||
|
||||
autotools.make("module")
|
||||
|
||||
def install():
|
||||
|
||||
if not get.buildTYPE() == 'emul32':
|
||||
# Kernel driver
|
||||
pisitools.insinto("/lib/modules/%s/extra/nvidia" % KDIR,
|
||||
"kernel/nvidia.ko")
|
||||
|
||||
# Command line tools and their man pages
|
||||
pisitools.dobin("nvidia-smi")
|
||||
pisitools.doman("nvidia-smi.1.gz")
|
||||
|
||||
|
||||
### Libraries
|
||||
# OpenGl library
|
||||
pisitools.dolib("libGL.so.%s" % version, nvlibdir)
|
||||
pisitools.dosym("libGL.so.%s" % version, "%s/libGL.so.1.2.0" % nvlibdir)
|
||||
|
||||
# OpenCL
|
||||
#pisitools.dolib("libOpenCL.so.1.0.0", libdir)
|
||||
#pisitools.dosym("libOpenCL.so.1.0.0", "%s/libOpenCL.so.1.0" % libdir)
|
||||
#pisitools.dosym("libOpenCL.so.1.0", "%s/libOpenCL.so.1" % libdir)
|
||||
|
||||
# CUDA
|
||||
pisitools.dolib("libcuda.so.%s" % version, libdir)
|
||||
pisitools.dosym("libcuda.so.%s" % version, "%s/libcuda.so.1" % libdir)
|
||||
pisitools.dosym("libcuda.so.1", "%s/libcuda.so" % libdir)
|
||||
|
||||
pisitools.dolib("libnvcuvid.so.%s" % version, libdir)
|
||||
pisitools.dosym("libnvcuvid.so.%s" % version, "%s/libnvcuvid.so.1" % libdir)
|
||||
pisitools.dosym("libnvcuvid.so.1", "%s/libnvcuvid.so" % libdir)
|
||||
|
||||
# NVML
|
||||
# Provides programmatic access to static information and monitoring
|
||||
# data for NVIDIA GPUs, as well as limited managment capabilities
|
||||
pisitools.dolib("libnvidia-ml.so.%s" % version, libdir)
|
||||
pisitools.dosym("libnvidia-ml.so.%s" % version, "%s/libnvidia-ml.so.1" % libdir)
|
||||
|
||||
pisitools.dolib("libnvidia-cfg.so.%s" % version, libdir)
|
||||
pisitools.dosym("libnvidia-cfg.so.%s" % version, "%s/libnvidia-cfg.so.1" % libdir)
|
||||
|
||||
pisitools.dolib("libnvidia-compiler.so.%s" % version, libdir)
|
||||
pisitools.dosym("libnvidia-compiler.so.%s" % version, "%s/libnvidia-compiler.so.1" % libdir)
|
||||
|
||||
# OpenGL cpre library
|
||||
for lib in ("glcore", "tls"):
|
||||
pisitools.dolib("libnvidia-%s.so.%s" % (lib, version), libdir)
|
||||
|
||||
# VDPAU driver
|
||||
pisitools.dolib("libvdpau_nvidia.so.%s" % version, "%s/vdpau" % nvlibdir)
|
||||
pisitools.dosym("../nvidia-current/vdpau/libvdpau_nvidia.so.%s" % version, "%s/vdpau/libvdpau_nvidia.so.1" % nvlibdir.strip(driver_dir_name))
|
||||
|
||||
# X modules
|
||||
pisitools.dolib("nvidia_drv.so", "%s/modules/drivers" % nvlibdir)
|
||||
pisitools.dolib("libglx.so.%s" % version, "%s/modules/extensions" % nvlibdir)
|
||||
pisitools.dosym("libglx.so.%s" % version, "%s/modules/extensions/libglx.so" % nvlibdir)
|
||||
|
||||
# Exit time for emul32 build
|
||||
if get.buildTYPE() == 'emul32':
|
||||
pisitools.insinto(datadir, "ld.so.conf", "32bit-ld.so.conf")
|
||||
return
|
||||
|
||||
pisitools.insinto("/etc/OpenCL/vendors", "nvidia.icd")
|
||||
|
||||
pisitools.insinto(datadir, "ld.so.conf")
|
||||
pisitools.insinto(datadir, "XvMCConfig")
|
||||
|
||||
# Documentation
|
||||
docdir = "xorg-video-%s" % driver_dir_name
|
||||
pisitools.dodoc("LICENSE", "NVIDIA_Changelog", "README.txt", destDir=docdir)
|
||||
pisitools.dohtml("html/*", destDir=docdir)
|
||||
|
||||
### Note
|
||||
# This package includes nvidia-setting and nvidia-xconfig binaries. However
|
||||
# we have seperate packages for each of them. Nvidia provides tarballs for
|
||||
# these binaries. Don't forget to update these package with each NVIDIA
|
||||
# driver update.
|
||||
|
||||
# Nvidia-bug-report
|
||||
# Comes with our own nvidia-xcfonig package
|
||||
# pisitools.dobin("nvidia-bug-report.sh")
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import os
|
||||
|
||||
driver_dir_name = "nvidia304"
|
||||
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 40 \
|
||||
--slave /usr/lib/xorg/modules/volatile xorg-modules-volatile %(libdir)s/modules \
|
||||
--slave /etc/X11/XvMCConfig XvMCConfig %(datadir)s/XvMCConfig \
|
||||
--slave /etc/ld.so.conf.d/10-nvidia.conf nvidia-ldsoconf %(datadir)s/ld.so.conf"
|
||||
% {"libdir": libdir, "datadir": datadir})
|
||||
|
||||
# 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" % libdir)
|
||||
pass
|
||||
@@ -1,32 +0,0 @@
|
||||
|
||||
Adapt for kernel 3.19
|
||||
|
||||
Signed-off-by: Thomas Backlund <tmb@mageia.org>
|
||||
|
||||
diff -Nurp NVIDIA-Linux-x86_64-304.125.orig/kernel/nv.c NVIDIA-Linux-x86_64-304.125/kernel/nv.c
|
||||
--- NVIDIA-Linux-x86_64-304.125.orig/kernel/nv.c 2014-12-02 05:58:34.000000000 +0200
|
||||
+++ NVIDIA-Linux-x86_64-304.125/kernel/nv.c 2015-01-25 19:14:21.009109856 +0200
|
||||
@@ -2026,7 +2026,11 @@ long nv_kern_unlocked_ioctl(
|
||||
unsigned long i_arg
|
||||
)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
|
||||
+ return nv_kern_ioctl(file->f_path.dentry->d_inode, file, cmd, i_arg);
|
||||
+#else
|
||||
return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg);
|
||||
+#endif
|
||||
}
|
||||
|
||||
long nv_kern_compat_ioctl(
|
||||
@@ -2035,7 +2039,11 @@ long nv_kern_compat_ioctl(
|
||||
unsigned long i_arg
|
||||
)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
|
||||
+ return nv_kern_ioctl(file->f_path.dentry->d_inode, file, cmd, i_arg);
|
||||
+#else
|
||||
return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1,35 +0,0 @@
|
||||
--- NVIDIA-Linux-x86_64-304.137/kernel/nv-drm.c.orig 2017-09-14 23:51:09.000000000 +0300
|
||||
+++ NVIDIA-Linux-x86_64-304.137/kernel/nv-drm.c 2017-11-13 16:24:05.604118167 +0200
|
||||
@@ -14,6 +14,8 @@
|
||||
#include "os-interface.h"
|
||||
#include "nv-linux.h"
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
#if defined(NV_DRM_AVAILABLE)
|
||||
|
||||
#include <drm/drmP.h>
|
||||
@@ -121,8 +123,12 @@ int __init nv_drm_init(
|
||||
{
|
||||
int ret = 0;
|
||||
#if defined(NV_DRM_AVAILABLE)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
+ ret = drm_legacy_pci_init(&nv_drm_driver, pci_driver);
|
||||
+#else
|
||||
ret = drm_pci_init(&nv_drm_driver, pci_driver);
|
||||
#endif
|
||||
+#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -131,6 +137,10 @@ void nv_drm_exit(
|
||||
)
|
||||
{
|
||||
#if defined(NV_DRM_AVAILABLE)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
+ drm_legacy_pci_exit(&nv_drm_driver, pci_driver);
|
||||
+#else
|
||||
drm_pci_exit(&nv_drm_driver, pci_driver);
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
@@ -1,144 +0,0 @@
|
||||
--- /dev/null
|
||||
+++ b/kernel/nv-mm.h
|
||||
@@ -0,0 +1,55 @@
|
||||
+/*******************************************************************************
|
||||
+ Copyright (c) 2016 NVIDIA Corporation
|
||||
+
|
||||
+ Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
+ of this software and associated documentation files (the "Software"), to
|
||||
+ deal in the Software without restriction, including without limitation the
|
||||
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
+ sell copies of the Software, and to permit persons to whom the Software is
|
||||
+ furnished to do so, subject to the following conditions:
|
||||
+
|
||||
+ The above copyright notice and this permission notice shall be
|
||||
+ included in all copies or substantial portions of the Software.
|
||||
+
|
||||
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
+ DEALINGS IN THE SOFTWARE.
|
||||
+
|
||||
+*******************************************************************************/
|
||||
+#ifndef __NV_MM_H__
|
||||
+#define __NV_MM_H__
|
||||
+
|
||||
+/* get_user_pages_remote() was added by:
|
||||
+ * 2016 Feb 12: 1e9877902dc7e11d2be038371c6fbf2dfcd469d7
|
||||
+ *
|
||||
+ * The very next commit (cde70140fed8429acf7a14e2e2cbd3e329036653)
|
||||
+ * deprecated the 8-argument version of get_user_pages for the
|
||||
+ * non-remote case (calling get_user_pages with current and current->mm).
|
||||
+ *
|
||||
+ * The guidelines are: call NV_GET_USER_PAGES_REMOTE if you need the 8-argument
|
||||
+ * version that uses something other than current and current->mm. Use
|
||||
+ * NV_GET_USER_PAGES if you are refering to current and current->mm.
|
||||
+ *
|
||||
+* Note that get_user_pages_remote() requires the caller to hold a reference on
|
||||
+* the task_struct (if non-NULL) and the mm_struct. This will always be true
|
||||
+* when using current and current->mm. If the kernel passes the driver a vma
|
||||
+* via driver callback, the kernel holds a reference on vma->vm_mm over that
|
||||
+* callback.
|
||||
+ */
|
||||
+
|
||||
+#if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
|
||||
+ #define NV_GET_USER_PAGES get_user_pages
|
||||
+ #define NV_GET_USER_PAGES_REMOTE get_user_pages_remote
|
||||
+#else
|
||||
+ #define NV_GET_USER_PAGES(start, nr_pages, write, force, pages, vmas) \
|
||||
+ get_user_pages(current, current->mm, start, nr_pages, write, force, pages, vmas)
|
||||
+
|
||||
+ #define NV_GET_USER_PAGES_REMOTE get_user_pages
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
+#endif // __NV_MM_H__
|
||||
--- a/kernel/nv-mlock.c
|
||||
+++ b/kernel/nv-mlock.c
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "os-interface.h"
|
||||
#include "nv-linux.h"
|
||||
+#include "nv-mm.h"
|
||||
|
||||
RM_STATUS NV_API_CALL nv_lock_user_pages(
|
||||
nv_state_t *nv,
|
||||
@@ -49,7 +50,7 @@ RM_STATUS NV_API_CALL os_lock_user_pages(
|
||||
}
|
||||
|
||||
down_read(&mm->mmap_sem);
|
||||
- ret = get_user_pages(current, mm, (unsigned long)address,
|
||||
+ ret = NV_GET_USER_PAGES((unsigned long)address,
|
||||
page_count, write, force, user_pages, NULL);
|
||||
up_read(&mm->mmap_sem);
|
||||
pinned = ret;
|
||||
@@ -62,7 +62,7 @@ RM_STATUS NV_API_CALL os_lock_user_pages(
|
||||
else if (pinned < page_count)
|
||||
{
|
||||
for (i = 0; i < pinned; i++)
|
||||
- page_cache_release(user_pages[i]);
|
||||
+ put_page(user_pages[i]);
|
||||
os_free_mem(user_pages);
|
||||
return RM_ERR_INVALID_ADDRESS;
|
||||
}
|
||||
@@ -81,7 +81,7 @@ RM_STATUS NV_API_CALL os_lock_user_pages(
|
||||
{
|
||||
pci_unmap_page(dev, pte_array[j],
|
||||
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
|
||||
- page_cache_release(user_pages[j]);
|
||||
+ put_page(user_pages[j]);
|
||||
}
|
||||
os_free_mem(user_pages);
|
||||
return RM_ERR_OPERATING_SYSTEM;
|
||||
@@ -114,7 +114,7 @@ RM_STATUS NV_API_CALL os_unlock_user_pages(
|
||||
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
|
||||
if (write)
|
||||
set_page_dirty_lock(user_pages[i]);
|
||||
- page_cache_release(user_pages[i]);
|
||||
+ put_page(user_pages[i]);
|
||||
}
|
||||
|
||||
os_free_mem(user_pages);
|
||||
diff --git a/kernel/conftest.sh.orig b/kernel/conftest.sh
|
||||
index d01488b..308ea8a 100755
|
||||
--- a/kernel/conftest.sh
|
||||
+++ b/kernel/conftest.sh
|
||||
@@ -1525,6 +1525,23 @@ compile_test() {
|
||||
|
||||
compile_check_conftest "$CODE" "NV_NODE_END_PFN_PRESENT" "" "functions"
|
||||
;;
|
||||
+
|
||||
+ get_user_pages_remote)
|
||||
+ #
|
||||
+ # Determine if the function get_user_pages_remote() is
|
||||
+ # present.
|
||||
+ #
|
||||
+ # get_user_pages_remote() was added by:
|
||||
+ # 2016 Feb 12: 1e9877902dc7e11d2be038371c6fbf2dfcd469d7
|
||||
+ #
|
||||
+ CODE="
|
||||
+ #include <linux/mm.h>
|
||||
+ int conftest_get_user_pages_remote(void) {
|
||||
+ get_user_pages_remote();
|
||||
+ }"
|
||||
+
|
||||
+ compile_check_conftest "$CODE" "NV_GET_USER_PAGES_REMOTE_PRESENT" "" "functions"
|
||||
+ ;;
|
||||
esac
|
||||
}
|
||||
|
||||
--- a/kernel/Makefile.kbuild
|
||||
+++ b/kernel/Makefile.kbuild
|
||||
@@ -187,7 +187,8 @@ COMPILE_TESTS = \
|
||||
drm_pci_set_busid \
|
||||
write_cr4 \
|
||||
for_each_online_node \
|
||||
- node_end_pfn
|
||||
+ node_end_pfn \
|
||||
+ get_user_pages_remote
|
||||
|
||||
#
|
||||
# CFLAGS dependent on the type of builds (e.g. single/muliple module, debug)
|
||||
@@ -1,78 +0,0 @@
|
||||
--- kernel/os-interface.c 2017-09-14 23:51:09.000000000 +0300
|
||||
+++ kernel/os-interface.c 2019-11-05 19:23:48.332089532 +0300
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "os-interface.h"
|
||||
#include "nv-linux.h"
|
||||
+#include <linux/time.h>
|
||||
|
||||
void NV_API_CALL os_disable_preemption(void)
|
||||
{
|
||||
|
||||
--- kernel/os-interface.c 2019-11-05 19:34:40.868104129 +0300
|
||||
+++ kernel/os-interface.c 2019-11-05 19:38:43.529109557 +0300
|
||||
@@ -26,6 +26,14 @@
|
||||
#include "nv-linux.h"
|
||||
#include <linux/time.h>
|
||||
|
||||
+void do_gettimeofday(struct timeval *tv)
|
||||
+{
|
||||
+struct timespec64 ts;
|
||||
+ktime_get_real_ts64(&ts);
|
||||
+tv->tv_sec = ts.tv_sec;
|
||||
+tv->tv_usec = ts.tv_nsec;
|
||||
+}
|
||||
+
|
||||
void NV_API_CALL os_disable_preemption(void)
|
||||
{
|
||||
#if defined(preempt_disable)
|
||||
diff --git kernel/nv-linux.h kernel/nv-linux.h
|
||||
index 4043bf1..62f0874 100644
|
||||
--- kernel/nv-linux.h
|
||||
+++ kernel/nv-linux.h
|
||||
@@ -877,12 +877,21 @@ extern void *nv_stack_t_cache;
|
||||
__ret; \
|
||||
})
|
||||
#elif (NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT == 3)
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
|
||||
#define NV_SMP_CALL_FUNCTION(func, info, wait) \
|
||||
({ \
|
||||
int __ret = smp_call_function(func, info, wait); \
|
||||
__ret; \
|
||||
})
|
||||
#else
|
||||
+#define NV_SMP_CALL_FUNCTION(func, info, wait) \
|
||||
+ ({ \
|
||||
+ int __ret = 0; \
|
||||
+ smp_call_function(func, info, wait); \
|
||||
+ __ret; \
|
||||
+ })
|
||||
+#endif
|
||||
+#else
|
||||
#error "NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT value unrecognized!"
|
||||
#endif
|
||||
#elif defined(CONFIG_SMP)
|
||||
@@ -897,12 +906,21 @@ extern void *nv_stack_t_cache;
|
||||
__ret; \
|
||||
})
|
||||
#elif (NV_ON_EACH_CPU_ARGUMENT_COUNT == 3)
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)
|
||||
#define NV_ON_EACH_CPU(func, info, wait) \
|
||||
({ \
|
||||
int __ret = on_each_cpu(func, info, wait); \
|
||||
__ret; \
|
||||
})
|
||||
#else
|
||||
+#define NV_ON_EACH_CPU(func, info, wait) \
|
||||
+ ({ \
|
||||
+ int __ret = 0; \
|
||||
+ on_each_cpu(func, info, wait); \
|
||||
+ __ret; \
|
||||
+ })
|
||||
+#endif
|
||||
+#else
|
||||
#error "NV_ON_EACH_CPU_ARGUMENT_COUNT value unrecognized!"
|
||||
#endif
|
||||
#elif defined(CONFIG_SMP)
|
||||
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
--- kernel/nv-drm.c~ 2014-09-12 00:33:06.000000000 +0200
|
||||
+++ kernel/nv-drm.c 2014-10-14 11:35:52.854400737 +0200
|
||||
@@ -18,6 +18,11 @@
|
||||
|
||||
#include <drm/drmP.h>
|
||||
|
||||
+/* 3.18-rc0+ */
|
||||
+#ifndef drm_gem_object
|
||||
+#include <drm/drm_gem.h>
|
||||
+#endif
|
||||
+
|
||||
extern nv_linux_state_t *nv_linux_devices;
|
||||
|
||||
struct nv_gem_object {
|
||||
diff --git a/kernel/nv-drm.c~ b/kernel/nv-drm.c
|
||||
index ecc982a..60d7aae 100644
|
||||
--- kernel/nv-drm.c~
|
||||
+++ kernel/nv-drm.c
|
||||
@@ -129,6 +129,8 @@ static struct drm_driver nv_drm_driver = {
|
||||
.gem_prime_vmap = nv_gem_prime_vmap,
|
||||
.gem_prime_vunmap = nv_gem_prime_vunmap,
|
||||
|
||||
+ .set_busid = drm_pci_set_busid,
|
||||
+
|
||||
.name = "nvidia-drm",
|
||||
.desc = "NVIDIA DRM driver",
|
||||
.date = "20130102",
|
||||
@@ -1,99 +0,0 @@
|
||||
diff -Naur NVIDIA-Linux-x86_64-304.137.orig/kernel/conftest.sh NVIDIA-Linux-x86_64-304.137/kernel/conftest.sh
|
||||
--- NVIDIA-Linux-x86_64-304.137.orig/kernel/conftest.sh 2017-09-14 15:51:09.000000000 -0500
|
||||
+++ NVIDIA-Linux-x86_64-304.137/kernel/conftest.sh 2018-06-02 20:36:12.036907574 -0500
|
||||
@@ -2106,6 +2106,18 @@
|
||||
|
||||
compile_check_conftest "$CODE" "NV_DRM_DRIVER_UNLOAD_HAS_INT_RETURN_TYPE" "" "types"
|
||||
;;
|
||||
+ use_timer_setup)
|
||||
+ #
|
||||
+ # Determine if timer_setup() must be used instead of init_timer().
|
||||
+ #
|
||||
+ CODE="
|
||||
+ #include <linux/timer.h>
|
||||
+ void conftest_use_timer_setup() {
|
||||
+ timer_setup();
|
||||
+ }"
|
||||
+
|
||||
+ compile_check_conftest "$CODE" "NV_USE_TIMER_SETUP" "" "functions"
|
||||
+ ;;
|
||||
esac
|
||||
}
|
||||
|
||||
diff -Naur NVIDIA-Linux-x86_64-304.137.orig/kernel/Makefile.kbuild NVIDIA-Linux-x86_64-304.137/kernel/Makefile.kbuild
|
||||
--- NVIDIA-Linux-x86_64-304.137.orig/kernel/Makefile.kbuild 2017-09-14 15:51:09.000000000 -0500
|
||||
+++ NVIDIA-Linux-x86_64-304.137/kernel/Makefile.kbuild 2018-06-02 20:35:37.020666934 -0500
|
||||
@@ -194,7 +194,8 @@
|
||||
cpuhp_setup_state \
|
||||
vm_fault_present \
|
||||
vm_fault_has_address \
|
||||
- drm_driver_unload_has_int_return_type
|
||||
+ drm_driver_unload_has_int_return_type \
|
||||
+ use_timer_setup
|
||||
#
|
||||
# Miscellaneous NVIDIA kernel module build support targets. They are needed
|
||||
# to satisfy KBUILD requirements and to support NVIDIA specifics.
|
||||
diff -Naur NVIDIA-Linux-x86_64-304.137.orig/kernel/nv.c NVIDIA-Linux-x86_64-304.137/kernel/nv.c
|
||||
--- NVIDIA-Linux-x86_64-304.137.orig/kernel/nv.c 2017-09-14 15:51:09.000000000 -0500
|
||||
+++ NVIDIA-Linux-x86_64-304.137/kernel/nv.c 2018-06-02 20:38:49.777712175 -0500
|
||||
@@ -301,7 +301,6 @@
|
||||
#else
|
||||
irqreturn_t nv_kern_isr(int, void *);
|
||||
#endif
|
||||
-void nv_kern_rc_timer(unsigned long);
|
||||
#if defined(NV_PM_SUPPORT_OLD_STYLE_APM)
|
||||
static int nv_kern_apm_event(struct pm_dev *, pm_request_t, void *);
|
||||
#endif
|
||||
@@ -2075,10 +2074,18 @@
|
||||
}
|
||||
|
||||
void nv_kern_rc_timer(
|
||||
+#ifdef NV_USE_TIMER_SETUP
|
||||
+ struct timer_list *t
|
||||
+#else
|
||||
unsigned long data
|
||||
+#endif
|
||||
)
|
||||
{
|
||||
+#ifdef NV_USE_TIMER_SETUP
|
||||
+ nv_linux_state_t *nvl = from_timer(nvl, t, rc_timer);
|
||||
+#else
|
||||
nv_linux_state_t *nvl = (nv_linux_state_t *) data;
|
||||
+#endif
|
||||
nv_state_t *nv = NV_STATE_PTR(nvl);
|
||||
|
||||
NV_CHECK_PCI_CONFIG_SPACE(nvl->timer_sp, nv, TRUE, TRUE, FALSE);
|
||||
@@ -3029,9 +3036,13 @@
|
||||
return -1;
|
||||
|
||||
nv_printf(NV_DBG_INFO, "NVRM: initializing rc timer\n");
|
||||
+#ifdef NV_USE_TIMER_SETUP
|
||||
+ timer_setup(&nvl->rc_timer, nv_kern_rc_timer, 0);
|
||||
+#else
|
||||
init_timer(&nvl->rc_timer);
|
||||
nvl->rc_timer.function = nv_kern_rc_timer;
|
||||
nvl->rc_timer.data = (unsigned long) nv;
|
||||
+#endif
|
||||
nv->rc_timer_enabled = 1;
|
||||
mod_timer(&nvl->rc_timer, jiffies + HZ); /* set our timeout for 1 second */
|
||||
nv_printf(NV_DBG_INFO, "NVRM: rc timer initialized\n");
|
||||
diff -Naur NVIDIA-Linux-x86_64-304.137.orig/kernel/nv-drm.c NVIDIA-Linux-x86_64-304.137/kernel/nv-drm.c
|
||||
--- NVIDIA-Linux-x86_64-304.137.orig/kernel/nv-drm.c 2017-09-14 15:51:09.000000000 -0500
|
||||
+++ NVIDIA-Linux-x86_64-304.137/kernel/nv-drm.c 2018-06-02 20:34:46.936323877 -0500
|
||||
@@ -22,6 +22,15 @@
|
||||
#include <drm/drm_gem.h>
|
||||
#endif
|
||||
|
||||
+/*
|
||||
+ * drm_pci_(init|exit) were renamed to drm_legacy_pci_(init|exit)
|
||||
+ * in 4.14; map the new interface names to the old ones.
|
||||
+ */
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
+# define drm_pci_init drm_legacy_pci_init
|
||||
+# define drm_pci_exit drm_legacy_pci_exit
|
||||
+#endif
|
||||
+
|
||||
extern nv_linux_state_t *nv_linux_devices;
|
||||
|
||||
static int nv_drm_load(
|
||||
|
||||
@@ -1,282 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>module-nvidia304</Name>
|
||||
<Homepage>http://www.nvidia.com</Homepage>
|
||||
<Packager>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admins@pisilinux.org</Email>
|
||||
</Packager>
|
||||
<License>NVIDIA</License>
|
||||
<IsA>driver</IsA>
|
||||
<Summary>NVIDIA drivers for GeForce 5-7 series GPUs</Summary>
|
||||
<Description>NVIDIA graphics drivers provide optimized 2D/3D performance.</Description>
|
||||
<Archive sha1sum="5b110db57f617aadacb86aa4974847c2954aa1b3" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86/304.137/NVIDIA-Linux-x86-304.137.run</Archive>
|
||||
<Archive sha1sum="8e4bd0aee5f5667aa00c38b8ecf520494d0a9d02" type="binary">http://http.download.nvidia.com/XFree86/Linux-x86_64/304.137/NVIDIA-Linux-x86_64-304.137.run</Archive>
|
||||
<AdditionalFiles>
|
||||
<AdditionalFile target="kernel-4.14.patch">kernel-4.14.patch</AdditionalFile>
|
||||
<AdditionalFile target="nvidia-304.137-bionic-18.04.patch">nvidia-304.137-bionic-18.04.patch</AdditionalFile>
|
||||
<AdditionalFile target="linux-5.3.patch">linux-5.3.patch</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
<BuildDependencies>
|
||||
<Dependency version="5.5.15">kernel-module-headers</Dependency>
|
||||
</BuildDependencies>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>module-nvidia304</Name>
|
||||
<Summary>Kernel module for NVIDIA driver 304.xx releases</Summary>
|
||||
<RuntimeDependencies>2
|
||||
<Dependency version="5.5.15">kernel</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="library" permanent="true">/lib/modules</Path>
|
||||
</Files>
|
||||
<BuildFlags>
|
||||
<Flag>noDelta</Flag>
|
||||
</BuildFlags>
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
<Name>xorg-video-nvidia304</Name>
|
||||
<PartOf>x11.driver</PartOf>
|
||||
<RuntimeDependencies>
|
||||
<Dependency version="current">module-nvidia304</Dependency>
|
||||
<Dependency>libXext</Dependency>
|
||||
<Dependency>xorg-server</Dependency>
|
||||
<Dependency>zlib</Dependency>
|
||||
<Dependency>libX11</Dependency>
|
||||
<Dependency>libgcc</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Conflicts>
|
||||
<Package>xorg-video-nvidia-current</Package>
|
||||
</Conflicts>
|
||||
<Files>
|
||||
<Path fileType="data">/etc/OpenCL</Path>
|
||||
<Path fileType="executable">/usr/bin</Path>
|
||||
<Path fileType="library">/usr/lib</Path>
|
||||
<Path fileType="data">/usr/share</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
</Files>
|
||||
<Provides>
|
||||
<COMAR script="package.py">System.Package</COMAR>
|
||||
</Provides>
|
||||
<BuildFlags>
|
||||
<Flag>noDelta</Flag>
|
||||
</BuildFlags>
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="30">
|
||||
<Date>2020-04-03</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild.</Comment>
|
||||
<Name>Mustafa Cinasal Bojara</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="29">
|
||||
<Date>2020-01-31</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild.</Comment>
|
||||
<Name>Mustafa Cinasal Bojara</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="28">
|
||||
<Date>2019-12-28</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Idris Kalp</Name>
|
||||
<Email>idriskalp@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="27">
|
||||
<Date>2019-08-14</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Idris Kalp</Name>
|
||||
<Email>idriskalp@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="26">
|
||||
<Date>2019-06-09</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Idris Kalp</Name>
|
||||
<Email>idriskalp@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="25">
|
||||
<Date>2019-12-05</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="24">
|
||||
<Date>2019-04-06</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="23">
|
||||
<Date>2019-01-25</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="22">
|
||||
<Date>2018-12-22</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="21">
|
||||
<Date>2018-10-06</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="20">
|
||||
<Date>2018-09-16</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="19">
|
||||
<Date>2018-07-13</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="18">
|
||||
<Date>2018-04-29</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="17">
|
||||
<Date>2018-03-11</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="16">
|
||||
<Date>2018-03-03</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="15">
|
||||
<Date>2018-01-06</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="14">
|
||||
<Date>2017-12-20</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="13">
|
||||
<Date>2017-12-06</Date>
|
||||
<Version>304.137</Version>
|
||||
<Comment>Version bump</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="12">
|
||||
<Date>2017-11-23</Date>
|
||||
<Version>304.135</Version>
|
||||
<Comment>Rebuild</Comment>
|
||||
<Name>Mustafa Cinasal</Name>
|
||||
<Email>muscnsl@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="11">
|
||||
<Date>2017-08-22</Date>
|
||||
<Version>304.135</Version>
|
||||
<Comment>Rebuild</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="10">
|
||||
<Date>2017-07-07</Date>
|
||||
<Version>304.135</Version>
|
||||
<Comment>Version bump.</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="9">
|
||||
<Date>2017-03-11</Date>
|
||||
<Version>304.134</Version>
|
||||
<Comment>Rebuild.</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="8">
|
||||
<Date>2017-01-31</Date>
|
||||
<Version>304.134</Version>
|
||||
<Comment>Version bump</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="7">
|
||||
<Date>2016-12-11</Date>
|
||||
<Version>304.132</Version>
|
||||
<Comment>Rebuild for kernel 4.8.13</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="6">
|
||||
<Date>2016-11-04</Date>
|
||||
<Version>304.132</Version>
|
||||
<Comment>Version bump</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="5">
|
||||
<Date>2016-08-28</Date>
|
||||
<Version>304.131</Version>
|
||||
<Comment>Rebuild for kernel4.7.0</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="4">
|
||||
<Date>2016-08-06</Date>
|
||||
<Version>304.131</Version>
|
||||
<Comment>Rebuild for kernel4.7.0</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="3">
|
||||
<Date>2016-07-17</Date>
|
||||
<Version>304.131</Version>
|
||||
<Comment>Rebuild for kernel4.6.3</Comment>
|
||||
<Name>Kamil Atlı</Name>
|
||||
<Email>suvari@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="2">
|
||||
<Date>2016-04-30</Date>
|
||||
<Version>304.131</Version>
|
||||
<Comment>Rebuild for new kernel</Comment>
|
||||
<Name>Ertuğrul Erata</Name>
|
||||
<Email>ertugrulerata@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="1">
|
||||
<Date>2016-03-06</Date>
|
||||
<Version>304.131</Version>
|
||||
<Comment>First release</Comment>
|
||||
<Name>Ertuğrul Erata</Name>
|
||||
<Email>ertugrulerata@gmail.com</Email>
|
||||
</Update>
|
||||
</History>
|
||||
</PISI>
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>module-nvidia304</Name>
|
||||
<Summary xml:lang="tr">NVIDIA GeForce 6-7 serisi ekran kartları için grafik sürücüleri</Summary>
|
||||
<Description xml:lang="tr">NVIDIA grafik sürücüleri daha iyi 2B/3B başarımı sağlar.</Description>
|
||||
<Summary xml:lang="es">Controladores nVIDIA de kernel y glx para tarjetas NV3 o mejor (Geforce FX o mejor)</Summary>
|
||||
<Description xml:lang="es">Controladores de kernel nVIDIA y glx para rendimiento optimizado 2d/3d en Linux (Para NV3X o mejor).</Description>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>module-nvidia304</Name>
|
||||
<Summary xml:lang="tr">NVIDIA sürücüsü 304.xx sürümleri için çekirdek modülü</Summary>
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
<Name>module-nvidia304-userspace</Name>
|
||||
<Summary xml:lang="tr">nvidia304 çekirdek sürücüsü için kullanıcı tarafı belgeler, araçlar, udev ve modprobe kuralları</Summary>
|
||||
</Package>
|
||||
</PISI>
|
||||
Reference in New Issue
Block a user