linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] tty: serial: bcm63xx: allow building on ARM64
@ 2020-11-25  8:13 Rafał Miłecki
  2020-11-25  8:23 ` Greg Kroah-Hartman
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Rafał Miłecki @ 2020-11-25  8:13 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki

From: Rafał Miłecki <rafal@milecki.pl>

Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
is ARM64.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 drivers/tty/serial/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 28f22e58639c..6907c5b17a0e 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
 config SERIAL_BCM63XX
 	tristate "Broadcom BCM63xx/BCM33xx UART support"
 	select SERIAL_CORE
-	depends on MIPS || ARM || COMPILE_TEST
+	depends on MIPS || ARM || ARM64 || COMPILE_TEST
+	default ARCH_BCM4908
 	help
 	  This enables the driver for the onchip UART core found on
 	  the following chipsets:
-- 
2.26.2


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

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-11-25  8:13 [PATCH] tty: serial: bcm63xx: allow building on ARM64 Rafał Miłecki
@ 2020-11-25  8:23 ` Greg Kroah-Hartman
  2020-11-25  8:38   ` Rafał Miłecki
  2020-11-25  9:06 ` [PATCH V2] tty: serial: bcm63xx: lower driver dependencies Rafał Miłecki
  2020-12-08 19:23 ` [PATCH] tty: serial: bcm63xx: allow building on ARM64 Florian Fainelli
  2 siblings, 1 reply; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-25  8:23 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki

On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> is ARM64.
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
>  drivers/tty/serial/Kconfig | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index 28f22e58639c..6907c5b17a0e 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
>  config SERIAL_BCM63XX
>  	tristate "Broadcom BCM63xx/BCM33xx UART support"
>  	select SERIAL_CORE
> -	depends on MIPS || ARM || COMPILE_TEST
> +	depends on MIPS || ARM || ARM64 || COMPILE_TEST

Why do we have an arch dependancy at all now?

> +	default ARCH_BCM4908

Really?  I thought we were getting rid of these "ARCH_platform_type" of
things.  That's what a defconfig file is for, right?

thanks,

greg k-h

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

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-11-25  8:23 ` Greg Kroah-Hartman
@ 2020-11-25  8:38   ` Rafał Miłecki
  2020-11-25  8:54     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 15+ messages in thread
From: Rafał Miłecki @ 2020-11-25  8:38 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki

On 25.11.2020 09:23, Greg Kroah-Hartman wrote:
> On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
>> From: Rafał Miłecki <rafal@milecki.pl>
>>
>> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
>> is ARM64.
>>
>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>> ---
>>   drivers/tty/serial/Kconfig | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
>> index 28f22e58639c..6907c5b17a0e 100644
>> --- a/drivers/tty/serial/Kconfig
>> +++ b/drivers/tty/serial/Kconfig
>> @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
>>   config SERIAL_BCM63XX
>>   	tristate "Broadcom BCM63xx/BCM33xx UART support"
>>   	select SERIAL_CORE
>> -	depends on MIPS || ARM || COMPILE_TEST
>> +	depends on MIPS || ARM || ARM64 || COMPILE_TEST
> 
> Why do we have an arch dependancy at all now?

 From my experience "depends" is often used to limit symbol visibility to
applicable platforms only. I don't think Broadcom has any x86, risc, etc.
platforms so it's useless there.

As for testing driver compilation on unused arch-s I thought that's what
COMPILE_TEST is for.

Am I wrong there? I'm afraid we don't have clear Documentation on that.
Please kindly point me to some info if I'm wrong.


>> +	default ARCH_BCM4908
> 
> Really?  I thought we were getting rid of these "ARCH_platform_type" of
> things.  That's what a defconfig file is for, right?

I had to miss something, last time I checked Linus called defconfigs a
garbage and wanted to get rid of them:
https://lwn.net/Articles/391372/

There are also no platform defconfigs in arch/arm64/ at all. Should I
handle it with arch/arm64/Kconfig.platforms and "select SERIAL_BCM63XX"?

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

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-11-25  8:38   ` Rafał Miłecki
@ 2020-11-25  8:54     ` Greg Kroah-Hartman
  2020-11-25  8:58       ` Rafał Miłecki
  2020-12-08 10:45       ` Geert Uytterhoeven
  0 siblings, 2 replies; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-25  8:54 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki

On Wed, Nov 25, 2020 at 09:38:50AM +0100, Rafał Miłecki wrote:
> On 25.11.2020 09:23, Greg Kroah-Hartman wrote:
> > On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
> > > From: Rafał Miłecki <rafal@milecki.pl>
> > > 
> > > Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> > > is ARM64.
> > > 
> > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > ---
> > >   drivers/tty/serial/Kconfig | 3 ++-
> > >   1 file changed, 2 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> > > index 28f22e58639c..6907c5b17a0e 100644
> > > --- a/drivers/tty/serial/Kconfig
> > > +++ b/drivers/tty/serial/Kconfig
> > > @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
> > >   config SERIAL_BCM63XX
> > >   	tristate "Broadcom BCM63xx/BCM33xx UART support"
> > >   	select SERIAL_CORE
> > > -	depends on MIPS || ARM || COMPILE_TEST
> > > +	depends on MIPS || ARM || ARM64 || COMPILE_TEST
> > 
> > Why do we have an arch dependancy at all now?
> 
> From my experience "depends" is often used to limit symbol visibility to
> applicable platforms only. I don't think Broadcom has any x86, risc, etc.
> platforms so it's useless there.
> 
> As for testing driver compilation on unused arch-s I thought that's what
> COMPILE_TEST is for.
> 
> Am I wrong there? I'm afraid we don't have clear Documentation on that.
> Please kindly point me to some info if I'm wrong.

If COMPILE_TEST is working for this driver, then trying to restrict it
to a specific arch is usually pointless and the arch dependency can be
removed, keeping patches like this from having to be made over time to
add it to new arches :)

> > > +	default ARCH_BCM4908
> > 
> > Really?  I thought we were getting rid of these "ARCH_platform_type" of
> > things.  That's what a defconfig file is for, right?
> 
> I had to miss something, last time I checked Linus called defconfigs a
> garbage and wanted to get rid of them:
> https://lwn.net/Articles/391372/
> 
> There are also no platform defconfigs in arch/arm64/ at all. Should I
> handle it with arch/arm64/Kconfig.platforms and "select SERIAL_BCM63XX"?

I thought we were trying to get rid of arm64 "platforms" as well.  My
point being, why is this needed at all?

thanks,

greg k-h

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

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-11-25  8:54     ` Greg Kroah-Hartman
@ 2020-11-25  8:58       ` Rafał Miłecki
  2020-12-08 10:45       ` Geert Uytterhoeven
  1 sibling, 0 replies; 15+ messages in thread
