diff options
Diffstat (limited to 'system/nvidia-legacy304-kernel')
-rw-r--r-- | system/nvidia-legacy304-kernel/4.14_kernel.patch | 26 | ||||
-rw-r--r-- | system/nvidia-legacy304-kernel/4.15_kernel.patch | 48 | ||||
-rw-r--r-- | system/nvidia-legacy304-kernel/nvidia-legacy304-kernel.SlackBuild | 4 |
3 files changed, 78 insertions, 0 deletions
diff --git a/system/nvidia-legacy304-kernel/4.14_kernel.patch b/system/nvidia-legacy304-kernel/4.14_kernel.patch new file mode 100644 index 0000000000000..6642189009b81 --- /dev/null +++ b/system/nvidia-legacy304-kernel/4.14_kernel.patch @@ -0,0 +1,26 @@ +diff -ur a/kernel/nv-drm.c b/kernel/nv-drm.c +--- a/kernel/nv-drm.c 2017-09-14 23:51:09.000000003 +0300 ++++ b/kernel/nv-drm.c 2017-12-06 18:47:48.279729889 +0200 +@@ -121,7 +121,11 @@ + { + int ret = 0; + #if defined(NV_DRM_AVAILABLE) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) + ret = drm_pci_init(&nv_drm_driver, pci_driver); ++#else ++ ret = drm_legacy_pci_init(&nv_drm_driver, pci_driver); ++#endif + #endif + return ret; + } +@@ -131,6 +135,10 @@ + ) + { + #if defined(NV_DRM_AVAILABLE) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) + drm_pci_exit(&nv_drm_driver, pci_driver); ++#else ++ drm_legacy_pci_exit(&nv_drm_driver, pci_driver); ++#endif + #endif + } diff --git a/system/nvidia-legacy304-kernel/4.15_kernel.patch b/system/nvidia-legacy304-kernel/4.15_kernel.patch new file mode 100644 index 0000000000000..fdac62fb24b43 --- /dev/null +++ b/system/nvidia-legacy304-kernel/4.15_kernel.patch @@ -0,0 +1,48 @@ +diff -ur a/kernel/nv.c b/kernel/nv.c +--- a/kernel/nv.c 2017-09-14 23:51:09.000000000 +0300 ++++ b/kernel/nv.c 2018-02-13 14:56:42.289490885 +0200 +@@ -301,7 +301,11 @@ + #else + irqreturn_t nv_kern_isr(int, void *); + #endif ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + void nv_kern_rc_timer(unsigned long); ++#else ++void nv_kern_rc_timer(struct timer_list *t); ++#endif + #if defined(NV_PM_SUPPORT_OLD_STYLE_APM) + static int nv_kern_apm_event(struct pm_dev *, pm_request_t, void *); + #endif +@@ -2075,10 +2079,18 @@ + } + + void nv_kern_rc_timer( ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + unsigned long data ++#else ++ struct timer_list *t ++#endif + ) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + nv_linux_state_t *nvl = (nv_linux_state_t *) data; ++#else ++ nv_linux_state_t *nvl = from_timer(nvl, t, rc_timer); ++#endif + nv_state_t *nv = NV_STATE_PTR(nvl); + + NV_CHECK_PCI_CONFIG_SPACE(nvl->timer_sp, nv, TRUE, TRUE, FALSE); +@@ -3029,9 +3041,13 @@ + return -1; + + nv_printf(NV_DBG_INFO, "NVRM: initializing rc timer\n"); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) + init_timer(&nvl->rc_timer); + nvl->rc_timer.function = nv_kern_rc_timer; + nvl->rc_timer.data = (unsigned long) nv; ++#else ++ timer_setup(&nvl->rc_timer, nv_kern_rc_timer, 0); ++#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 --git a/system/nvidia-legacy304-kernel/nvidia-legacy304-kernel.SlackBuild b/system/nvidia-legacy304-kernel/nvidia-legacy304-kernel.SlackBuild index c789ab3a6acc0..db6edc4a0db19 100644 --- a/system/nvidia-legacy304-kernel/nvidia-legacy304-kernel.SlackBuild +++ b/system/nvidia-legacy304-kernel/nvidia-legacy304-kernel.SlackBuild @@ -75,6 +75,10 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +# https://pkgs.rpmfusion.org/cgit/nonfree/nvidia-304xx-kmod.git/log/ +patch -p1 < $CWD/4.14_kernel.patch +patch -p1 < $CWD/4.15_kernel.patch + cd kernel || exit 1 make SYSSRC=$KERNELPATH module || exit 1 |