git: 971606f3493f - main - graphics/nvidia-drm-{61,66}-kmod{,-devel}: Fix runtime regression after commit ac934345a14f

From: Nuno Teixeira <eduardo_at_FreeBSD.org>
Date: Fri, 26 Sep 2025 21:31:34 UTC
The branch main has been updated by eduardo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=971606f3493fbbc77c156ab84243ab952d89a81b

commit 971606f3493fbbc77c156ab84243ab952d89a81b
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-09-26 21:10:08 +0000
Commit:     Nuno Teixeira <eduardo@FreeBSD.org>
CommitDate: 2025-09-26 21:19:14 +0000

    graphics/nvidia-drm-{61,66}-kmod{,-devel}: Fix runtime regression after commit ac934345a14f
    
    PR:             289647
    Fixes:          ac934345a14f (Update distinfo after drm-{61,66}-kmod updates)
---
 graphics/nvidia-drm-61-kmod-devel/Makefile         |  2 +-
 graphics/nvidia-drm-61-kmod/Makefile               |  2 +-
 .../patch-nvidia-drm-freebsd-lkpi.c-20250918-01    | 47 ++++++++++++++++++++++
 graphics/nvidia-drm-66-kmod-devel/Makefile         |  2 +-
 graphics/nvidia-drm-66-kmod/Makefile               |  2 +-
 .../patch-nvidia-drm-freebsd-lkpi.c-20250918-01    | 47 ++++++++++++++++++++++
 6 files changed, 98 insertions(+), 4 deletions(-)

diff --git a/graphics/nvidia-drm-61-kmod-devel/Makefile b/graphics/nvidia-drm-61-kmod-devel/Makefile
index 9d2138ba50bd..96d0c7d006d9 100644
--- a/graphics/nvidia-drm-61-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-61-kmod-devel/Makefile
@@ -1,6 +1,6 @@
 NVIDIA_DISTVERSION?=	580.82.07
 # Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION=	1
+PORTREVISION=	2
 MASTERDIR=	${.CURDIR}/../nvidia-drm-61-kmod
 PKGNAMESUFFIX=	-devel
 
diff --git a/graphics/nvidia-drm-61-kmod/Makefile b/graphics/nvidia-drm-61-kmod/Makefile
index 33aa61bc2023..7e5747d7622d 100644
--- a/graphics/nvidia-drm-61-kmod/Makefile
+++ b/graphics/nvidia-drm-61-kmod/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	nvidia-drm-61-kmod
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	graphics
 
 BUILD_DEPENDS+=	${KMODDIR}/drm.ko:graphics/drm-61-kmod
