Hi Thomas, On Tue, Apr 16, 2024 at 2:07 PM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > Am 16.04.24 um 13:25 schrieb Javier Martinez Canillas: > > Thomas Zimmermann <tzimmermann@xxxxxxx> writes: > > Do I understand correctly that info->fix.smem_start doesn't have to be set > > because that's only used for I/O memory? > > It's the start of the framebuffer memory in physical memory. Setting > smem_start only makes sense if the framebuffer is physically continuous, > which isn't the case here. Nothing really needs fix.smem_start, it's mainly for informative use. However, if smem_start is not page-aligned, userspace does need to know the start offset inside the page (see below). > > This also made me think why info->fix.smem_len is really needed. Can't we > > make the fbdev core to only look at that if info->screen_size is not set ? > > The fbdev core doesn't use smem_len AFAICT. But smem_len is part of the > fbdev UAPI, so I set it. I assume that programs use it to go to the end > of the framebuffer memory. On fbdev drivers also exporting MMIO to userspace, /dev/fbX contains two parts: first the frame buffer, followed by the MMIO registers. Both parts are an integral number of pages, based on fix.smem_{start,len} resp. fix.mmio_{start,len}. Old XFree86 used the MMIO part to implement hardware acceleration when running on top of fbdev. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds