Hi Thomas, On Fri, May 12, 2023 at 10:41:41AM +0200, Thomas Zimmermann wrote: > DRM provides a number of wrappers around fbdev cfb_() sys_(), fb_io_() > and fb_sys_() helpers. The DRM functions don't provide any additional > functionality for most DRM drivers. So remove them and call the fbdev > I/O helpers directly. > > The DRM fbdev I/O wrappers were originally added because <linux/fb.h> > does not protect its content with CONFIG_FB. DRM fbdev emulation did > not build if the the config option had been disabled. This has been > fixed. For fbdev-generic and i915, the wrappers added support for damage > handling. But this is better handled within the two callers, as each > is special in its damage handling. > > Patches 1 to 8 replace the DRM wrappers in a number of fbdev emulations. > Patch 9 exports two helpers for damage handling. Patches 10 and 11 > update fbdev-generic and i915 with the help of the exported functions. > The patches also remove DRM's fbdev I/O helpers, which are now unused. > > DRM's fbdev helpers had to select fbdev I/O helpers for I/O and for > system memory. Each fbdev emulation now selects the correct helpers > for itself. Depending on the selected DRM drivers, kernel builds will > now only contain the necessary fbdev I/O helpers and might be slightly > smaller in size. Nice cleanup. >From one of the patches: > +config DRM_ARMADA_FBDEV_EMULATION > + bool > + depends on DRM_ARMADA > + select FB_CFB_COPYAREA > + select FB_CFB_FILLRECT > + select FB_CFB_IMAGEBLIT This seems like a hard to maintain way to select a few helper functions. Today we have LD_DEAD_CODE_DATA_ELIMINATION for the configs that care about size - and that should work here as well. I understand where this comes from and I am not against the solution, but wanted to point at a more modern approach to deal with the bloat. Maybe some of the embbedded folks can tell if LD_DEAD_CODE_DATA_ELIMINATION can be trusted yet or that is something for the future. In barebox -ffunction-section (what LD_DEAD_CODE_DATA_ELIMINATION enables) is used with success - there it really helps when generating different barebox images where size matters a lot. Sam