Public bug reported:

Various APIs have changed after Kernel 6.19 in the DRM header, and some
functions have become inaccessible, the vram pinning cannot be done
anymore but it seems it's already handled by the vmap/vunmap functions.

This is the failure
======================================================================================================
  CC [M]  ddk750/ddk750_cursor.o
smi_main.c:59:22: error: initialization of ‘struct drm_framebuffer * (*)(struct 
drm_device *, struct drm_file *, const struct drm_format_info *, const struct 
drm_mode_fb_cmd2 *)’ from incompatible pointer type ‘struct drm_framebuffer * 
(*)(struct drm_device *, struct drm_file *, const struct drm_mode_fb_cmd2 *)’ 
[-Wincompatible-pointer-types]
   59 |         .fb_create = smi_user_framebuffer_create,
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
smi_main.c:59:22: note: (near initialization for 
‘smi_mode_config_funcs.fb_create’)
smi_main.c:43:32: note: ‘smi_user_framebuffer_create’ declared here
   43 | static struct drm_framebuffer *smi_user_framebuffer_create(struct 
drm_device *dev,
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  ddk768/ddk768_help.o
smi_main.c: In function ‘smi_handle_damage’:
smi_main.c:151:15: error: implicit declaration of function ‘drm_gem_vram_pin’; 
did you mean ‘drm_gem_vram_put’? [-Wimplicit-function-declaration]
  151 |         ret = drm_gem_vram_pin(gbo, DRM_GEM_VRAM_PL_FLAG_VRAM);
      |               ^~~~~~~~~~~~~~~~
      |               drm_gem_vram_put
  CC [M]  ddk768/ddk768_chip.o
  CC [M]  ddk768/ddk768_clock.o
smi_main.c:235:17: error: implicit declaration of function 
‘drm_gem_vram_unpin’; did you mean ‘drm_gem_vram_vunmap’? 
[-Wimplicit-function-declaration]
  235 |                 drm_gem_vram_unpin(gbo);
      |                 ^~~~~~~~~~~~~~~~~~
      |                 drm_gem_vram_vunmap
smi_main.c: In function ‘smi_user_framebuffer_create’:
smi_main.c:305:57: error: passing argument 3 of ‘drm_gem_fb_create_with_funcs’ 
from incompatible pointer type [-Wincompatible-pointer-types]
  305 |         return (drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, 
&smi_fb_funcs));
      |                                                         ^~~~~~~~
      |                                                         |
      |                                                         const struct 
drm_mode_fb_cmd2 *
In file included from smi_main.c:21:
/usr/src/linux-headers-6.19.0-9-generic/include/drm/drm_gem_framebuffer_helper.h:33:60:
 note: expected ‘const struct drm_format_info *’ but argument is of type ‘const 
struct drm_mode_fb_cmd2 *’
   33 |                              const struct drm_format_info *info,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
smi_main.c:305:67: error: passing argument 4 of ‘drm_gem_fb_create_with_funcs’ 
from incompatible pointer type [-Wincompatible-pointer-types]
  305 |         return (drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, 
&smi_fb_funcs));
      |                                                                   
^~~~~~~~~~~~~
      |                                                                   |
      |                                                                   const 
struct drm_framebuffer_funcs *
/usr/src/linux-headers-6.19.0-9-generic/include/drm/drm_gem_framebuffer_helper.h:34:61:
 note: expected ‘const struct drm_mode_fb_cmd2 *’ but argument is of type 
‘const struct drm_framebuffer_funcs *’
   34 |                              const struct drm_mode_fb_cmd2 *mode_cmd,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
smi_main.c:305:17: error: too few arguments to function 
‘drm_gem_fb_create_with_funcs’; expected 5, have 4
  305 |         return (drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, 
&smi_fb_funcs));
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/linux-headers-6.19.0-9-generic/include/drm/drm_gem_framebuffer_helper.h:32:1:
 note: declared here
   32 | drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file 
*file,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** 
[/usr/src/linux-headers-6.19.0-9-generic/scripts/Makefile.build:289: 
smi_main.o] Error 1
make[3]: *** Waiting for unfinished jobs....
hw768.c:200:6: warning: no previous prototype for ‘hw768_init_hdmi’ 
[-Wmissing-prototypes]
  200 | void hw768_init_hdmi(void)
      |      ^~~~~~~~~~~~~~~
smi_plane.c: In function ‘smi_cursor_atomic_update’:
smi_plane.c:138:21: error: implicit declaration of function ‘drm_gem_vram_pin’; 
did you mean ‘drm_gem_vram_put’? [-Wimplicit-function-declaration]
  138 |                 if (drm_gem_vram_pin(gbo, DRM_GEM_VRAM_PL_FLAG_VRAM) < 
0) {
      |                     ^~~~~~~~~~~~~~~~
      |                     drm_gem_vram_put
smi_plane.c:146:25: error: implicit declaration of function 
‘drm_gem_vram_unpin’; did you mean ‘drm_gem_vram_vunmap’? 
[-Wimplicit-function-declaration]
  146 |                         drm_gem_vram_unpin(gbo);
      |                         ^~~~~~~~~~~~~~~~~~
      |                         drm_gem_vram_vunmap
make[3]: *** 
[/usr/src/linux-headers-6.19.0-9-generic/scripts/Makefile.build:289: 
smi_plane.o] Error 1
smi_mode.c:1096:23: error: initialization of ‘enum drm_mode_status (*)(struct 
drm_connector *, const struct drm_display_mode *)’ from incompatible pointer 
type ‘enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode 
*)’ [-Wincompatible-pointer-types]
 1096 |         .mode_valid = smi_connector_mode_valid,
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~
smi_mode.c:1096:23: note: (near initialization for 
‘smi_vga_connector_helper_funcs.mode_valid’)
smi_mode.c:821:29: note: ‘smi_connector_mode_valid’ declared here
  821 | static enum drm_mode_status smi_connector_mode_valid(struct 
drm_connector *connector,
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** 
[/usr/src/linux-headers-6.19.0-9-generic/scripts/Makefile.build:289: 
smi_mode.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.19.0-9-generic/Makefile:2069: .] Error 2
make[1]: *** [/usr/src/linux-headers-6.19.0-9-generic/Makefile:248: __sub-make] 
Error 2
make[1]: Leaving directory '/var/lib/dkms/smifb2/2.4.1/build'
make: *** [Makefile:248: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.19.0-9-generic'

# exit code: 2
# elapsed time: 00:00:02
----------------------------------------------------------------
======================================================================================================

** Affects: smifb2 (Ubuntu)
     Importance: Medium
     Assignee: Alessio Faina (alessiofaina)
         Status: In Progress

** Affects: smifb2 (Ubuntu Resolute)
     Importance: Medium
     Assignee: Alessio Faina (alessiofaina)
         Status: In Progress

** Also affects: smifb2 (Ubuntu Resolute)
   Importance: Undecided
       Status: New

** Changed in: smifb2 (Ubuntu Resolute)
   Importance: Undecided => Medium

** Changed in: smifb2 (Ubuntu Resolute)
     Assignee: (unassigned) => Alessio Faina (alessiofaina)

** Changed in: smifb2 (Ubuntu Resolute)
       Status: New => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2144583

Title:
  smifb2-dkms fails to build agains Kernel 6.19 and 7.0

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/smifb2/+bug/2144583/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to