diff mbox series

video: logo: LOGO should depend on FB_CORE i.s.o. FB

Message ID 5ab3d1fe7b67ab10e4bc1bdbc0fa7731f7960965.1690300189.git.geert+renesas@glider.be
State Superseded
Headers show
Series video: logo: LOGO should depend on FB_CORE i.s.o. FB | expand

Commit Message

Geert Uytterhoeven July 25, 2023, 3:52 p.m. UTC
If CONFIG_FB_CORE=y but CONFIG_FB=n, the frame buffer bootup logos can
no longer be enabled.  Fix this by making CONFIG_LOGO depend on
CONFIG_FB_CORE instead of CONFIG_FB, as there is no good reason for the
logo code to depend on the presence of real frame buffer device drivers.

Fixes: 55bffc8170bb5813 ("fbdev: Split frame buffer support in FB and FB_CORE symbols")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 drivers/video/Kconfig      | 2 +-
 drivers/video/logo/Kconfig | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Javier Martinez Canillas July 25, 2023, 4:06 p.m. UTC | #1
Geert Uytterhoeven <geert+renesas@glider.be> writes:

Hello Geert,

Thanks a lot for your patch!

> If CONFIG_FB_CORE=y but CONFIG_FB=n, the frame buffer bootup logos can
> no longer be enabled.  Fix this by making CONFIG_LOGO depend on
> CONFIG_FB_CORE instead of CONFIG_FB, as there is no good reason for the
> logo code to depend on the presence of real frame buffer device drivers.
>

Indeed.

> Fixes: 55bffc8170bb5813 ("fbdev: Split frame buffer support in FB and FB_CORE symbols")
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
>  drivers/video/Kconfig      | 2 +-
>  drivers/video/logo/Kconfig | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index e5b1cc54cafa10d5..b694d7669d3200b1 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -63,7 +63,7 @@ if VT
>  	source "drivers/video/console/Kconfig"
>  endif
>  
> -if FB || SGI_NEWPORT_CONSOLE
> +if FB_CORE || SGI_NEWPORT_CONSOLE
>  	source "drivers/video/logo/Kconfig"
>  
>  endif
> diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
> index 6d6f8c08792dc897..b7d94d1dd1585a84 100644
> --- a/drivers/video/logo/Kconfig
> +++ b/drivers/video/logo/Kconfig
> @@ -5,7 +5,7 @@
>  
>  menuconfig LOGO
>  	bool "Bootup logo"
> -	depends on FB || SGI_NEWPORT_CONSOLE
> +	depends on FB_CORE || SGI_NEWPORT_CONSOLE
>  	help
>  	  Enable and select frame buffer bootup logos.

Should then move this option to drivers/video/fbdev/core/Kconfig ?

Regardless, could be done as a follow-up and the fix looks good to me.

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Javier Martinez Canillas July 25, 2023, 4:50 p.m. UTC | #2
Geert Uytterhoeven <geert@linux-m68k.org> writes:

> Hi Javier,
>
> On Tue, Jul 25, 2023 at 6:07 PM Javier Martinez Canillas
> <javierm@redhat.com> wrote:
>> Geert Uytterhoeven <geert+renesas@glider.be> writes:
>> > If CONFIG_FB_CORE=y but CONFIG_FB=n, the frame buffer bootup logos can
>> > no longer be enabled.  Fix this by making CONFIG_LOGO depend on
>> > CONFIG_FB_CORE instead of CONFIG_FB, as there is no good reason for the
>> > logo code to depend on the presence of real frame buffer device drivers.
>>
>> Indeed.
>>
>> > Fixes: 55bffc8170bb5813 ("fbdev: Split frame buffer support in FB and FB_CORE symbols")
>> > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
>> > ---
>> >  drivers/video/Kconfig      | 2 +-
>> >  drivers/video/logo/Kconfig | 2 +-
>> >  2 files changed, 2 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
>> > index e5b1cc54cafa10d5..b694d7669d3200b1 100644
>> > --- a/drivers/video/Kconfig
>> > +++ b/drivers/video/Kconfig
>> > @@ -63,7 +63,7 @@ if VT
>> >       source "drivers/video/console/Kconfig"
>> >  endif
>> >
>> > -if FB || SGI_NEWPORT_CONSOLE
>> > +if FB_CORE || SGI_NEWPORT_CONSOLE
>> >       source "drivers/video/logo/Kconfig"
>> >
>> >  endif
>> > diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
>> > index 6d6f8c08792dc897..b7d94d1dd1585a84 100644
>> > --- a/drivers/video/logo/Kconfig
>> > +++ b/drivers/video/logo/Kconfig
>> > @@ -5,7 +5,7 @@
>> >
>> >  menuconfig LOGO
>> >       bool "Bootup logo"
>> > -     depends on FB || SGI_NEWPORT_CONSOLE
>> > +     depends on FB_CORE || SGI_NEWPORT_CONSOLE
>> >       help
>> >         Enable and select frame buffer bootup logos.
>>
>> Should then move this option to drivers/video/fbdev/core/Kconfig ?
>
> No, all logo options are in their own file.
>

