Hi Am 06.03.23 um 23:19 schrieb Linus Walleij: > On Wed, Mar 1, 2023 at 4:31 PM Thomas Zimmermann wrote: > >> Add fbdev emulation that is optimized for DMA helpers, as used by most >> drivers. It operates directly on GEM DMA buffers in system memory. >> Memory pages are mmap'ed directly to userspace. No implicit shadow >> buffers need to be allocated; as can happen with the generic fbdev >> emulation. Convert drivers that fulfil the requirements. >> >> Tested with fbcon and IGT on vc4. >> >> Future direction: providing a dedicated fbdev emulation for GEM DMA >> helpers will allow us to remove this case from the generic fbdev code. >> The latter can then be simplified. > > 1) I love your work. Thank you. :) > > 2) Why isn't this DRM driver changed? > drivers/gpu/drm/mcde/mcde_drv.c > AFAICT it also uses GEM buffers in system memory. This driver requires damage handling https://elixir.bootlin.com/linux/v6.2/source/drivers/gpu/drm/mcde/mcde_drv.c#L97 for which we have to call the framebuffer's dirty callback https://elixir.bootlin.com/linux/v6.2/source/drivers/gpu/drm/drm_gem_framebuffer_helper.c#L285 after each write. Doing this with fbdev emulation requires tracking of mmap'ed pages via fbdev's deferred-I/O mechanisms. That makes the fbdev-emulation code more complex. AFAICT, the existing generic fbdev emulation already implements this case 'good enough.' > > 3) This one: > drivers/gpu/drm/pl111/pl111_drv.c > is also very similar, but can sometimes use a dedicated > RAM memory for allocations using CMA, does that make > it not a candidate? Thanks, I think I simply missed pl111. Best regards Thomas > > They aren't much different in how they work from the TVE200. > > Yours, > Linus Walleij -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Ivo Totev