Re: [PATCH v3] powerpc: Use shared font data

From: Dr. David Alan Gilbert
Date: Thu Aug 24 2023 - 08:48:02 EST


* Michael Ellerman (mpe@xxxxxxxxxxxxxx) wrote:
> "Dr. David Alan Gilbert" <linux@xxxxxxxxxxx> writes:
> > * linux@xxxxxxxxxxx (linux@xxxxxxxxxxx) wrote:
> >> From: "Dr. David Alan Gilbert" <linux@xxxxxxxxxxx>
> >>
> >> PowerPC has a 'btext' font used for the console which is almost identical
> >> to the shared font_sun8x16, so use it rather than duplicating the data.
> >>
> >> They were actually identical until about a decade ago when
> >> commit bcfbeecea11c ("drivers: console: font_: Change a glyph from
> >> "broken bar" to "vertical line"")
> >>
> >> which changed the | in the shared font to be a solid
> >> bar rather than a broken bar. That's the only difference.
> >>
> >> This was originally spotted by the PMF source code analyser, which
> >> noticed that sparc does the same thing with the same data, and they
> >> also share a bunch of functions to manipulate the data. I've previously
> >> posted a near identical patch for sparc.
> >>
> >> Tested very lightly with a boot without FS in qemu.
> >>
> >> Signed-off-by: Dr. David Alan Gilbert <linux@xxxxxxxxxxx>
> >
> > Hi Michael,
> > Just checking, is there anything else I need to do here?
>
> I felt like the lib/fonts/Kconfig change could be cleaner, but the
> existing Kconfig is not well structured for what we want to do.

Yeh that line has caused quite a bit of pain in this otherwise simple
set.

> I think at least it could be simplified to:
>
> config FONT_SUN8x16
> bool "Sparc console 8x16 font"
> depends on (FRAMEBUFFER_CONSOLE && (FONTS || SPARC)) || BOOTX_TEXT

OK, I'll give it a go - but I wonder what else we need to test?
My version was careful not to change other arch's behaviour
on this config, I worry this might. (Although IMHO I actually think
we could just remove this entire depends, and the only reason I haven't
is because I worry what other knock on there might be).

Dave

>
> cheers
>
>
> >> diff --git a/lib/fonts/Kconfig b/lib/fonts/Kconfig
> >> index c035fde66aebe..1804abe08ffe4 100644
> >> --- a/lib/fonts/Kconfig
> >> +++ b/lib/fonts/Kconfig
> >> @@ -98,7 +98,8 @@ config FONT_10x18
> >>
> >> config FONT_SUN8x16
> >> bool "Sparc console 8x16 font"
> >> - depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
> >> + depends on (FRAMEBUFFER_CONSOLE || BOOTX_TEXT) &&\
> >> + (!SPARC && FONTS || SPARC || PPC)
> >> help
> >> This is the high resolution console font for Sun machines. Say Y.
> >>
--
-----Open up your eyes, open up your mind, open up your code -------
/ Dr. David Alan Gilbert | Running GNU/Linux | Happy \
\ dave @ treblig.org | | In Hex /
\ _________________________|_____ http://www.treblig.org |_______/