diff --git a/graphics/nvidia-drm-61-kmod/files/patch-nvidia-drm-freebsd-lkpi.c-20250918-01 b/graphics/nvidia-drm-61-kmod/files/patch-nvidia-drm-freebsd-lkpi.c-20250918-01
new file mode 100644
index 000000000000..c703950a0c88
--- /dev/null
+++ b/graphics/nvidia-drm-61-kmod/files/patch-nvidia-drm-freebsd-lkpi.c-20250918-01
@@ -0,0 +1,47 @@
+--- nvidia-drm-freebsd-lkpi.c.orig	2025-08-27 17:59:14 UTC
++++ nvidia-drm-freebsd-lkpi.c
+@@ -104,6 +104,35 @@ lkpinew_pci_dev(device_t dev)
+  * FreeBSD linuxkpi based loading support code.
+  *************************************************************************/
+ 
++static int
++dummy_nv_pci_probe(struct pci_dev *pci_dev __unused,
++    const struct pci_device_id *id_table __unused)
++{
++	return (0);
++}
++
++static void
++dummy_nv_pci_remove(struct pci_dev *pci_dev __unused)
++{
++}
++
++static void
++dummy_nv_pci_shutdown(struct pci_dev *pci_dev __unused)
++{
++}
++
++struct pci_driver nv_pci_driver = {
++	.name =		"drmn",
++	.id_table =	nv_pci_table,
++	.probe =	dummy_nv_pci_probe,
++	.remove =	dummy_nv_pci_remove,
++	.shutdown =	dummy_nv_pci_shutdown,
++#if defined(__FreeBSD__)
++	/* FreeBSD internal/specifc. */
++	.isdrm =	true,
++#endif
++};
++
+ static struct pci_dev *nv_lkpi_pci_devs[NV_MAX_DEVICES];
+ 
+ int nv_drm_probe_devices(void)
+@@ -153,7 +182,7 @@ int nv_drm_probe_devices(void)
+             return -ENOMEM;
+         }
+ 
+-        if (linux_pci_attach_device(sc->dev, NULL, NULL, pdev)) {
++        if (linux_pci_attach_device(sc->dev, &nv_pci_driver, NULL, pdev)) {
+             NV_DRM_LOG_ERR("Failed to attach linuxkpi PCI device");
+             free(pdev, M_DEVBUF);
+             return -ENOMEM;
diff --git a/graphics/nvidia-drm-66-kmod-devel/Makefile b/graphics/nvidia-drm-66-kmod-devel/Makefile
index 0732d38c767c..7941985a9c4b 100644
--- a/graphics/nvidia-drm-66-kmod-devel/Makefile
+++ b/graphics/nvidia-drm-66-kmod-devel/Makefile
@@ -1,6 +1,6 @@
 NVIDIA_DISTVERSION?=	580.82.07
 # Explicitly set PORTREVISION as it can be overridden by the master port
-PORTREVISION=	1
+PORTREVISION=	2
 MASTERDIR=	${.CURDIR}/../nvidia-drm-66-kmod
 PKGNAMESUFFIX=	-devel
 
diff --git a/graphics/nvidia-drm-66-kmod/Makefile b/graphics/nvidia-drm-66-kmod/Makefile
index 1b8560063184..19636dc722bc 100644
--- a/graphics/nvidia-drm-66-kmod/Makefile
+++ b/graphics/nvidia-drm-66-kmod/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	nvidia-drm-66-kmod
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	graphics
 
 BUILD_DEPENDS+=	${KMODDIR}/drm.ko:graphics/drm-66-kmod
diff --git a/graphics/nvidia-drm-66-kmod/files/patch-nvidia-drm-freebsd-lkpi.c-20250918-01 b/graphics/nvidia-drm-66-kmod/files/patch-nvidia-drm-freebsd-lkpi.c-20250918-01
new file mode 100644
index 000000000000..c703950a0c88
--- /dev/null
+++ b/graphics/nvidia-drm-66-kmod/files/patch-nvidia-drm-freebsd-lkpi.c-20250918-01
@@ -0,0 +1,47 @@
+--- nvidia-drm-freebsd-lkpi.c.orig	2025-08-27 17:59:14 UTC
++++ nvidia-drm-freebsd-lkpi.c
+@@ -104,6 +104,35 @@ lkpinew_pci_dev(device_t dev)
+  * FreeBSD linuxkpi based loading support code.
+  *************************************************************************/
+ 
++static int
++dummy_nv_pci_probe(struct pci_dev *pci_dev __unused,
++    const struct pci_device_id *id_table __unused)
++{
++	return (0);
++}
++
++static void
++dummy_nv_pci_remove(struct pci_dev *pci_dev __unused)
++{
++}
++
++static void
++dummy_nv_pci_shutdown(struct pci_dev *pci_dev __unused)
++{
++}
++
++struct pci_driver nv_pci_driver = {
++	.name =		"drmn",
++	.id_table =	nv_pci_table,
++	.probe =	dummy_nv_pci_probe,
++	.remove =	dummy_nv_pci_remove,
++	.shutdown =	dummy_nv_pci_shutdown,
++#if defined(__FreeBSD__)
++	/* FreeBSD internal/specifc. */
++	.isdrm =	true,
++#endif
++};
++
+ static struct pci_dev *nv_lkpi_pci_devs[NV_MAX_DEVICES];
+ 
+ int nv_drm_probe_devices(void)
+@@ -153,7 +182,7 @@ int nv_drm_probe_devices(void)
+             return -ENOMEM;
+         }
+ 
+-        if (linux_pci_attach_device(sc->dev, NULL, NULL, pdev)) {
++        if (linux_pci_attach_device(sc->dev, &nv_pci_driver, NULL, pdev)) {
+             NV_DRM_LOG_ERR("Failed to attach linuxkpi PCI device");
+             free(pdev, M_DEVBUF);
+             return -ENOMEM;