From: Rafał Miłecki @ 2020-11-25  8:58 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki

On 25.11.2020 09:54, Greg Kroah-Hartman wrote:
> On Wed, Nov 25, 2020 at 09:38:50AM +0100, Rafał Miłecki wrote:
>> On 25.11.2020 09:23, Greg Kroah-Hartman wrote:
>>> On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
>>>> From: Rafał Miłecki <rafal@milecki.pl>
>>>>
>>>> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
>>>> is ARM64.
>>>>
>>>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>>>> ---
>>>>    drivers/tty/serial/Kconfig | 3 ++-
>>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
>>>> index 28f22e58639c..6907c5b17a0e 100644
>>>> --- a/drivers/tty/serial/Kconfig
>>>> +++ b/drivers/tty/serial/Kconfig
>>>> @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
>>>>    config SERIAL_BCM63XX
>>>>    	tristate "Broadcom BCM63xx/BCM33xx UART support"
>>>>    	select SERIAL_CORE
>>>> -	depends on MIPS || ARM || COMPILE_TEST
>>>> +	depends on MIPS || ARM || ARM64 || COMPILE_TEST
>>>
>>> Why do we have an arch dependancy at all now?
>>
>>  From my experience "depends" is often used to limit symbol visibility to
>> applicable platforms only. I don't think Broadcom has any x86, risc, etc.
>> platforms so it's useless there.
>>
>> As for testing driver compilation on unused arch-s I thought that's what
>> COMPILE_TEST is for.
>>
>> Am I wrong there? I'm afraid we don't have clear Documentation on that.
>> Please kindly point me to some info if I'm wrong.
> 
> If COMPILE_TEST is working for this driver, then trying to restrict it
> to a specific arch is usually pointless and the arch dependency can be
> removed, keeping patches like this from having to be made over time to
> add it to new arches :)
> 
>>>> +	default ARCH_BCM4908
>>>
>>> Really?  I thought we were getting rid of these "ARCH_platform_type" of
>>> things.  That's what a defconfig file is for, right?
>>
>> I had to miss something, last time I checked Linus called defconfigs a
>> garbage and wanted to get rid of them:
>> https://lwn.net/Articles/391372/
>>
>> There are also no platform defconfigs in arch/arm64/ at all. Should I
>> handle it with arch/arm64/Kconfig.platforms and "select SERIAL_BCM63XX"?
> 
> I thought we were trying to get rid of arm64 "platforms" as well.  My
> point being, why is this needed at all?

