Thread (13 messages) 13 messages, 6 authors, 2021-05-25

Re: RFC Need advice on reworking gpio-ep93xx.c to DT support

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-05-25 08:44:58

On Mon, Mar 22, 2021 at 11:33 PM Arnd Bergmann [off-list ref] wrote:
On Mon, Mar 22, 2021 at 6:00 PM Alexander Sverdlin
[off-list ref] wrote:
quoted
On Mon, 2021-03-22 at 19:48 +0300, nikita.shubin@maquefel.me wrote:
quoted
quoted
quoted
quoted
 Note that the GPIO banks are registered a bit goofy, Ports C and F are
 not in order. They have been that way since the original Cirrus "crater"
 code base. If I remember correctly this was somewhere back in the 2.6.x
 kernel. Please make sure the GPIO numbers stay the same so that any
 userspace code does not break.
quoted
 I'm sceptical about this DT convertion.
I'm in the same boat. One of the reasons I have not tried to convert it...
I find this a bit confusing, so you think ep93xx shouldn't be touched at all ?

AFAIK the question is reworking to DT or it will be dropped eventually:

https://lore.kernel.org/lkml/CAK8P3a2VW8T+yYUG1pn1yR-5eU4jJXe1+M_ot6DAvfr2KyXCzQ@mail.gmail.com/ (local)
I somehow missed the Jan Email even though I should be in the "maintainers"
for EP93xx. I still know about thousands of devices running 24/7 with mainline Linux.

Is it really about "DT conversion or die"?
These systems really have very tight RAM and Flash budgets...
I would very much like to see the platform get modernized, though as far
as I'm concerned, the DT conversion is not the highest priority here.

One thing I really want to see happen is to move the few remaining
private implementations of the clk API over to the common-clk framework,
and once that is done, allow ep93xx to be built into the same kernel
as all other arm9 based platforms. There are still a couple of other platforms
that are missing a little work for this, but it should be doable.

Unfortunately, building a multiplatform kernel makes the kernel image
somewhat larger because it includes the code for CONFIG_OF, though
it does not have the runtime overhead for the DT data structures that you
get when running a DT-enabled kernel. Enabling CONFIG_USE_OF
increased the ep93xx_defconfig build for me by 128KB, replacing
the private clk driver with CONFIG_COMMON_CLOCK (and no driver)
on top added another 50KB, and finally enabling multiplatform added
another 2KB. In total, that is 2.7% total bloat in just the kernel image:

   text    data     bss     dec     hex filename
5677321 1119704   90556 6887581 69189d build/tmp/vmlinux
5782854 1143720   92188 7018762 6b190a build/tmp/vmlinux-use_of
5830020 1153408   89396 7072824 6bec38 build/tmp/vmlinux-of+clk
5829320 1153920   91308 7074548 6bf2f4 build/tmp/vmlinux-multi
Hence you'll get about the same kernel image size increase either
by converting to DT and COMMON_CLOCK now, or by doing nothing and
booting v5.16-rc1 in six months...

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help