Yes. I meant to move drivers/video/logo/ to drivers/fbdev/core/logo and to
source its Kconfig from drivers/fbdev/core/Kconfig, since it now depends
on FB_CORE.

But I see now that it also depends on SGI_NEWPORT_CONSOLE, so having those
in drivers/video/logo makes sense indeed.
Sam Ravnborg July 25, 2023, 5:56 p.m. UTC | #3
Hi Javier,

> >> >  menuconfig LOGO
> >> >       bool "Bootup logo"
> >> > -     depends on FB || SGI_NEWPORT_CONSOLE
> >> > +     depends on FB_CORE || SGI_NEWPORT_CONSOLE
> >> >       help
> >> >         Enable and select frame buffer bootup logos.
> >>
> >> Should then move this option to drivers/video/fbdev/core/Kconfig ?
> >
> > No, all logo options are in their own file.
> >
> 
> Yes. I meant to move drivers/video/logo/ to drivers/fbdev/core/logo and to
> source its Kconfig from drivers/fbdev/core/Kconfig, since it now depends
> on FB_CORE.
> 
> But I see now that it also depends on SGI_NEWPORT_CONSOLE, so having those
> in drivers/video/logo makes sense indeed.

The SGI_NEWPORT_CONSOLE should be replaced by some ifdef in the
newport_con.c code - to do what other drivers do.
But thats for another day.

	Sam
Javier Martinez Canillas July 25, 2023, 7:53 p.m. UTC | #4
Thomas Zimmermann <tzimmermann@suse.de> writes:

> Hi
>

[...]

>> 
>> Yes. I meant to move drivers/video/logo/ to drivers/fbdev/core/logo and to
>> source its Kconfig from drivers/fbdev/core/Kconfig, since it now depends
>> on FB_CORE.
>
> No, please rather leave it where it is. There's no code dependencies to 
> the fbdev core; it merely depends on the Kconfig token.
>

Sure, fine by me. But I disagree that there's merely a Kconfig dependency.
The include/linux/linux_logo.h header declares both fb_find_logo() and
fb_append_extra_logo().

The fb_find_logo() function is defined in drivers/video/logo.c while the
fb_append_extra_logo() is in drivers/video/fbdev/core/fbmem.c, even though
only arch/powerpc/platforms/cell/spu_base.c uses fb_append_extra_logo().

So there's a relationship already between logo and fbdev/core, that's why
I wondered if would make sense to also move drivers/video/logo.c to have
both functions in there.

Yes, as noted drivers/video/console/newport_con.c also uses fb_find_logo()
but the only other user of that in drivers/video/fbdev/core/fbmem.c.
Sam Ravnborg July 26, 2023, 8:35 a.m. UTC | #5
On Tue, Jul 25, 2023 at 09:53:16PM +0200, Javier Martinez Canillas wrote:
> Thomas Zimmermann <tzimmermann@suse.de> writes:
> 
> > Hi
> >
> 
> [...]
> 
> >> 
> >> Yes. I meant to move drivers/video/logo/ to drivers/fbdev/core/logo and to
> >> source its Kconfig from drivers/fbdev/core/Kconfig, since it now depends
> >> on FB_CORE.
> >
> > No, please rather leave it where it is. There's no code dependencies to 
> > the fbdev core; it merely depends on the Kconfig token.
> >
> 
> Sure, fine by me. But I disagree that there's merely a Kconfig dependency.
> The include/linux/linux_logo.h header declares both fb_find_logo() and
> fb_append_extra_logo().
> 
> The fb_find_logo() function is defined in drivers/video/logo.c while the
> fb_append_extra_logo() is in drivers/video/fbdev/core/fbmem.c, even though
> only arch/powerpc/platforms/cell/spu_base.c uses fb_append_extra_logo().
> 
> So there's a relationship already between logo and fbdev/core, that's why
> I wondered if would make sense to also move drivers/video/logo.c to have
> both functions in there.
Or as I also suggested on irc - to pull out all the logo stuff from
fbmem and put it in video/logo/
With a bit of refactoring to make it obvious this is logo stuff and
maybe avoid some of the ifdeffery in the code of the users.

	Sam