I find it useful for getting working kernel config for buildoot. It's
simpler to look in arch/ than either:
1. Getting list of all required drivers manually (by looking at DT?)
2. Checking for config used by OpenWrt
3. Checking for config used by Linaro
4. Checking for config used by Foo

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

* [PATCH V2] tty: serial: bcm63xx: lower driver dependencies
  2020-11-25  8:13 [PATCH] tty: serial: bcm63xx: allow building on ARM64 Rafał Miłecki
  2020-11-25  8:23 ` Greg Kroah-Hartman
@ 2020-11-25  9:06 ` Rafał Miłecki
  2020-11-28  5:02   ` Florian Fainelli
  2020-12-08 10:47   ` Geert Uytterhoeven
  2020-12-08 19:23 ` [PATCH] tty: serial: bcm63xx: allow building on ARM64 Florian Fainelli
  2 siblings, 2 replies; 15+ messages in thread
From: Rafał Miłecki @ 2020-11-25  9:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki

From: Rafał Miłecki <rafal@milecki.pl>

Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
is ARM64. In future more architectures may need it as well. There is
nothing arch specific breaking compilation so just stick to requiring
COMMON_CLK.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
V2: Just drop all ARCH_* dependencies. Thanks Greg!
---
 drivers/tty/serial/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 28f22e58639c..cc67f02f5c32 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1133,7 +1133,7 @@ config SERIAL_TIMBERDALE
 config SERIAL_BCM63XX
 	tristate "Broadcom BCM63xx/BCM33xx UART support"
 	select SERIAL_CORE
-	depends on MIPS || ARM || COMPILE_TEST
+	depends on COMMON_CLK
 	help
 	  This enables the driver for the onchip UART core found on
 	  the following chipsets:
-- 
2.26.2


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

* Re: [PATCH V2] tty: serial: bcm63xx: lower driver dependencies
  2020-11-25  9:06 ` [PATCH V2] tty: serial: bcm63xx: lower driver dependencies Rafał Miłecki
@ 2020-11-28  5:02   ` Florian Fainelli
  2020-12-08 10:47   ` Geert Uytterhoeven
  1 sibling, 0 replies; 15+ messages in thread
From: Florian Fainelli @ 2020-11-28  5:02 UTC (permalink / raw)
  To: Rafał Miłecki, Greg Kroah-Hartman
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki



On 11/25/2020 1:06 AM, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> is ARM64. In future more architectures may need it as well. There is
> nothing arch specific breaking compilation so just stick to requiring
> COMMON_CLK.
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

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

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-11-25  8:54     ` Greg Kroah-Hartman
  2020-11-25  8:58       ` Rafał Miłecki
