On Tue, Jul 27, 2021 at 11:30:15AM +0200, Javier Martinez Canillas wrote: > The Generic System Framebuffers support is built when the COMPILE_TEST > option is enabled. But this wrongly assumes that all the architectures > declare a struct screen_info. > > This is true for most architectures, but at least the following do not: > arc, m68k, microblaze, openrisc, parisc and s390. > > By attempting to make this compile testeable on all architectures, it > leads to linking errors as reported by the kernel test robot for parisc: > > All errors (new ones prefixed by >>): > > hppa-linux-ld: drivers/firmware/sysfb.o: in function `sysfb_init': > (.init.text+0x24): undefined reference to `screen_info' > >> hppa-linux-ld: (.init.text+0x28): undefined reference to `screen_info' > > To prevent these errors only allow sysfb to be built on systems that are > going to need it, which are x86 BIOS and EFI. > > The EFI Kconfig symbol is used instead of (ARM || ARM64 || RISC) because > some of these architectures only declare a struct screen_info if EFI is > enabled. And also, because the SYSFB code is only used for EFI on these > architectures. For !EFI the "simple-framebuffer" device is registered by > OF when parsing the Device Tree Blob (if a DT node for this was defined). > > Fixes: d391c5827107 ("drivers/firmware: move x86 Generic System Framebuffers support") > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Signed-off-by: Javier Martinez Canillas <javierm@xxxxxxxxxx> Whacked onto drm-next so we're welcome again in linux-next. -Daniel > --- > > Changes in v2: > - Add a Fixes tag to the changelog. > > drivers/firmware/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig > index af6719cc576b..897f5f25c64e 100644 > --- a/drivers/firmware/Kconfig > +++ b/drivers/firmware/Kconfig > @@ -254,7 +254,7 @@ config QCOM_SCM_DOWNLOAD_MODE_DEFAULT > config SYSFB > bool > default y > - depends on X86 || ARM || ARM64 || RISCV || COMPILE_TEST > + depends on X86 || EFI > > config SYSFB_SIMPLEFB > bool "Mark VGA/VBE/EFI FB as generic system framebuffer" > -- > 2.31.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch