LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
@ 2020-03-05 10:32 Chunyan Zhang
  2020-03-05 10:32 ` [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD Chunyan Zhang
  2020-03-09  8:03 ` [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate Geert Uytterhoeven
  0 siblings, 2 replies; 18+ messages in thread
From: Chunyan Zhang @ 2020-03-05 10:32 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby
  Cc: linux-serial, linux-kernel, linux-arm-kernel, Orson Zhai,
	Baolin Wang, Chunyan Zhang, Chunyan Zhang

From: Chunyan Zhang <chunyan.zhang@unisoc.com>

The default value of Kconfig for almost all sprd drivers are the same with
ARCH_SPRD, making these drivers built as modules as default would be easier
if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.

Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
---
 arch/arm64/Kconfig.platforms | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index b2b504ea6fd6..76778b2f520d 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -249,7 +249,7 @@ config ARCH_TEGRA
 	  This enables support for the NVIDIA Tegra SoC family.
 
 config ARCH_SPRD
-	bool "Spreadtrum SoC platform"
+	tristate "Spreadtrum SoC platform"
 	help
 	  Support for Spreadtrum ARM based SoCs
 
-- 
2.20.1


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-05 10:32 [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate Chunyan Zhang
@ 2020-03-05 10:32 ` Chunyan Zhang
  2020-03-06 12:41   ` Geert Uytterhoeven
  2020-03-09  8:03 ` [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate Geert Uytterhoeven
  1 sibling, 1 reply; 18+ messages in thread
From: Chunyan Zhang @ 2020-03-05 10:32 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby
  Cc: linux-serial, linux-kernel, linux-arm-kernel, Orson Zhai,
	Baolin Wang, Chunyan Zhang, Chunyan Zhang

From: Chunyan Zhang <chunyan.zhang@unisoc.com>

Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
since we want them can be built-in when ARCH_SPRD is set as 'm'.

Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
---
 drivers/tty/serial/Kconfig | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 52eaac21ff9f..2b9addc0afb5 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
 
 config SERIAL_SPRD
 	tristate "Support for Spreadtrum serial"
-	depends on ARCH_SPRD
 	select SERIAL_CORE
 	help
 	  This enables the driver for the Spreadtrum's serial.
-- 
2.20.1


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-05 10:32 ` [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD Chunyan Zhang
@ 2020-03-06 12:41   ` Geert Uytterhoeven
  2020-03-09  1:17     ` Chunyan Zhang
  0 siblings, 1 reply; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-03-06 12:41 UTC (permalink / raw)
  To: Chunyan Zhang
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM

Hi Chunyan,

On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> From: Chunyan Zhang <chunyan.zhang@unisoc.com>
>
> Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
> since we want them can be built-in when ARCH_SPRD is set as 'm'.

Why would you want a serial driver for a specific platform to be builtin,
while all other platform support is modular?

> Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> ---
>  drivers/tty/serial/Kconfig | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 52eaac21ff9f..2b9addc0afb5 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
>
>  config SERIAL_SPRD
>         tristate "Support for Spreadtrum serial"
> -       depends on ARCH_SPRD
>         select SERIAL_CORE
>         help
>           This enables the driver for the Spreadtrum's serial.

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-06 12:41   ` Geert Uytterhoeven
@ 2020-03-09  1:17     ` Chunyan Zhang
  2020-03-09  8:01       ` Geert Uytterhoeven
  0 siblings, 1 reply; 18+ messages in thread
From: Chunyan Zhang @ 2020-03-09  1:17 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM

Hi Geert,

On Fri, 6 Mar 2020 at 20:41, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Chunyan,
>
> On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> >
> > Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
> > since we want them can be built-in when ARCH_SPRD is set as 'm'.
>
> Why would you want a serial driver for a specific platform to be builtin,
> while all other platform support is modular?

Oh, that's not this patch means.

We just want serial driver can be builtin for any platform, so it
should not depend on a config which can be set as 'm' (i.e. ARCH_SPRD)
, otherwise if the config was set as 'm', the serial driver can't be
selected as 'y' then.

That's what I mean.

Cheers,
Chunyan

>
> > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > ---
> >  drivers/tty/serial/Kconfig | 1 -
> >  1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> > index 52eaac21ff9f..2b9addc0afb5 100644
> > --- a/drivers/tty/serial/Kconfig
> > +++ b/drivers/tty/serial/Kconfig
> > @@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
> >
> >  config SERIAL_SPRD
> >         tristate "Support for Spreadtrum serial"
> > -       depends on ARCH_SPRD
> >         select SERIAL_CORE
> >         help
> >           This enables the driver for the Spreadtrum's serial.
>
> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-09  1:17     ` Chunyan Zhang
@ 2020-03-09  8:01       ` Geert Uytterhoeven
  2020-03-09  8:42         ` Chunyan Zhang
  2020-03-09 14:10         ` Orson Zhai
  0 siblings, 2 replies; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-03-09  8:01 UTC (permalink / raw)
  To: Chunyan Zhang
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM

Hi Chunyan,

On Mon, Mar 9, 2020 at 2:18 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> On Fri, 6 Mar 2020 at 20:41, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > >
> > > Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
> > > since we want them can be built-in when ARCH_SPRD is set as 'm'.
> >
> > Why would you want a serial driver for a specific platform to be builtin,
> > while all other platform support is modular?
>
> Oh, that's not this patch means.
>
> We just want serial driver can be builtin for any platform, so it

What would be the benefit of the user to be able to have the SPRD serial
driver built-in on any platform?  AFAIU, it supports only Spreadtrum
platforms.

> should not depend on a config which can be set as 'm' (i.e. ARCH_SPRD)
> , otherwise if the config was set as 'm', the serial driver can't be
> selected as 'y' then.

I ask about that as a reply to PATCH 1/2.

> That's what I mean.

> > > --- a/drivers/tty/serial/Kconfig
> > > +++ b/drivers/tty/serial/Kconfig
> > > @@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
> > >
> > >  config SERIAL_SPRD
> > >         tristate "Support for Spreadtrum serial"
> > > -       depends on ARCH_SPRD
> > >         select SERIAL_CORE
> > >         help
> > >           This enables the driver for the Spreadtrum's serial.

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-05 10:32 [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate Chunyan Zhang
  2020-03-05 10:32 ` [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD Chunyan Zhang
@ 2020-03-09  8:03 ` Geert Uytterhoeven
  2020-03-09  8:32   ` Chunyan Zhang
  1 sibling, 1 reply; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-03-09  8:03 UTC (permalink / raw)
  To: Chunyan Zhang
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM

Hi Chunyan.

On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> From: Chunyan Zhang <chunyan.zhang@unisoc.com>
>
> The default value of Kconfig for almost all sprd drivers are the same with
> ARCH_SPRD, making these drivers built as modules as default would be easier
> if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
>
> Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>

Can you actually boot a kernel on a Spreadtrum platform when all platform
and driver support is modular?

> +++ b/arch/arm64/Kconfig.platforms
> @@ -249,7 +249,7 @@ config ARCH_TEGRA
>           This enables support for the NVIDIA Tegra SoC family.
>
>  config ARCH_SPRD
> -       bool "Spreadtrum SoC platform"
> +       tristate "Spreadtrum SoC platform"
>         help
>           Support for Spreadtrum ARM based SoCs

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-09  8:03 ` [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate Geert Uytterhoeven
@ 2020-03-09  8:32   ` Chunyan Zhang
  2020-03-09 10:32     ` Geert Uytterhoeven
  0 siblings, 1 reply; 18+ messages in thread
From: Chunyan Zhang @ 2020-03-09  8:32 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM,
	kernel-team

Hi Geert,

On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Chunyan.
>
> On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> >
> > The default value of Kconfig for almost all sprd drivers are the same with
> > ARCH_SPRD, making these drivers built as modules as default would be easier
> > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> >
> > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
>
> Can you actually boot a kernel on a Spreadtrum platform when all platform
> and driver support is modular?

Yes, even if all drivers are modular.
But I hope serial can be builtin, then I can have a console to see
kernel output before loading modules.
Also, this's what Google GKI [1] asked :)

Regards,
Chunyan

[1] https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/

>
> > +++ b/arch/arm64/Kconfig.platforms
> > @@ -249,7 +249,7 @@ config ARCH_TEGRA
> >           This enables support for the NVIDIA Tegra SoC family.
> >
> >  config ARCH_SPRD
> > -       bool "Spreadtrum SoC platform"
> > +       tristate "Spreadtrum SoC platform"
> >         help
> >           Support for Spreadtrum ARM based SoCs
>
> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-09  8:01       ` Geert Uytterhoeven
@ 2020-03-09  8:42         ` Chunyan Zhang
  2020-03-09 10:32           ` Geert Uytterhoeven
  2020-03-09 14:10         ` Orson Zhai
  1 sibling, 1 reply; 18+ messages in thread
From: Chunyan Zhang @ 2020-03-09  8:42 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM

Hi Geert,

On Mon, 9 Mar 2020 at 16:01, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Chunyan,
>
> On Mon, Mar 9, 2020 at 2:18 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > On Fri, 6 Mar 2020 at 20:41, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > >
> > > > Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
> > > > since we want them can be built-in when ARCH_SPRD is set as 'm'.
> > >
> > > Why would you want a serial driver for a specific platform to be builtin,
> > > while all other platform support is modular?
> >
> > Oh, that's not this patch means.
> >
> > We just want serial driver can be builtin for any platform, so it
>
> What would be the benefit of the user to be able to have the SPRD serial
> driver built-in on any platform?  AFAIU, it supports only Spreadtrum
> platforms.

Right, it does support Spreadtrum platforms only indeed.
Like I said on the replay to patch 1/2, simply because I want serial
driver can be builtin all the time, no matter ARCH_SPRD is m or y.

Regards,
Chunyan

>
> > should not depend on a config which can be set as 'm' (i.e. ARCH_SPRD)
> > , otherwise if the config was set as 'm', the serial driver can't be
> > selected as 'y' then.
>
> I ask about that as a reply to PATCH 1/2.
>
> > That's what I mean.
>
> > > > --- a/drivers/tty/serial/Kconfig
> > > > +++ b/drivers/tty/serial/Kconfig
> > > > @@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
> > > >
> > > >  config SERIAL_SPRD
> > > >         tristate "Support for Spreadtrum serial"
> > > > -       depends on ARCH_SPRD
> > > >         select SERIAL_CORE
> > > >         help
> > > >           This enables the driver for the Spreadtrum's serial.
>
> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-09  8:32   ` Chunyan Zhang
@ 2020-03-09 10:32     ` Geert Uytterhoeven
  2020-03-10  4:19       ` Sandeep Patil
  2020-03-10  9:41       ` Orson Zhai
  0 siblings, 2 replies; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-03-09 10:32 UTC (permalink / raw)
  To: Chunyan Zhang
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM,
	Android Kernel Team

Hi Chunyan,

On Mon, Mar 9, 2020 at 9:32 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > >
> > > The default value of Kconfig for almost all sprd drivers are the same with
> > > ARCH_SPRD, making these drivers built as modules as default would be easier
> > > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> > >
> > > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> >
> > Can you actually boot a kernel on a Spreadtrum platform when all platform
> > and driver support is modular?
>
> Yes, even if all drivers are modular.

Cool. No hard dependencies on e.g. regulators that are turned off when
unused?

> But I hope serial can be builtin, then I can have a console to see
> kernel output before loading modules.

No dependency on the clock driver?
Oh, I see you have a hack in the serial driver, to assume default
values when the serial port's parent clock is not found.  That may
limit use of the other serial ports, depending on the actual serial
hardware.
And on Sharkl64, the serial port's clock is a fixed-clock anyway, so
you don't even need the hack.

But in general you cannot rely on that, especially if your SoC has clock
and/or power domains.

BTW, what about the watchdog driver? That one does need a clock, and
loading it too late will reboot your system.

> Also, this's what Google GKI [1] asked :)
>
> Regards,
> Chunyan
>
> [1] https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/

Let's see how having everything modular works out on an SoC where all
hardware is part of a clock and power domain.

Thanks!

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-09  8:42         ` Chunyan Zhang
@ 2020-03-09 10:32           ` Geert Uytterhoeven
  2020-03-09 11:15             ` Chunyan Zhang
  0 siblings, 1 reply; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-03-09 10:32 UTC (permalink / raw)
  To: Chunyan Zhang
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM

Hi Chunyan,

On Mon, Mar 9, 2020 at 9:43 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> On Mon, 9 Mar 2020 at 16:01, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Mon, Mar 9, 2020 at 2:18 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > On Fri, 6 Mar 2020 at 20:41, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > >
> > > > > Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
> > > > > since we want them can be built-in when ARCH_SPRD is set as 'm'.
> > > >
> > > > Why would you want a serial driver for a specific platform to be builtin,
> > > > while all other platform support is modular?
> > >
> > > Oh, that's not this patch means.
> > >
> > > We just want serial driver can be builtin for any platform, so it
> >
> > What would be the benefit of the user to be able to have the SPRD serial
> > driver built-in on any platform?  AFAIU, it supports only Spreadtrum
> > platforms.
>
> Right, it does support Spreadtrum platforms only indeed.
> Like I said on the replay to patch 1/2, simply because I want serial
> driver can be builtin all the time, no matter ARCH_SPRD is m or y.

OK.

So shouldn't the dependency become

    depends on ARCH_SPRD || ARCH_SPRD=m || COMPILE_TEST

instead, to avoid asking the question when you're not building a kernel
plus modules for Spreadtrum platforms?


> > > should not depend on a config which can be set as 'm' (i.e. ARCH_SPRD)
> > > , otherwise if the config was set as 'm', the serial driver can't be
> > > selected as 'y' then.
> >
> > I ask about that as a reply to PATCH 1/2.
> >
> > > That's what I mean.
> >
> > > > > --- a/drivers/tty/serial/Kconfig
> > > > > +++ b/drivers/tty/serial/Kconfig
> > > > > @@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
> > > > >
> > > > >  config SERIAL_SPRD
> > > > >         tristate "Support for Spreadtrum serial"
> > > > > -       depends on ARCH_SPRD
> > > > >         select SERIAL_CORE
> > > > >         help
> > > > >           This enables the driver for the Spreadtrum's serial.

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-09 10:32           ` Geert Uytterhoeven
@ 2020-03-09 11:15             ` Chunyan Zhang
  0 siblings, 0 replies; 18+ messages in thread
From: Chunyan Zhang @ 2020-03-09 11:15 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Catalin Marinas, Will Deacon, Jiri Slaby,
	Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM

On Mon, 9 Mar 2020 at 18:32, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Chunyan,
>
> On Mon, Mar 9, 2020 at 9:43 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > On Mon, 9 Mar 2020 at 16:01, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Mon, Mar 9, 2020 at 2:18 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > On Fri, 6 Mar 2020 at 20:41, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > > >
> > > > > > Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
> > > > > > since we want them can be built-in when ARCH_SPRD is set as 'm'.
> > > > >
> > > > > Why would you want a serial driver for a specific platform to be builtin,
> > > > > while all other platform support is modular?
> > > >
> > > > Oh, that's not this patch means.
> > > >
> > > > We just want serial driver can be builtin for any platform, so it
> > >
> > > What would be the benefit of the user to be able to have the SPRD serial
> > > driver built-in on any platform?  AFAIU, it supports only Spreadtrum
> > > platforms.
> >
> > Right, it does support Spreadtrum platforms only indeed.
> > Like I said on the replay to patch 1/2, simply because I want serial
> > driver can be builtin all the time, no matter ARCH_SPRD is m or y.
>
> OK.
>
> So shouldn't the dependency become
>
>     depends on ARCH_SPRD || ARCH_SPRD=m || COMPILE_TEST

Oh, right, this's better than just removing dependency to ARCH_SPRD,
but considering that this patch has been merged into Greg's tree, I
will post another patch to add this.

Thanks for your comments!
Chunyan

>
> instead, to avoid asking the question when you're not building a kernel
> plus modules for Spreadtrum platforms?
>
>
> > > > should not depend on a config which can be set as 'm' (i.e. ARCH_SPRD)
> > > > , otherwise if the config was set as 'm', the serial driver can't be
> > > > selected as 'y' then.
> > >
> > > I ask about that as a reply to PATCH 1/2.
> > >
> > > > That's what I mean.
> > >
> > > > > > --- a/drivers/tty/serial/Kconfig
> > > > > > +++ b/drivers/tty/serial/Kconfig
> > > > > > @@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
> > > > > >
> > > > > >  config SERIAL_SPRD
> > > > > >         tristate "Support for Spreadtrum serial"
> > > > > > -       depends on ARCH_SPRD
> > > > > >         select SERIAL_CORE
> > > > > >         help
> > > > > >           This enables the driver for the Spreadtrum's serial.
>
> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD
  2020-03-09  8:01       ` Geert Uytterhoeven
  2020-03-09  8:42         ` Chunyan Zhang
@ 2020-03-09 14:10         ` Orson Zhai
  1 sibling, 0 replies; 18+ messages in thread
From: Orson Zhai @ 2020-03-09 14:10 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Chunyan Zhang, Greg Kroah-Hartman, Catalin Marinas, Will Deacon,
	Jiri Slaby, Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Linux ARM, kernel-team

Hi Geert,


On Mon, Mar 9, 2020 at 4:01 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Chunyan,
>
> On Mon, Mar 9, 2020 at 2:18 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > On Fri, 6 Mar 2020 at 20:41, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > >
> > > > Remove the dependency with ARCH_SPRD from sprd serial/console Kconfig-s,
> > > > since we want them can be built-in when ARCH_SPRD is set as 'm'.
> > >
> > > Why would you want a serial driver for a specific platform to be builtin,
> > > while all other platform support is modular?
> >
> > Oh, that's not this patch means.
> >
> > We just want serial driver can be builtin for any platform, so it
>
> What would be the benefit of the user to be able to have the SPRD serial
> driver built-in on any platform?  AFAIU, it supports only Spreadtrum
> platforms.
>
Assume there is a all-in-one common kernel binary image say arm64 for
all SoC platform and all
device drivers are built as modules from different vendors for each
specific devices.
But for serial driver it is too late to be initialized as a module if
users want to check early console log.
At this circumstance vendors prefer to set their serial driver to be
built into that all-in-one image as easy
as to only set one config instead of enabling whole platform then
disabling many out of serial.

-Orson

> > should not depend on a config which can be set as 'm' (i.e. ARCH_SPRD)
> > , otherwise if the config was set as 'm', the serial driver can't be
> > selected as 'y' then.
>
> I ask about that as a reply to PATCH 1/2.
>
> > That's what I mean.
>
> > > > --- a/drivers/tty/serial/Kconfig
> > > > +++ b/drivers/tty/serial/Kconfig
> > > > @@ -1452,7 +1452,6 @@ config SERIAL_MEN_Z135
> > > >
> > > >  config SERIAL_SPRD
> > > >         tristate "Support for Spreadtrum serial"
> > > > -       depends on ARCH_SPRD
> > > >         select SERIAL_CORE
> > > >         help
> > > >           This enables the driver for the Spreadtrum's serial.
>
> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-09 10:32     ` Geert Uytterhoeven
@ 2020-03-10  4:19       ` Sandeep Patil
  2020-03-10  4:27         ` Sandeep Patil
  2020-03-10  9:41       ` Orson Zhai
  1 sibling, 1 reply; 18+ messages in thread
From: Sandeep Patil @ 2020-03-10  4:19 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Chunyan Zhang, Greg Kroah-Hartman, Catalin Marinas, Will Deacon,
	Jiri Slaby, Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM,
	Android Kernel Team, saravanak

Hi Geert,

On Mon, Mar 09, 2020 at 11:32:06AM +0100, Geert Uytterhoeven wrote:
> Hi Chunyan,
> 
> On Mon, Mar 9, 2020 at 9:32 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > >
> > > > The default value of Kconfig for almost all sprd drivers are the same with
> > > > ARCH_SPRD, making these drivers built as modules as default would be easier
> > > > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> > > >
> > > > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > >
> > > Can you actually boot a kernel on a Spreadtrum platform when all platform
> > > and driver support is modular?
> >
> > Yes, even if all drivers are modular.
> 
> Cool. No hard dependencies on e.g. regulators that are turned off when
> unused?
> 
> > But I hope serial can be builtin, then I can have a console to see
> > kernel output before loading modules.
> 
> No dependency on the clock driver?
> Oh, I see you have a hack in the serial driver, to assume default
> values when the serial port's parent clock is not found.  That may
> limit use of the other serial ports, depending on the actual serial
> hardware.
> And on Sharkl64, the serial port's clock is a fixed-clock anyway, so
> you don't even need the hack.
> 
> But in general you cannot rely on that, especially if your SoC has clock
> and/or power domains.
> 
> BTW, what about the watchdog driver? That one does need a clock, and
> loading it too late will reboot your system.
> 
> > Also, this's what Google GKI [1] asked :)
> >
> > Regards,
> > Chunyan
> >
> > [1] https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/
> 
> Let's see how having everything modular works out on an SoC where all
> hardware is part of a clock and power domain.

I'm curious, are there any problems that we should be aware of? We know about
the regulator sync state and consumer-supplier dependencies. [1]

(Adding Saravana inline)

Thanks,
- ssp

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-10  4:19       ` Sandeep Patil
@ 2020-03-10  4:27         ` Sandeep Patil
  2020-03-10  8:47           ` Geert Uytterhoeven
  0 siblings, 1 reply; 18+ messages in thread
From: Sandeep Patil @ 2020-03-10  4:27 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Chunyan Zhang, Greg Kroah-Hartman, Catalin Marinas, Will Deacon,
	Jiri Slaby, Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM,
	Android Kernel Team, saravanak

On Mon, Mar 09, 2020 at 09:19:03PM -0700, Sandeep Patil wrote:
> Hi Geert,
> 
> On Mon, Mar 09, 2020 at 11:32:06AM +0100, Geert Uytterhoeven wrote:
> > Hi Chunyan,
> > 
> > On Mon, Mar 9, 2020 at 9:32 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > >
> > > > > The default value of Kconfig for almost all sprd drivers are the same with
> > > > > ARCH_SPRD, making these drivers built as modules as default would be easier
> > > > > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> > > > >
> > > > > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > >
> > > > Can you actually boot a kernel on a Spreadtrum platform when all platform
> > > > and driver support is modular?
> > >
> > > Yes, even if all drivers are modular.
> > 
> > Cool. No hard dependencies on e.g. regulators that are turned off when
> > unused?
> > 
> > > But I hope serial can be builtin, then I can have a console to see
> > > kernel output before loading modules.
> > 
> > No dependency on the clock driver?
> > Oh, I see you have a hack in the serial driver, to assume default
> > values when the serial port's parent clock is not found.  That may
> > limit use of the other serial ports, depending on the actual serial
> > hardware.
> > And on Sharkl64, the serial port's clock is a fixed-clock anyway, so
> > you don't even need the hack.
> > 
> > But in general you cannot rely on that, especially if your SoC has clock
> > and/or power domains.
> > 
> > BTW, what about the watchdog driver? That one does need a clock, and
> > loading it too late will reboot your system.
> > 
> > > Also, this's what Google GKI [1] asked :)
> > >
> > > Regards,
> > > Chunyan
> > >
> > > [1] https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/
> > 
> > Let's see how having everything modular works out on an SoC where all
> > hardware is part of a clock and power domain.
> 
> I'm curious, are there any problems that we should be aware of? We know about
> the regulator sync state and consumer-supplier dependencies. [1]
> 
> (Adding Saravana inline)
> 

(oops, forgot to paste the link to presentation)
1. https://linuxplumbersconf.org/event/4/contributions/402/attachments/320/544/Solving_issues_associated_with_modules_and_supplier-consumer_dependencies.pdf

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-10  4:27         ` Sandeep Patil
@ 2020-03-10  8:47           ` Geert Uytterhoeven
  0 siblings, 0 replies; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-03-10  8:47 UTC (permalink / raw)
  To: Sandeep Patil
  Cc: Chunyan Zhang, Greg Kroah-Hartman, Catalin Marinas, Will Deacon,
	Jiri Slaby, Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Orson Zhai, Linux ARM,
	Android Kernel Team, saravanak

Hi Sandeep,

On Tue, Mar 10, 2020 at 5:27 AM Sandeep Patil <sspatil@android.com> wrote:
> On Mon, Mar 09, 2020 at 09:19:03PM -0700, Sandeep Patil wrote:
> > On Mon, Mar 09, 2020 at 11:32:06AM +0100, Geert Uytterhoeven wrote:
> > > On Mon, Mar 9, 2020 at 9:32 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > > >
> > > > > > The default value of Kconfig for almost all sprd drivers are the same with
> > > > > > ARCH_SPRD, making these drivers built as modules as default would be easier
> > > > > > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> > > > > >
> > > > > > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > >
> > > > > Can you actually boot a kernel on a Spreadtrum platform when all platform
> > > > > and driver support is modular?
> > > >
> > > > Yes, even if all drivers are modular.
> > >
> > > Cool. No hard dependencies on e.g. regulators that are turned off when
> > > unused?
> > >
> > > > But I hope serial can be builtin, then I can have a console to see
> > > > kernel output before loading modules.
> > >
> > > No dependency on the clock driver?
> > > Oh, I see you have a hack in the serial driver, to assume default
> > > values when the serial port's parent clock is not found.  That may
> > > limit use of the other serial ports, depending on the actual serial
> > > hardware.
> > > And on Sharkl64, the serial port's clock is a fixed-clock anyway, so
> > > you don't even need the hack.
> > >
> > > But in general you cannot rely on that, especially if your SoC has clock
> > > and/or power domains.

So I gave it a try on my platform (R-Car), with just the serial driver
builtin.  I can see the kernel booting using earlycon.
However, the serial driver is never probed, as the pin control driver is
missing. And after that, it would need the clock domain (power domain
and clock drivers), and more serial clock inputs (clock driver, again).
Fortunately DMA is optional (dmac driver, and optional iommu driver).

I guess core platform-specific drivers can be loaded from the initramfs,
after which the serial driver would be probed, finally.  If the
initramfs includes a storage driver, anything else can be loaded from
e.g. eMMC.

> > > > Also, this's what Google GKI [1] asked :)

> > > > [1] https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/
> > >
> > > Let's see how having everything modular works out on an SoC where all
> > > hardware is part of a clock and power domain.
> >
> > I'm curious, are there any problems that we should be aware of? We know about
> > the regulator sync state and consumer-supplier dependencies. [1]

Care must be taken, as probe deferral behaves differently after
late_initcall time (see driver_deferred_probe_check_state_continue),
which may cause issues with "optional" components like DMA controllers
and IOMMUs.  Unused clocks and power domains are not turned off,
unlike for the builtin case.

On some SoCs, even the interrupt controller (GIC) may be part of a clock
and/or power domain, while the GIC driver is not aware of that.
For the clock, that is handled by CLK_IS_CRITICAL in the clock driver.
For power domains, that is not handled explicitly on Renesas SoCs, as
the GIC is always in the same power domain as other devices that are
Runtime PM-aware.  But if those devices would have modular drivers, that
power domain could still be turned off.

So on a modern ARM system, I assume a generic kernel with no
vendor-specific drivers builtin can indeed work.
On older systems, without an ARM architectured timer, you will need at
least the platform-specific timer driver (and the clock driver) builtin.
Assumed the timer's power domain has been powered up by the firmware.

> (oops, forgot to paste the link to presentation)
> 1. https://linuxplumbersconf.org/event/4/contributions/402/attachments/320/544/Solving_issues_associated_with_modules_and_supplier-consumer_dependencies.pdf

Thanks, hadn't seen that presentation.
It matches my understanding.

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-09 10:32     ` Geert Uytterhoeven
  2020-03-10  4:19       ` Sandeep Patil
@ 2020-03-10  9:41       ` Orson Zhai
  2020-03-10  9:52         ` Geert Uytterhoeven
  1 sibling, 1 reply; 18+ messages in thread
From: Orson Zhai @ 2020-03-10  9:41 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Chunyan Zhang, Greg Kroah-Hartman, Catalin Marinas, Will Deacon,
	Jiri Slaby, Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Linux ARM,
	Android Kernel Team

Hi Geert,

On Mon, Mar 9, 2020 at 6:32 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Chunyan,
>
> On Mon, Mar 9, 2020 at 9:32 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > >
> > > > The default value of Kconfig for almost all sprd drivers are the same with
> > > > ARCH_SPRD, making these drivers built as modules as default would be easier
> > > > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> > > >
> > > > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > >
> > > Can you actually boot a kernel on a Spreadtrum platform when all platform
> > > and driver support is modular?
> >
> > Yes, even if all drivers are modular.
>
> Cool. No hard dependencies on e.g. regulators that are turned off when
> unused?
>
> > But I hope serial can be builtin, then I can have a console to see
> > kernel output before loading modules.
>
> No dependency on the clock driver?
> Oh, I see you have a hack in the serial driver, to assume default
> values when the serial port's parent clock is not found.  That may
> limit use of the other serial ports, depending on the actual serial
> hardware.

There is an function named "sprd_uart_is_console()" in the driver
code. So the hack could be only applied when the
port is identified as console. And other ports might return
PROBE_DEFER until the clock is ready.

Could it work out of the limitation?

-Orson

> And on Sharkl64, the serial port's clock is a fixed-clock anyway, so
> you don't even need the hack.
>
> But in general you cannot rely on that, especially if your SoC has clock
> and/or power domains.
>
> BTW, what about the watchdog driver? That one does need a clock, and
> loading it too late will reboot your system.
>
> > Also, this's what Google GKI [1] asked :)
> >
> > Regards,
> > Chunyan
> >
> > [1] https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/
>
> Let's see how having everything modular works out on an SoC where all
> hardware is part of a clock and power domain.
>
> Thanks!
>
> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-10  9:41       ` Orson Zhai
@ 2020-03-10  9:52         ` Geert Uytterhoeven
  2020-03-10 10:13           ` Orson Zhai
  0 siblings, 1 reply; 18+ messages in thread
From: Geert Uytterhoeven @ 2020-03-10  9:52 UTC (permalink / raw)
  To: Orson Zhai
  Cc: Chunyan Zhang, Greg Kroah-Hartman, Catalin Marinas, Will Deacon,
	Jiri Slaby, Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Linux ARM,
	Android Kernel Team

Hi Orson,

On Tue, Mar 10, 2020 at 10:41 AM Orson Zhai <orsonzhai@gmail.com> wrote:
> On Mon, Mar 9, 2020 at 6:32 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > On Mon, Mar 9, 2020 at 9:32 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > >
> > > > > The default value of Kconfig for almost all sprd drivers are the same with
> > > > > ARCH_SPRD, making these drivers built as modules as default would be easier
> > > > > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> > > > >
> > > > > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > >
> > > > Can you actually boot a kernel on a Spreadtrum platform when all platform
> > > > and driver support is modular?
> > >
> > > Yes, even if all drivers are modular.
> >
> > Cool. No hard dependencies on e.g. regulators that are turned off when
> > unused?
> >
> > > But I hope serial can be builtin, then I can have a console to see
> > > kernel output before loading modules.
> >
> > No dependency on the clock driver?
> > Oh, I see you have a hack in the serial driver, to assume default
> > values when the serial port's parent clock is not found.  That may
> > limit use of the other serial ports, depending on the actual serial
> > hardware.
>
> There is an function named "sprd_uart_is_console()" in the driver
> code. So the hack could be only applied when the
> port is identified as console. And other ports might return
> PROBE_DEFER until the clock is ready.
>
> Could it work out of the limitation?

Yes, that could work.  You also have only a single SPRD_DEFAULT_SOURCE_CLK,
which makes it simple to handle.
For other SoCs, there may be a variation of possible values, depending on
SoC and/or board.

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate
  2020-03-10  9:52         ` Geert Uytterhoeven
@ 2020-03-10 10:13           ` Orson Zhai
  0 siblings, 0 replies; 18+ messages in thread
From: Orson Zhai @ 2020-03-10 10:13 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Chunyan Zhang, Greg Kroah-Hartman, Catalin Marinas, Will Deacon,
	Jiri Slaby, Linux Kernel Mailing List, Chunyan Zhang,
	open list:SERIAL DRIVERS, Baolin Wang, Linux ARM,
	Android Kernel Team

On Tue, Mar 10, 2020 at 5:52 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Orson,
>
> On Tue, Mar 10, 2020 at 10:41 AM Orson Zhai <orsonzhai@gmail.com> wrote:
> > On Mon, Mar 9, 2020 at 6:32 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > On Mon, Mar 9, 2020 at 9:32 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > On Mon, 9 Mar 2020 at 16:03, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > > > > On Thu, Mar 5, 2020 at 11:33 AM Chunyan Zhang <zhang.lyra@gmail.com> wrote:
> > > > > > From: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > > >
> > > > > > The default value of Kconfig for almost all sprd drivers are the same with
> > > > > > ARCH_SPRD, making these drivers built as modules as default would be easier
> > > > > > if we can set ARCH_SPRD as 'm', so this patch change ARCH_SPRD to tristate.
> > > > > >
> > > > > > Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
> > > > >
> > > > > Can you actually boot a kernel on a Spreadtrum platform when all platform
> > > > > and driver support is modular?
> > > >
> > > > Yes, even if all drivers are modular.
> > >
> > > Cool. No hard dependencies on e.g. regulators that are turned off when
> > > unused?
> > >
> > > > But I hope serial can be builtin, then I can have a console to see
> > > > kernel output before loading modules.
> > >
> > > No dependency on the clock driver?
> > > Oh, I see you have a hack in the serial driver, to assume default
> > > values when the serial port's parent clock is not found.  That may
> > > limit use of the other serial ports, depending on the actual serial
> > > hardware.
> >
> > There is an function named "sprd_uart_is_console()" in the driver
> > code. So the hack could be only applied when the
> > port is identified as console. And other ports might return
> > PROBE_DEFER until the clock is ready.
> >
> > Could it work out of the limitation?
>
> Yes, that could work.  You also have only a single SPRD_DEFAULT_SOURCE_CLK,
> which makes it simple to handle.
> For other SoCs, there may be a variation of possible values, depending on
> SoC and/or board.

Ok, thanks.

-Orson

>
> 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

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2020-03-10 10:14 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-05 10:32 [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate Chunyan Zhang
2020-03-05 10:32 ` [PATCH 2/2] tty: serial: make SERIAL_SPRD not depend on ARCH_SPRD Chunyan Zhang
2020-03-06 12:41   ` Geert Uytterhoeven
2020-03-09  1:17     ` Chunyan Zhang
2020-03-09  8:01       ` Geert Uytterhoeven
2020-03-09  8:42         ` Chunyan Zhang
2020-03-09 10:32           ` Geert Uytterhoeven
2020-03-09 11:15             ` Chunyan Zhang
2020-03-09 14:10         ` Orson Zhai
2020-03-09  8:03 ` [PATCH 1/2] arm64: change ARCH_SPRD Kconfig to tristate Geert Uytterhoeven
2020-03-09  8:32   ` Chunyan Zhang
2020-03-09 10:32     ` Geert Uytterhoeven
2020-03-10  4:19       ` Sandeep Patil
2020-03-10  4:27         ` Sandeep Patil
2020-03-10  8:47           ` Geert Uytterhoeven
2020-03-10  9:41       ` Orson Zhai
2020-03-10  9:52         ` Geert Uytterhoeven
2020-03-10 10:13           ` Orson Zhai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).