@ 2020-12-08 10:45       ` Geert Uytterhoeven
  2020-12-08 10:59         ` Rafał Miłecki
  2020-12-08 11:03         ` Greg Kroah-Hartman
  1 sibling, 2 replies; 15+ messages in thread
From: Geert Uytterhoeven @ 2020-12-08 10:45 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Rafał Miłecki, Jiri Slaby, open list:SERIAL DRIVERS,
	Hauke Mehrtens, bcm-kernel-feedback-list,
	Rafał Miłecki, Arnd Bergmann

Hi Greg,

On Wed, Nov 25, 2020 at 9:53 AM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
> On Wed, Nov 25, 2020 at 09:38:50AM +0100, Rafał Miłecki wrote:
> > On 25.11.2020 09:23, Greg Kroah-Hartman wrote:
> > > On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
> > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > >
> > > > Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> > > > is ARM64.
> > > >
> > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > > ---
> > > >   drivers/tty/serial/Kconfig | 3 ++-
> > > >   1 file changed, 2 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> > > > index 28f22e58639c..6907c5b17a0e 100644
> > > > --- a/drivers/tty/serial/Kconfig
> > > > +++ b/drivers/tty/serial/Kconfig
> > > > @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
> > > >   config SERIAL_BCM63XX
> > > >           tristate "Broadcom BCM63xx/BCM33xx UART support"
> > > >           select SERIAL_CORE
> > > > - depends on MIPS || ARM || COMPILE_TEST
> > > > + depends on MIPS || ARM || ARM64 || COMPILE_TEST

Why not s/ARM64/ARCH_BCM4908/?

> > >
> > > Why do we have an arch dependancy at all now?
> >
> > From my experience "depends" is often used to limit symbol visibility to
> > applicable platforms only. I don't think Broadcom has any x86, risc, etc.
> > platforms so it's useless there.
> >
> > As for testing driver compilation on unused arch-s I thought that's what
> > COMPILE_TEST is for.
> >
> > Am I wrong there? I'm afraid we don't have clear Documentation on that.
> > Please kindly point me to some info if I'm wrong.
>
> If COMPILE_TEST is working for this driver, then trying to restrict it
> to a specific arch is usually pointless and the arch dependency can be
> removed, keeping patches like this from having to be made over time to
> add it to new arches :)
>
> > > > + default ARCH_BCM4908
> > >
> > > Really?  I thought we were getting rid of these "ARCH_platform_type" of

No we are not.

> > > things.  That's what a defconfig file is for, right?

FWIW, the arm64 defconfig file enables about everything, for all arm64
platforms.

> > I had to miss something, last time I checked Linus called defconfigs a
> > garbage and wanted to get rid of them:
> > https://lwn.net/Articles/391372/
> >
> > There are also no platform defconfigs in arch/arm64/ at all. Should I
> > handle it with arch/arm64/Kconfig.platforms and "select SERIAL_BCM63XX"?
>
> I thought we were trying to get rid of arm64 "platforms" as well.  My
> point being, why is this needed at all?

To prevent asking the user about a driver that is completely useless for
the system(s) the user is compiling a kernel for.

Do you want to let distros compile all arm/arm64-only SoC drivers for x86, too?

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] 15+ messages in thread

* Re: [PATCH V2] tty: serial: bcm63xx: lower driver dependencies
  2020-11-25  9:06 ` [PATCH V2] tty: serial: bcm63xx: lower driver dependencies Rafał Miłecki
  2020-11-28  5:02   ` Florian Fainelli
@ 2020-12-08 10:47   ` Geert Uytterhoeven
  2020-12-08 11:02     ` Rafał Miłecki
  1 sibling, 1 reply; 15+ messages in thread
From: Geert Uytterhoeven @ 2020-12-08 10:47 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Greg Kroah-Hartman, Jiri Slaby, open list:SERIAL DRIVERS,
	Hauke Mehrtens, bcm-kernel-feedback-list,
	Rafał Miłecki

On Wed, Nov 25, 2020 at 10:08 AM Rafał Miłecki <zajec5@gmail.com> wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> is ARM64. In future more architectures may need it as well. There is
> nothing arch specific breaking compilation so just stick to requiring
> COMMON_CLK.
>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>

NAKed-by: Geert Uytterhoeven <geert+renesas@glider.be>

> ---
> V2: Just drop all ARCH_* dependencies. Thanks Greg!

Greg, please stop suggesting to make the user's life harder.

> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -1133,7 +1133,7 @@ config SERIAL_TIMBERDALE
>  config SERIAL_BCM63XX
>         tristate "Broadcom BCM63xx/BCM33xx UART support"
>         select SERIAL_CORE
> -       depends on MIPS || ARM || COMPILE_TEST
> +       depends on COMMON_CLK
>         help
>           This enables the driver for the onchip UART core found on
>           the following chipsets:

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] 15+ messages in thread

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-12-08 10:45       ` Geert Uytterhoeven
@ 2020-12-08 10:59         ` Rafał Miłecki
  2020-12-08 15:30           ` Geert Uytterhoeven
  2020-12-08 11:03         ` Greg Kroah-Hartman
  1 sibling, 1 reply; 15+ messages in thread
From: Rafał Miłecki @ 2020-12-08 10:59 UTC (permalink / raw)
  To: Geert Uytterhoeven, Greg Kroah-Hartman
  Cc: Jiri Slaby, open list:SERIAL DRIVERS, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki, Arnd Bergmann

[Scroll down]

On 08.12.2020 11:45, Geert Uytterhoeven wrote:
> On Wed, Nov 25, 2020 at 9:53 AM Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
>> On Wed, Nov 25, 2020 at 09:38:50AM +0100, Rafał Miłecki wrote:
>>> On 25.11.2020 09:23, Greg Kroah-Hartman wrote:
>>>> On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
>>>>> From: Rafał Miłecki <rafal@milecki.pl>
>>>>>
>>>>> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
>>>>> is ARM64.
>>>>>
>>>>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>>>>> ---
>>>>>    drivers/tty/serial/Kconfig | 3 ++-
>>>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
>>>>> index 28f22e58639c..6907c5b17a0e 100644
>>>>> --- a/drivers/tty/serial/Kconfig
>>>>> +++ b/drivers/tty/serial/Kconfig
>>>>> @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
>>>>>    config SERIAL_BCM63XX
>>>>>            tristate "Broadcom BCM63xx/BCM33xx UART support"
>>>>>            select SERIAL_CORE
>>>>> - depends on MIPS || ARM || COMPILE_TEST
>>>>> + depends on MIPS || ARM || ARM64 || COMPILE_TEST
> 
> Why not s/ARM64/ARCH_BCM4908/?
> 
>>>>
>>>> Why do we have an arch dependancy at all now?
>>>
>>>  From my experience "depends" is often used to limit symbol visibility to
>>> applicable platforms only. I don't think Broadcom has any x86, risc, etc.
>>> platforms so it's useless there.
>>>
>>> As for testing driver compilation on unused arch-s I thought that's what
>>> COMPILE_TEST is for.
>>>
>>> Am I wrong there? I'm afraid we don't have clear Documentation on that.
>>> Please kindly point me to some info if I'm wrong.
>>
>> If COMPILE_TEST is working for this driver, then trying to restrict it
>> to a specific arch is usually pointless and the arch dependency can be
>> removed, keeping patches like this from having to be made over time to
>> add it to new arches :)
>>
>>>>> + default ARCH_BCM4908
>>>>
>>>> Really?  I thought we were getting rid of these "ARCH_platform_type" of
> 
> No we are not.
> 
>>>> things.  That's what a defconfig file is for, right?
> 
> FWIW, the arm64 defconfig file enables about everything, for all arm64
> platforms.
> 
>>> I had to miss something, last time I checked Linus called defconfigs a
>>> garbage and wanted to get rid of them:
>>> https://lwn.net/Articles/391372/
>>>
>>> There are also no platform defconfigs in arch/arm64/ at all. Should I
>>> handle it with arch/arm64/Kconfig.platforms and "select SERIAL_BCM63XX"?
>>
>> I thought we were trying to get rid of arm64 "platforms" as well.  My
>> point being, why is this needed at all?
> 
> To prevent asking the user about a driver that is completely useless for
> the system(s) the user is compiling a kernel for.
> 
> Do you want to let distros compile all arm/arm64-only SoC drivers for x86, too?

Could you suggest & send some Documentation on that so we have a global rule
instead of per-tree / per-maintainer preferences, please? I'd really
appreciate that.

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

* Re: [PATCH V2] tty: serial: bcm63xx: lower driver dependencies
  2020-12-08 10:47   ` Geert Uytterhoeven
