[PATCH 00/11] drm/fbdev: Remove DRM's helpers for fbdev I/O

Sam Ravnborg sam at ravnborg.org
Fri May 12 13:41:20 UTC 2023


Hi Thomas,
> > 
> > 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 wasn't too happy about this solution either as it is quite verbose. But I
> don't want to rely on the linker either. It certainly cannot remove exported
> symbols.
I forgot about exported symbols - that makes the idea futile.

> 
> But the pattern is very common among the fbdev drivers. We could introduce
> common Kconfig options in fbdev and selcet those instead. Like this:
> 
> const FB_IO_HELPERS
> 	bool
> 	depends on FB
> 	select FB_CFB_COPYAREA
> 	select FB_CFB_FILLRECT
> 	select FB_CFB_IMAGEBLIT
> 
> const FB_SYS_HELPERS
> 	bool
> 	depends on FB
> 	select FB_SYS_COPYAREA
> 	select FB_SYS_FILLRECT
> 	select FB_SYS_FOPS
> 	select FB_SYS_IMAGEBLIT
> 
> Apart from DRM, most of the fbdev drivers could use these as well.
That's a much nicer way to express it - and with this we do not introduce
the IMO confusing CFB (Color Frame Buffer) abbreviation in every driver.

	Sam


More information about the dri-devel mailing list