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;
         }

Reply via email to