@ 2020-12-08 11:02     ` Rafał Miłecki
  0 siblings, 0 replies; 15+ messages in thread
From: Rafał Miłecki @ 2020-12-08 11:02 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Kroah-Hartman, Jiri Slaby, open list:SERIAL DRIVERS,
	Hauke Mehrtens, bcm-kernel-feedback-list,
	Rafał Miłecki

On 08.12.2020 11:47, Geert Uytterhoeven wrote:
> On Wed, Nov 25, 2020 at 10:08 AM Rafał Miłecki <zajec5@gmail.com> wrote:
>> From: Rafał Miłecki <rafal@milecki.pl>
>>
>> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
>> is ARM64. In future more architectures may need it as well. There is
>> nothing arch specific breaking compilation so just stick to requiring
>> COMMON_CLK.
>>
>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> 
> NAKed-by: Geert Uytterhoeven <geert+renesas@glider.be>

I'm happy to fix that once maintainers agree on how to handle deps like
that and ideally we have if officially documented.

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

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-12-08 10:45       ` Geert Uytterhoeven
  2020-12-08 10:59         ` Rafał Miłecki
@ 2020-12-08 11:03         ` Greg Kroah-Hartman
  2020-12-08 12:12           ` Geert Uytterhoeven
  1 sibling, 1 reply; 15+ messages in thread
From: Greg Kroah-Hartman @ 2020-12-08 11:03 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Rafał Miłecki, Jiri Slaby, open list:SERIAL DRIVERS,
	Hauke Mehrtens, bcm-kernel-feedback-list,
	Rafał Miłecki, Arnd Bergmann

On Tue, Dec 08, 2020 at 11:45:33AM +0100, Geert Uytterhoeven wrote:
> Hi Greg,
> 
> On Wed, Nov 25, 2020 at 9:53 AM Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > On Wed, Nov 25, 2020 at 09:38:50AM +0100, Rafał Miłecki wrote:
> > > On 25.11.2020 09:23, Greg Kroah-Hartman wrote:
> > > > On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
> > > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > > >
> > > > > Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> > > > > is ARM64.
> > > > >
> > > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > > > > ---
> > > > >   drivers/tty/serial/Kconfig | 3 ++-
> > > > >   1 file changed, 2 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> > > > > index 28f22e58639c..6907c5b17a0e 100644
> > > > > --- a/drivers/tty/serial/Kconfig
> > > > > +++ b/drivers/tty/serial/Kconfig
> > > > > @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
> > > > >   config SERIAL_BCM63XX
> > > > >           tristate "Broadcom BCM63xx/BCM33xx UART support"
> > > > >           select SERIAL_CORE
> > > > > - depends on MIPS || ARM || COMPILE_TEST
> > > > > + depends on MIPS || ARM || ARM64 || COMPILE_TEST
> 
> Why not s/ARM64/ARCH_BCM4908/?
> 
> > > >
> > > > Why do we have an arch dependancy at all now?
> > >
> > > From my experience "depends" is often used to limit symbol visibility to
> > > applicable platforms only. I don't think Broadcom has any x86, risc, etc.
> > > platforms so it's useless there.
> > >
> > > As for testing driver compilation on unused arch-s I thought that's what
> > > COMPILE_TEST is for.
> > >
> > > Am I wrong there? I'm afraid we don't have clear Documentation on that.
> > > Please kindly point me to some info if I'm wrong.
> >
> > If COMPILE_TEST is working for this driver, then trying to restrict it
> > to a specific arch is usually pointless and the arch dependency can be
> > removed, keeping patches like this from having to be made over time to
> > add it to new arches :)
> >
> > > > > + default ARCH_BCM4908
> > > >
> > > > Really?  I thought we were getting rid of these "ARCH_platform_type" of
> 
> No we are not.

Ok, I keep getting mixed signals here.

> > > > things.  That's what a defconfig file is for, right?
> 
> FWIW, the arm64 defconfig file enables about everything, for all arm64
> platforms.

Then why are there ARCH_platforms for arm64 systems?

> > > I had to miss something, last time I checked Linus called defconfigs a
> > > garbage and wanted to get rid of them:
> > > https://lwn.net/Articles/391372/
> > >
> > > There are also no platform defconfigs in arch/arm64/ at all. Should I
> > > handle it with arch/arm64/Kconfig.platforms and "select SERIAL_BCM63XX"?
> >
> > I thought we were trying to get rid of arm64 "platforms" as well.  My
> > point being, why is this needed at all?
> 
> To prevent asking the user about a driver that is completely useless for
> the system(s) the user is compiling a kernel for.

How do you "know" that given the huge number of different ip blocks in
SoC systems these days?

> Do you want to let distros compile all arm/arm64-only SoC drivers for x86, too?

Sure, many have crossed over over the years and shown up there.

But distro config owners are smarter than that, give them some credit :)

thanks,

greg k-h

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

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-12-08 11:03         ` Greg Kroah-Hartman
@ 2020-12-08 12:12           ` Geert Uytterhoeven
  0 siblings, 0 replies; 15+ messages in thread
From: Geert Uytterhoeven @ 2020-12-08 12:12 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Rafał Miłecki, Jiri Slaby, open list:SERIAL DRIVERS,
	Hauke Mehrtens, bcm-kernel-feedback-list,
	Rafał Miłecki, Arnd Bergmann

Hi Greg,

On Tue, Dec 8, 2020 at 12:02 PM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
> On Tue, Dec 08, 2020 at 11:45:33AM +0100, Geert Uytterhoeven wrote:
> > On Wed, Nov 25, 2020 at 9:53 AM Greg Kroah-Hartman
> > <gregkh@linuxfoundation.org> wrote:
> > > On Wed, Nov 25, 2020 at 09:38:50AM +0100, Rafał Miłecki wrote:
> > > > On 25.11.2020 09:23, Greg Kroah-Hartman wrote:
> > > > > On Wed, Nov 25, 2020 at 09:13:52AM +0100, Rafał Miłecki wrote:
> > > > > > From: Rafał Miłecki <rafal@milecki.pl>
> > > > > >
> > > > > > Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> > > > > > is ARM64.
> > > > > >
> > > > > > Signed-off-by: Rafał Miłecki <rafal@milecki.pl>

> > > > > > --- a/drivers/tty/serial/Kconfig
> > > > > > +++ b/drivers/tty/serial/Kconfig
> > > > > > @@ -1133,7 +1133,8 @@ config SERIAL_TIMBERDALE
> > > > > >   config SERIAL_BCM63XX
> > > > > >           tristate "Broadcom BCM63xx/BCM33xx UART support"
> > > > > >           select SERIAL_CORE
> > > > > > - depends on MIPS || ARM || COMPILE_TEST
> > > > > > + depends on MIPS || ARM || ARM64 || COMPILE_TEST
> >
> > Why not s/ARM64/ARCH_BCM4908/?
> >
> > > > >
> > > > > Why do we have an arch dependancy at all now?
> > > >
> > > > From my experience "depends" is often used to limit symbol visibility to
> > > > applicable platforms only. I don't think Broadcom has any x86, risc, etc.
> > > > platforms so it's useless there.
> > > >
> > > > As for testing driver compilation on unused arch-s I thought that's what
> > > > COMPILE_TEST is for.
> > > >
> > > > Am I wrong there? I'm afraid we don't have clear Documentation on that.
> > > > Please kindly point me to some info if I'm wrong.
> > >
> > > If COMPILE_TEST is working for this driver, then trying to restrict it
> > > to a specific arch is usually pointless and the arch dependency can be
> > > removed, keeping patches like this from having to be made over time to
> > > add it to new arches :)
> > >
> > > > > > + default ARCH_BCM4908
> > > > >
> > > > > Really?  I thought we were getting rid of these "ARCH_platform_type" of
> >
> > No we are not.
>
> Ok, I keep getting mixed signals here.
>
> > > > > things.  That's what a defconfig file is for, right?
> >
> > FWIW, the arm64 defconfig file enables about everything, for all arm64
> > platforms.
>
> Then why are there ARCH_platforms for arm64 systems?

To enable core infrastructure or quirks for a certain SoC or SoC family,
and to have a symbol for individual drivers to depend on?
To make it easier to configure a kernel suited for a specific system?
Mostly, you can take arm64/defconfig, disable the ARCH_* guards
for SoC families you're not interested in, and have a suitable kernel
for your system.

> > > > I had to miss something, last time I checked Linus called defconfigs a
> > > > garbage and wanted to get rid of them:
> > > > https://lwn.net/Articles/391372/
> > > >
> > > > There are also no platform defconfigs in arch/arm64/ at all. Should I
> > > > handle it with arch/arm64/Kconfig.platforms and "select SERIAL_BCM63XX"?
> > >
> > > I thought we were trying to get rid of arm64 "platforms" as well.  My
> > > point being, why is this needed at all?
> >
> > To prevent asking the user about a driver that is completely useless for
> > the system(s) the user is compiling a kernel for.
>
> How do you "know" that given the huge number of different ip blocks in
> SoC systems these days?

E.g. by looking at which .dtsi files contain device nodes that have a
compatible value that matches the list of compatible values in the
driver.  Most IP cores are only present on a fairly limited set of SoCs
and SoC families. Designware IPs are the major exception.
And I hope the driver author/maintainer has some knowledge here.

> > Do you want to let distros compile all arm/arm64-only SoC drivers for x86, too?
>
> Sure, many have crossed over over the years and shown up there.
>
> But distro config owners are smarter than that, give them some credit :)

Let's repeat your question above: "How do they know that...?".
I guess the driver developer knows better (read: needs much less
investigation time) than the distro config owner.

It's not just for distros.  If we can make life easier for every single
developer or user who configures a kernel, by just storing that
information in the dependency system, I think that's a justification
for doing that.  And in fact we're already doing that in most
subsystems. Serial seems to be the only one that wants to move
in the other direction...

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] 15+ messages in thread

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-12-08 10:59         ` Rafał Miłecki
@ 2020-12-08 15:30           ` Geert Uytterhoeven
  0 siblings, 0 replies; 15+ messages in thread
From: Geert Uytterhoeven @ 2020-12-08 15:30 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Greg Kroah-Hartman, Jiri Slaby, open list:SERIAL DRIVERS,
	Hauke Mehrtens, bcm-kernel-feedback-list,
	Rafał Miłecki, Arnd Bergmann

Hi Rafał,

On Tue, Dec 8, 2020 at 11:59 AM Rafał Miłecki <zajec5@gmail.com> wrote:
> Could you suggest & send some Documentation on that so we have a global rule
> instead of per-tree / per-maintainer preferences, please? I'd really
> appreciate that.

Thanks, good idea!

[PATCH 0/2] Documentation/kbuild: Document COMPILE_TEST and platform
dependencies
https://lore.kernel.org/r/20201208152857.2162093-1-geert+renesas@glider.be

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] 15+ messages in thread

* Re: [PATCH] tty: serial: bcm63xx: allow building on ARM64
  2020-11-25  8:13 [PATCH] tty: serial: bcm63xx: allow building on ARM64 Rafał Miłecki
  2020-11-25  8:23 ` Greg Kroah-Hartman
  2020-11-25  9:06 ` [PATCH V2] tty: serial: bcm63xx: lower driver dependencies Rafał Miłecki
@ 2020-12-08 19:23 ` Florian Fainelli
  2 siblings, 0 replies; 15+ messages in thread