Javier Martinez Canillas July 26, 2023, 8:39 a.m. UTC | #6
Sam Ravnborg <sam@ravnborg.org> writes:

> On Tue, Jul 25, 2023 at 09:53:16PM +0200, Javier Martinez Canillas wrote:
>> Thomas Zimmermann <tzimmermann@suse.de> writes:
>> 
>> > Hi
>> >
>> 
>> [...]
>> 
>> >> 
>> >> Yes. I meant to move drivers/video/logo/ to drivers/fbdev/core/logo and to
>> >> source its Kconfig from drivers/fbdev/core/Kconfig, since it now depends
>> >> on FB_CORE.
>> >
>> > No, please rather leave it where it is. There's no code dependencies to 
>> > the fbdev core; it merely depends on the Kconfig token.
>> >
>> 
>> Sure, fine by me. But I disagree that there's merely a Kconfig dependency.
>> The include/linux/linux_logo.h header declares both fb_find_logo() and
>> fb_append_extra_logo().
>> 
>> The fb_find_logo() function is defined in drivers/video/logo.c while the
>> fb_append_extra_logo() is in drivers/video/fbdev/core/fbmem.c, even though
>> only arch/powerpc/platforms/cell/spu_base.c uses fb_append_extra_logo().
>> 
>> So there's a relationship already between logo and fbdev/core, that's why
>> I wondered if would make sense to also move drivers/video/logo.c to have
>> both functions in there.
> Or as I also suggested on irc - to pull out all the logo stuff from
> fbmem and put it in video/logo/
> With a bit of refactoring to make it obvious this is logo stuff and
> maybe avoid some of the ifdeffery in the code of the users.
>

Agreed. That option may be better.

> 	Sam
>
Thomas Zimmermann July 26, 2023, 3:51 p.m. UTC | #7
Hi Javier

Am 25.07.23 um 21:53 schrieb Javier Martinez Canillas:
> Thomas Zimmermann <tzimmermann@suse.de> writes:
> 
>> Hi
>>
> 
> [...]
> 
>>>
>>> Yes. I meant to move drivers/video/logo/ to drivers/fbdev/core/logo and to
>>> source its Kconfig from drivers/fbdev/core/Kconfig, since it now depends
>>> on FB_CORE.
>>
>> No, please rather leave it where it is. There's no code dependencies to
>> the fbdev core; it merely depends on the Kconfig token.
>>
> 
> Sure, fine by me. But I disagree that there's merely a Kconfig dependency.
> The include/linux/linux_logo.h header declares both fb_find_logo() and
> fb_append_extra_logo().
> 
> The fb_find_logo() function is defined in drivers/video/logo.c while the
> fb_append_extra_logo() is in drivers/video/fbdev/core/fbmem.c, even though
> only arch/powerpc/platforms/cell/spu_base.c uses fb_append_extra_logo().
> 
> So there's a relationship already between logo and fbdev/core, that's why
> I wondered if would make sense to also move drivers/video/logo.c to have
> both functions in there.

Fair enough. I was looking for references to struct fb_info in the logo 
code and found none. Sam's suggestion to move the remaining code from 
fbdev to logo/ might be the way to go.

If we ever get that DRM boot-up client, it might want to use the logo as 
well. Hence, it needs to be unrelated to fbdev.

Best regards
Thomas

> 
> Yes, as noted drivers/video/console/newport_con.c also uses fb_find_logo()
> but the only other user of that in drivers/video/fbdev/core/fbmem.c.
>
diff mbox series

Patch

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index e5b1cc54cafa10d5..b694d7669d3200b1 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -63,7 +63,7 @@  if VT
 	source "drivers/video/console/Kconfig"
 endif
 
-if FB || SGI_NEWPORT_CONSOLE
+if FB_CORE || SGI_NEWPORT_CONSOLE
 	source "drivers/video/logo/Kconfig"
 
 endif
diff --git a/drivers/video/logo/Kconfig b/drivers/video/logo/Kconfig
index 6d6f8c08792dc897..b7d94d1dd1585a84 100644
--- a/drivers/video/logo/Kconfig
+++ b/drivers/video/logo/Kconfig
@@ -5,7 +5,7 @@ 
 
 menuconfig LOGO
 	bool "Bootup logo"
-	depends on FB || SGI_NEWPORT_CONSOLE
+	depends on FB_CORE || SGI_NEWPORT_CONSOLE
 	help
 	  Enable and select frame buffer bootup logos.