Re: [PATCH 1/2] tty: serial: samsung_tty: build it for any platform

From: Geert Uytterhoeven
Date: Tue Feb 25 2020 - 16:22:24 EST


Hi Greg,

On Tue, Feb 25, 2020 at 9:41 PM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Feb 25, 2020 at 09:52:38AM +0100, Geert Uytterhoeven wrote:
> > On Thu, Feb 20, 2020 at 1:13 PM Bartlomiej Zolnierkiewicz
> > <b.zolnierkie@xxxxxxxxxxx> wrote:
> > > On 2/20/20 11:26 AM, Greg Kroah-Hartman wrote:
> > > > There is no need to tie this driver to only a specific SoC, or compile
> > > > test, so remove that dependancy from the Kconfig rules.
> > >
> > > samsung_tty driver is hardware specific driver so why should we
> > > build it for any platform?
>
> Why not?

Because this driver won't bind to a device anyway, when the kernel is
configured without Samsung SoC support. It will just bloat the kernel,
and asking this question is a silly waste of time for anyone building a
(non-generic) kernel for a non-Samsung SoC.

> Seriously, this "only this one specific SoC is allowed to build this
> driver" is crazy. It prevents anyone from building a generic kernel
> with drivers as a module which are loaded as needed.

A generic kernel will include Samsung SoC support, hence PLAT_SAMSUNG
or ARCH_EXYNOS will be enabled.

> That needs to be fixed, and removing this unneeded dependancy on this
> driver allows it to be build for any system and then only loaded when
> needed.

It can only be loaded on a Samsung system, which requires PLAT_SAMSUNG
or ARCH_EXYNOS anyway.
It's not like a Samsung serial device can be plugged into your PC's PCI
bus or so, it only exists on Samsung SoCs.

> > > This change seems to defeat the whole purpose behind COMPILE_TEST
> > > config option (which allows us to build hardware-specific drivers
> > > without needlessly presenting the user with tons of non-relevant
> > > config options).
> > >
> > > Please explain this change some more, are you planing to remove
> > > COMPILE_TEST config option?
>
> I want to get rid of this:

IMHO we need _more_ of these dependencies, to avoid all these silly questions
when they don't make sense.

> > > > - depends on PLAT_SAMSUNG || ARCH_EXYNOS || COMPILE_TEST
>
> We should not need PLAT_SAMSUNG or ARCH_EXYNOS at all, we should be able
> to build an arm64 kernel for all platforms.

An arm64 kernel for all platforms will have ARCH_EXYNOS enabled.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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