Re: [PATCH v1 2/4] soc: samsung: change SOC_SAMSUNG default config logic

From: Geert Uytterhoeven
Date: Thu Sep 23 2021 - 14:05:59 EST


On Thu, Sep 23, 2021 at 6:19 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> On Thu, Sep 23, 2021 at 3:42 PM Lee Jones <lee.jones@xxxxxxxxxx> wrote:
> > On Thu, 23 Sep 2021, Krzysztof Kozlowski wrote:
> > > On 23/09/2021 14:39, Lee Jones wrote:
> > > > As I've explained before, the trigger for all of this was
> > > > SERIAL_SAMSUNG which is required for early console on supported
> > > > Samsung platforms i.e. this symbol *has* to be built-in.
> > >
> > > Actually SERIAL_SAMSUNG does not have to be built-in. It is necessary
> > > for built-in only for debugging or development, not for real products.
> >
> > Right. And in the early stages, GKI is used for early (non-released)
> > H/W (this is also the part of the reason these differences can't be
> > upstreamed early/now/yet) and sometimes changes break things requiring
> > low-level debugging techniques to solve (inc. early console).
> >
> > > Unlike other drivers which have to be built-in, e.g. clocks or pinctrl,
> > > or heavily tested whether setup from initrd works. Plus not breaking
> > > distros who like to have everything as module (solution from Geert?)...
> >
> > We don't know which drivers *need* to be built-in yet.
> >
> > Clocks is probably not a good example even, since the power-on default
> > is most likely all-on, which is fine. Pinctrl remains to be seen.
>
> Clocks is an excellent example: if a clock is missing, the driver
> will fail to probe (unless the clock is considered optional by
> the driver), regardless of the power-on or boot loader defaults.
> With fw_devlinks=on (which is the default now, and developed by a
> Google engineer (GKI or another division?)), the driver won't even
> get to the probing point.
>
> Pinctrl is different, as unless I'm mistaken, drivers will still
> probe if the pin control driver is missing, so they will work if the
> power-on or boot loader defaults of pin control are fine.

In addition, relying on implicit power-on or boot loader state comes
with its own set of pitfalls, which may break other use cases.
On a heavily power-managed mobile device, clocks and/or power domains
can be turned off, so a kernel launched from kexec or kdump may start
in a state not adhering to these implicit dependencies.

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