[PATCH] drivers/firmware: fix sysfb depends to prevent build failures

Linus Walleij linus.walleij at linaro.org
Tue Aug 10 12:51:26 UTC 2021


On Thu, Jul 22, 2021 at 6:42 AM Javier Martinez Canillas
<javierm at redhat.com> 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 is defined).
>
> Reported-by: kernel test robot <lkp at intel.com>
> Signed-off-by: Javier Martinez Canillas <javierm at redhat.com>

Reviewed-by: Linus Walleij <linus.walleij at linaro.org>

I don't know who picks up firmware patches though, I would send them
to soc at kernel.org if nothing else works.

Yours,
Linus Walleij


More information about the dri-devel mailing list