diff options
author | Alexey Dokuchaev <danfe@FreeBSD.org> | 2021-02-06 19:50:32 +0800 |
---|---|---|
committer | Alexey Dokuchaev <danfe@FreeBSD.org> | 2021-02-06 19:50:32 +0800 |
commit | 48c3156500077c687b8fd3e6477218c048e2c529 (patch) | |
tree | 00bc97ef2d67eb92fbc50ac189ec5f85ef21abb1 | |
parent | ec112fba14458b0cf4e46ba084fea4e75a23e20a (diff) | |
download | freebsd-ports-gnome-48c3156500077c687b8fd3e6477218c048e2c529.tar.gz freebsd-ports-gnome-48c3156500077c687b8fd3e6477218c048e2c529.tar.zst freebsd-ports-gnome-48c3156500077c687b8fd3e6477218c048e2c529.zip |
Forward-port ``extra-patch-src-nvidia_ctl.c'' patch to 460.xx branch,
I somehow missed it when rebasing other changes. While here, flatten
and rename 460-* patches, they do not need %%NVSRC%% substitution.
Pointy hat to: danfe
-rw-r--r-- | x11/nvidia-driver/Makefile | 7 | ||||
-rw-r--r-- | x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_ctl.c | 72 | ||||
-rw-r--r-- | x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_linux.c (renamed from x11/nvidia-driver/files/460-patch-src-nvidia_linux.c.in) | 4 |
3 files changed, 78 insertions, 5 deletions
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile index 57f9fbc2c1fa..2f8a05196b36 100644 --- a/x11/nvidia-driver/Makefile +++ b/x11/nvidia-driver/Makefile @@ -13,7 +13,7 @@ PORTNAME= nvidia-driver DISTVERSION?= 460.39 # Always try to set PORTREVISION as it can be overridden by the slave ports -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= x11 MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION} DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION} @@ -72,8 +72,9 @@ EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_nvidia-modeset_nvidia-modeset-freebs SUB_PATCHES+= extra-patch-src-nvidia_ctl.c \ extra-patch-src-nvidia_linux.c .else -EXTRA_PATCHES+= ${FILESDIR}/460-patch-lib-libGLX_nvidia-Makefile -SUB_PATCHES+= 460-patch-src-nvidia_linux.c +EXTRA_PATCHES+= ${FILESDIR}/460-patch-lib-libGLX_nvidia-Makefile \ + ${FILESDIR}/460-patch-src-nvidia-nvidia_ctl.c \ + ${FILESDIR}/460-patch-src-nvidia-nvidia_linux.c .endif OPTIONS_DEFINE= ACPI_PM LINUX WBINVD DOCS diff --git a/x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_ctl.c b/x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_ctl.c new file mode 100644 index 000000000000..0c48a955d02e --- /dev/null +++ b/x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_ctl.c @@ -0,0 +1,72 @@ +--- src/nvidia/nvidia_ctl.c.orig 2021-01-21 21:50:34 UTC ++++ src/nvidia/nvidia_ctl.c +@@ -13,6 +13,12 @@ + #include "nv.h" + #include "nv-freebsd.h" + ++#ifdef NV_SUPPORT_LINUX_COMPAT /* (COMPAT_LINUX || COMPAT_LINUX32) */ ++#include <compat/linux/linux_util.h> ++ ++const char nvidia_driver_name[] = "nvidia"; ++#endif ++ + static d_open_t nvidia_ctl_open; + static void nvidia_ctl_dtor(void *arg); + static d_ioctl_t nvidia_ctl_ioctl; +@@ -138,6 +144,18 @@ static int nvidia_ctl_poll( + + int nvidia_ctl_attach(void) + { ++#ifdef NV_SUPPORT_LINUX_COMPAT ++ struct linux_device_handler nvidia_ctl_linux_handler = { ++ .bsd_driver_name = __DECONST(char *, nvidia_driver_name), ++ .linux_driver_name = __DECONST(char *, nvidia_driver_name), ++ .bsd_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name), ++ .linux_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name), ++ .linux_major = NV_MAJOR_DEVICE_NUMBER, ++ .linux_minor = 255, ++ .linux_char_device = 1 ++ }; ++#endif ++ + if (nvidia_count == 0) { + nvidia_ctl_cdev = make_dev(&nvidia_ctl_cdevsw, + CDEV_CTL_MINOR, +@@ -145,6 +163,10 @@ int nvidia_ctl_attach(void) + "%s", nvidia_ctl_cdevsw.d_name); + if (nvidia_ctl_cdev == NULL) + return ENOMEM; ++ ++#ifdef NV_SUPPORT_LINUX_COMPAT ++ (void)linux_device_register_handler(&nvidia_ctl_linux_handler); ++#endif + } + + nvidia_count++; +@@ -153,10 +175,25 @@ int nvidia_ctl_attach(void) + + int nvidia_ctl_detach(void) + { ++#ifdef NV_SUPPORT_LINUX_COMPAT ++ struct linux_device_handler nvidia_ctl_linux_handler = { ++ .bsd_driver_name = __DECONST(char *, nvidia_driver_name), ++ .linux_driver_name = __DECONST(char *, nvidia_driver_name), ++ .bsd_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name), ++ .linux_device_name = __DECONST(char *, nvidia_ctl_cdevsw.d_name), ++ .linux_major = NV_MAJOR_DEVICE_NUMBER, ++ .linux_minor = 255, ++ .linux_char_device = 1 ++ }; ++#endif + nvidia_count--; + +- if (nvidia_count == 0) ++ if (nvidia_count == 0) { ++#ifdef NV_SUPPORT_LINUX_COMPAT ++ (void)linux_device_unregister_handler(&nvidia_ctl_linux_handler); ++#endif + destroy_dev(nvidia_ctl_cdev); ++ } + + return 0; + } diff --git a/x11/nvidia-driver/files/460-patch-src-nvidia_linux.c.in b/x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_linux.c index 083c7a1c1642..eedc3001c708 100644 --- a/x11/nvidia-driver/files/460-patch-src-nvidia_linux.c.in +++ b/x11/nvidia-driver/files/460-patch-src-nvidia-nvidia_linux.c @@ -1,5 +1,5 @@ ---- src/%%NVSRC%%/nvidia_linux.c.orig 2017-09-14 20:46:30 UTC -+++ src/%%NVSRC%%/nvidia_linux.c +--- src/nvidia/nvidia_linux.c.orig 2021-01-21 21:50:34 UTC ++++ src/nvidia/nvidia_linux.c @@ -35,21 +35,16 @@ int linux_ioctl_nvidia( struct linux_ioctl_args *args ) |