From: Florian Fainelli @ 2020-12-08 19:23 UTC (permalink / raw)
  To: Rafał Miłecki, Greg Kroah-Hartman
  Cc: Jiri Slaby, linux-serial, Hauke Mehrtens,
	bcm-kernel-feedback-list, Rafał Miłecki

On 11/25/20 12:13 AM, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> Hardware supported by bcm63xx is also used by BCM4908 SoCs family that
> is ARM64.
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>

If this ends up being the approach chosen:

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
--
Florian

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

end of thread, other threads:[~2020-12-08 20:20 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-25  8:13 [PATCH] tty: serial: bcm63xx: allow building on ARM64 Rafał Miłecki
2020-11-25  8:23 ` Greg Kroah-Hartman
2020-11-25  8:38   ` Rafał Miłecki
2020-11-25  8:54     ` Greg Kroah-Hartman
2020-11-25  8:58       ` Rafał Miłecki
2020-12-08 10:45       ` Geert Uytterhoeven
2020-12-08 10:59         ` Rafał Miłecki
2020-12-08 15:30           ` Geert Uytterhoeven
2020-12-08 11:03         ` Greg Kroah-Hartman
2020-12-08 12:12           ` Geert Uytterhoeven
2020-11-25  9:06 ` [PATCH V2] tty: serial: bcm63xx: lower driver dependencies Rafał Miłecki
2020-11-28  5:02   ` Florian Fainelli
2020-12-08 10:47   ` Geert Uytterhoeven
2020-12-08 11:02     ` Rafał Miłecki
2020-12-08 19:23 ` [PATCH] tty: serial: bcm63xx: allow building on ARM64 Florian Fainelli

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