Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package nvidia-open-driver-G06-signed for
openSUSE:Factory checked in at 2026-05-29 18:04:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nvidia-open-driver-G06-signed (Old)
and /work/SRC/openSUSE:Factory/.nvidia-open-driver-G06-signed.new.1937
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nvidia-open-driver-G06-signed"
Fri May 29 18:04:28 2026 rev:94 rq:1355750 version:580.159.03
Changes:
--------
---
/work/SRC/openSUSE:Factory/nvidia-open-driver-G06-signed/nvidia-open-driver-G06-signed.changes
2026-05-05 15:14:27.736929442 +0200
+++
/work/SRC/openSUSE:Factory/.nvidia-open-driver-G06-signed.new.1937/nvidia-open-driver-G06-signed.changes
2026-05-29 18:04:49.420690713 +0200
@@ -1,0 +2,8 @@
+Thu May 28 11:33:36 UTC 2026 - Stefan Dirsch <[email protected]>
+
+- linux-7.0.patch
+ * adjust driver to changes of screen_info with Kernel 7.0,
+ which broke the driver completely (boo#1263825); see also
+
https://forums.developer.nvidia.com/t/linux-driver-595-71-05-still-tries-to-use-screen-info-struct-which-was-refactored-in-7-0-kernel/370825
+
+-------------------------------------------------------------------
New:
----
linux-7.0.patch
----------(New B)----------
New:
- linux-7.0.patch
* adjust driver to changes of screen_info with Kernel 7.0,
----------(New E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nvidia-open-driver-G06-signed.spec ++++++
--- /var/tmp/diff_new_pack.bfPu0Y/_old 2026-05-29 18:04:50.420732075 +0200
+++ /var/tmp/diff_new_pack.bfPu0Y/_new 2026-05-29 18:04:50.424732240 +0200
@@ -104,6 +104,7 @@
%ifnarch aarch64
Patch1: fix-objtool-warnings.patch
%endif
+Patch2: linux-7.0.patch
BuildRequires: %{kernel_module_package_buildreqs}
BuildRequires: fdupes
BuildRequires: gcc-c++
++++++ linux-7.0.patch ++++++
Index: open-gpu-kernel-modules-595.80/kernel-open/common/inc/nv-linux.h
===================================================================
--- open-gpu-kernel-modules-595.80.orig/kernel-open/common/inc/nv-linux.h
+++ open-gpu-kernel-modules-595.80/kernel-open/common/inc/nv-linux.h
@@ -169,6 +169,9 @@
#include <linux/efi.h> /* efi_enabled */
#include <linux/fb.h> /* fb_info struct */
#include <linux/screen_info.h> /* screen_info */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 20, 0)
+#include <linux/sysfb.h> /* sysfb_primary_display */
+#endif
#if !defined(CONFIG_PCI)
#warning "Attempting to build driver for a platform with no PCI support!"
Index: open-gpu-kernel-modules-595.80/kernel-open/nvidia/nv.c
===================================================================
--- open-gpu-kernel-modules-595.80.orig/kernel-open/nvidia/nv.c
+++ open-gpu-kernel-modules-595.80/kernel-open/nvidia/nv.c
@@ -6410,7 +6410,15 @@ void NV_API_CALL nv_get_screen_info(
* in v6.7, 'screen_info' is exported as GPL licensed symbol for ARM64.
*/
-#if NV_CHECK_EXPORT_SYMBOL(screen_info)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 20, 0)
+ // Rel. commit "sysfb: Replace screen_info with sysfb_primary_display"
(Thomas Zimmermann, 26 Nov 2025)
+ const struct screen_info *si = &sysfb_primary_display.screen;
+#elif NV_CHECK_EXPORT_SYMBOL(screen_info)
+ const struct screen_info *si = &screen_info;
+#endif
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 20, 0)) || \
+ NV_CHECK_EXPORT_SYMBOL(screen_info)
/*
* If there is not a framebuffer console, return 0 size.
*
@@ -6418,13 +6426,13 @@ void NV_API_CALL nv_get_screen_info(
* initialization, and then will be set to a value, such as
* VIDEO_TYPE_VLFB or VIDEO_TYPE_EFI if an fbdev console is used.
*/
- if (screen_info.orig_video_isVGA > 1)
+ if (si->orig_video_isVGA > 1)
{
- NvU64 physAddr = screen_info.lfb_base;
+ NvU64 physAddr = si->lfb_base;
#if defined(VIDEO_CAPABILITY_64BIT_BASE)
- if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE)
+ if (si->capabilities & VIDEO_CAPABILITY_64BIT_BASE)
{
- physAddr |= (NvU64)screen_info.ext_lfb_base << 32;
+ physAddr |= (NvU64)si->ext_lfb_base << 32;
}
#endif
/*
@@ -6436,10 +6444,10 @@ void NV_API_CALL nv_get_screen_info(
NV_IS_CONSOLE_MAPPED(nv, physAddr))
{
*pPhysicalAddress = physAddr;
- *pFbWidth = screen_info.lfb_width;
- *pFbHeight = screen_info.lfb_height;
- *pFbDepth = screen_info.lfb_depth;
- *pFbPitch = screen_info.lfb_linelength;
+ *pFbWidth = si->lfb_width;
+ *pFbHeight = si->lfb_height;
+ *pFbDepth = si->lfb_depth;
+ *pFbPitch = si->lfb_linelength;
*pFbSize = (NvU64)(*pFbHeight) * (NvU64)(*pFbPitch);
return;
}