[RFC PATCH 0/4] Allow to use DRM fbdev emulation layer with CONFIG_FB disabled

From: Javier Martinez Canillas
Date: Fri Aug 27 2021 - 06:01:02 EST


This patch series splits the fbdev core support in two different Kconfig
symbols: FB and FB_CORE. The motivation for this is to allow CONFIG_FB to
be disabled, while still using fbcon with the DRM fbdev emulation layer.

The reason for doing this is that now with simpledrm we could just boot
with simpledrm -> real DRM driver, without needing any legacy fbdev driver
(e.g: efifb or simplefb) even for the early console.

We want to do that in the Fedora kernel, but currently need to keep option
CONFIG_FB enabled and all fbdev drivers explicitly disabled, which makes
the configuration harder to maintain.

It is a RFC because I'm not that familiar with the fbdev core, but I have
tested and works with CONFIG_DRM_FBDEV_EMULATION=y and CONFIG_FB disabled.
This config automatically disables all the fbdev drivers that is our goal.

Patch 1/4 is just a clean up, patch 2/4 moves a couple of functions out of
fbsysfs.o, that are not related to sysfs attributes creation and finally
patch 3/4 makes the fbdev split that is mentioned above.

Patch 4/4 makes the DRM fbdev emulation depend on the new FB_CORE symbol
instead of FB. This could be done as a follow-up but for completeness is
also included in this series.

Best regards,
Javier


Javier Martinez Canillas (4):
fbdev: Rename fb_*_device() functions names to match what they do
fbdev: Move framebuffer_{alloc,release}() functions to fbmem.c
fbdev: Split frame buffer support in FB and FB_CORE symbols
drm: Make fbdev emulation depend on FB_CORE instead of FB

arch/x86/Makefile | 2 +-
arch/x86/video/Makefile | 2 +-
drivers/gpu/drm/Kconfig | 2 +-
drivers/video/console/Kconfig | 2 +-
drivers/video/fbdev/Kconfig | 57 +++++++++++++---------
drivers/video/fbdev/core/Makefile | 13 +++--
drivers/video/fbdev/core/fbmem.c | 73 ++++++++++++++++++++++++++--
drivers/video/fbdev/core/fbsysfs.c | 77 +-----------------------------
include/linux/fb.h | 18 ++++++-
9 files changed, 134 insertions(+), 112 deletions(-)

--
2.31.1