All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Nicolas.Ferre@microchip.com>
To: <alexandre.belloni@bootlin.com>, <Claudiu.Beznea@microchip.com>
Cc: <linux@armlinux.org.uk>, <Ludovic.Desroches@microchip.com>,
	<sre@kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <linux-pm@vger.kernel.org>
Subject: Re: [PATCH v2 02/17] ARM: at91: pm: move SAM9X60's PM under its own SoC config flag
Date: Wed, 27 Nov 2019 10:59:20 +0000	[thread overview]
Message-ID: <ed32a4fd-973a-ec59-c695-11411dd47dd1@microchip.com> (raw)
In-Reply-To: <20191127100722.GI299836@piout.net>

On 27/11/2019 at 11:07, Alexandre Belloni wrote:
> On 27/11/2019 08:06:47+0000, Claudiu.Beznea@microchip.com wrote:
>>
>>
>> On 26.11.2019 23:28, Alexandre Belloni wrote:
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>
>>> On 26/11/2019 15:12:06+0200, Claudiu Beznea wrote:
>>>> Move SAM9X60's PM part under SoC config flag. This allows the building
>>>> of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag,
>>>> allowing us to select only necessary config flags for SAM9X60.
>>>>
>>>
>>> I'm really wondering, how much space does that really save?
>>>
>>> The net benefit seems to be very small...
>>
>> Not that much, indeed. We want to be independent of SOC_AT91SAM9.
>>
> 
> The question is why? I don't see the technical benefit but I
> definitively see the maintenance burden of having two separate configs
> doing almost the same thing.

The AT91SAM9 config embeds a bunch of earlier drivers/clock definitions 
that are not needed anymore in the new SAM9X60. Likewise, some sam9x60 
new things are not needed at all for the older sam9 series.
There is somehow a generation gap between them...

I would like that we preserve the possibility to only embed the sam9x60 
alone in a tailored kernel configuration, basically how it is done for 
our SAMA5s. I know that we're talking about ~100s of KB here, but 
however, it's easy to do now and it could make a difference when 
targeting low spec systems.
Maintaining the SAMA5 as separate config options never proved us to be 
difficult to do.

Best regards,
   Nicolas

>>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
>>>> ---
>>>>   arch/arm/mach-at91/Makefile   |  1 +
>>>>   arch/arm/mach-at91/at91sam9.c | 18 ------------------
>>>>   arch/arm/mach-at91/pm.c       |  2 +-
>>>>   arch/arm/mach-at91/sam9x60.c  | 34 ++++++++++++++++++++++++++++++++++
>>>>   4 files changed, 36 insertions(+), 19 deletions(-)
>>>>   create mode 100644 arch/arm/mach-at91/sam9x60.c
>>>>
>>>> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
>>>> index de64301dcff2..f565490f1b70 100644
>>>> --- a/arch/arm/mach-at91/Makefile
>>>> +++ b/arch/arm/mach-at91/Makefile
>>>> @@ -6,6 +6,7 @@
>>>>   # CPU-specific support
>>>>   obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o
>>>>   obj-$(CONFIG_SOC_AT91SAM9)   += at91sam9.o
>>>> +obj-$(CONFIG_SOC_SAM9X60)    += sam9x60.o
>>>>   obj-$(CONFIG_SOC_SAMA5)              += sama5.o
>>>>   obj-$(CONFIG_SOC_SAMV7)              += samv7.o
>>>>
>>>> diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c
>>>> index bf629c90c758..7e572189a5eb 100644
>>>> --- a/arch/arm/mach-at91/at91sam9.c
>>>> +++ b/arch/arm/mach-at91/at91sam9.c
>>>> @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9")
>>>>        .init_machine   = at91sam9_init,
>>>>        .dt_compat      = at91_dt_board_compat,
>>>>   MACHINE_END
>>>> -
>>>> -static void __init sam9x60_init(void)
>>>> -{
>>>> -     of_platform_default_populate(NULL, NULL, NULL);
>>>> -
>>>> -     sam9x60_pm_init();
>>>> -}
>>>> -
>>>> -static const char *const sam9x60_dt_board_compat[] __initconst = {
>>>> -     "microchip,sam9x60",
>>>> -     NULL
>>>> -};
>>>> -
>>>> -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
>>>> -     /* Maintainer: Microchip */
>>>> -     .init_machine   = sam9x60_init,
>>>> -     .dt_compat      = sam9x60_dt_board_compat,
>>>> -MACHINE_END
>>>> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
>>>> index d5af6aedc02c..56a6a49b19e2 100644
>>>> --- a/arch/arm/mach-at91/pm.c
>>>> +++ b/arch/arm/mach-at91/pm.c
>>>> @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void)
>>>>
>>>>   void __init sam9x60_pm_init(void)
>>>>   {
>>>> -     if (!IS_ENABLED(CONFIG_SOC_AT91SAM9))
>>>> +     if (!IS_ENABLED(CONFIG_SOC_SAM9X60))
>>>>                return;
>>>>
>>>>        at91_pm_modes_init();
>>>> diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c
>>>> new file mode 100644
>>>> index 000000000000..d8c739d25458
>>>> --- /dev/null
>>>> +++ b/arch/arm/mach-at91/sam9x60.c
>>>> @@ -0,0 +1,34 @@
>>>> +// SPDX-License-Identifier: GPL-2.0+
>>>> +/*
>>>> + * Setup code for SAM9X60.
>>>> + *
>>>> + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
>>>> + *
>>>> + * Author: Claudiu Beznea <claudiu.beznea@microchip.com>
>>>> + */
>>>> +
>>>> +#include <linux/of.h>
>>>> +#include <linux/of_platform.h>
>>>> +
>>>> +#include <asm/mach/arch.h>
>>>> +#include <asm/system_misc.h>
>>>> +
>>>> +#include "generic.h"
>>>> +
>>>> +static void __init sam9x60_init(void)
>>>> +{
>>>> +     of_platform_default_populate(NULL, NULL, NULL);
>>>> +
>>>> +     sam9x60_pm_init();
>>>> +}
>>>> +
>>>> +static const char *const sam9x60_dt_board_compat[] __initconst = {
>>>> +     "microchip,sam9x60",
>>>> +     NULL
>>>> +};
>>>> +
>>>> +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
>>>> +     /* Maintainer: Microchip */
>>>> +     .init_machine   = sam9x60_init,
>>>> +     .dt_compat      = sam9x60_dt_board_compat,
>>>> +MACHINE_END
>>>> --
>>>> 2.7.4
>>>>
>>>
>>> --
>>> Alexandre Belloni, Bootlin
>>> Embedded Linux and Kernel engineering
>>> https://bootlin.com
>>>
> 
> --
> Alexandre Belloni, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
> 


-- 
Nicolas Ferre

WARNING: multiple messages have this Message-ID (diff)
From: <Nicolas.Ferre@microchip.com>
To: <alexandre.belloni@bootlin.com>, <Claudiu.Beznea@microchip.com>
Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux@armlinux.org.uk, Ludovic.Desroches@microchip.com,
	sre@kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 02/17] ARM: at91: pm: move SAM9X60's PM under its own SoC config flag
Date: Wed, 27 Nov 2019 10:59:20 +0000	[thread overview]
Message-ID: <ed32a4fd-973a-ec59-c695-11411dd47dd1@microchip.com> (raw)
In-Reply-To: <20191127100722.GI299836@piout.net>

On 27/11/2019 at 11:07, Alexandre Belloni wrote:
> On 27/11/2019 08:06:47+0000, Claudiu.Beznea@microchip.com wrote:
>>
>>
>> On 26.11.2019 23:28, Alexandre Belloni wrote:
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>
>>> On 26/11/2019 15:12:06+0200, Claudiu Beznea wrote:
>>>> Move SAM9X60's PM part under SoC config flag. This allows the building
>>>> of SAM9X60 platform withouth depending on CONFIG_SOC_AT91SAM9 flag,
>>>> allowing us to select only necessary config flags for SAM9X60.
>>>>
>>>
>>> I'm really wondering, how much space does that really save?
>>>
>>> The net benefit seems to be very small...
>>
>> Not that much, indeed. We want to be independent of SOC_AT91SAM9.
>>
> 
> The question is why? I don't see the technical benefit but I
> definitively see the maintenance burden of having two separate configs
> doing almost the same thing.

The AT91SAM9 config embeds a bunch of earlier drivers/clock definitions 
that are not needed anymore in the new SAM9X60. Likewise, some sam9x60 
new things are not needed at all for the older sam9 series.
There is somehow a generation gap between them...

I would like that we preserve the possibility to only embed the sam9x60 
alone in a tailored kernel configuration, basically how it is done for 
our SAMA5s. I know that we're talking about ~100s of KB here, but 
however, it's easy to do now and it could make a difference when 
targeting low spec systems.
Maintaining the SAMA5 as separate config options never proved us to be 
difficult to do.

Best regards,
   Nicolas

>>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
>>>> ---
>>>>   arch/arm/mach-at91/Makefile   |  1 +
>>>>   arch/arm/mach-at91/at91sam9.c | 18 ------------------
>>>>   arch/arm/mach-at91/pm.c       |  2 +-
>>>>   arch/arm/mach-at91/sam9x60.c  | 34 ++++++++++++++++++++++++++++++++++
>>>>   4 files changed, 36 insertions(+), 19 deletions(-)
>>>>   create mode 100644 arch/arm/mach-at91/sam9x60.c
>>>>
>>>> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
>>>> index de64301dcff2..f565490f1b70 100644
>>>> --- a/arch/arm/mach-at91/Makefile
>>>> +++ b/arch/arm/mach-at91/Makefile
>>>> @@ -6,6 +6,7 @@
>>>>   # CPU-specific support
>>>>   obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o
>>>>   obj-$(CONFIG_SOC_AT91SAM9)   += at91sam9.o
>>>> +obj-$(CONFIG_SOC_SAM9X60)    += sam9x60.o
>>>>   obj-$(CONFIG_SOC_SAMA5)              += sama5.o
>>>>   obj-$(CONFIG_SOC_SAMV7)              += samv7.o
>>>>
>>>> diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c
>>>> index bf629c90c758..7e572189a5eb 100644
>>>> --- a/arch/arm/mach-at91/at91sam9.c
>>>> +++ b/arch/arm/mach-at91/at91sam9.c
>>>> @@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9")
>>>>        .init_machine   = at91sam9_init,
>>>>        .dt_compat      = at91_dt_board_compat,
>>>>   MACHINE_END
>>>> -
>>>> -static void __init sam9x60_init(void)
>>>> -{
>>>> -     of_platform_default_populate(NULL, NULL, NULL);
>>>> -
>>>> -     sam9x60_pm_init();
>>>> -}
>>>> -
>>>> -static const char *const sam9x60_dt_board_compat[] __initconst = {
>>>> -     "microchip,sam9x60",
>>>> -     NULL
>>>> -};
>>>> -
>>>> -DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
>>>> -     /* Maintainer: Microchip */
>>>> -     .init_machine   = sam9x60_init,
>>>> -     .dt_compat      = sam9x60_dt_board_compat,
>>>> -MACHINE_END
>>>> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
>>>> index d5af6aedc02c..56a6a49b19e2 100644
>>>> --- a/arch/arm/mach-at91/pm.c
>>>> +++ b/arch/arm/mach-at91/pm.c
>>>> @@ -805,7 +805,7 @@ void __init at91rm9200_pm_init(void)
>>>>
>>>>   void __init sam9x60_pm_init(void)
>>>>   {
>>>> -     if (!IS_ENABLED(CONFIG_SOC_AT91SAM9))
>>>> +     if (!IS_ENABLED(CONFIG_SOC_SAM9X60))
>>>>                return;
>>>>
>>>>        at91_pm_modes_init();
>>>> diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c
>>>> new file mode 100644
>>>> index 000000000000..d8c739d25458
>>>> --- /dev/null
>>>> +++ b/arch/arm/mach-at91/sam9x60.c
>>>> @@ -0,0 +1,34 @@
>>>> +// SPDX-License-Identifier: GPL-2.0+
>>>> +/*
>>>> + * Setup code for SAM9X60.
>>>> + *
>>>> + * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
>>>> + *
>>>> + * Author: Claudiu Beznea <claudiu.beznea@microchip.com>
>>>> + */
>>>> +
>>>> +#include <linux/of.h>
>>>> +#include <linux/of_platform.h>
>>>> +
>>>> +#include <asm/mach/arch.h>
>>>> +#include <asm/system_misc.h>
>>>> +
>>>> +#include "generic.h"
>>>> +
>>>> +static void __init sam9x60_init(void)
>>>> +{
>>>> +     of_platform_default_populate(NULL, NULL, NULL);
>>>> +
>>>> +     sam9x60_pm_init();
>>>> +}
>>>> +
>>>> +static const char *const sam9x60_dt_board_compat[] __initconst = {
>>>> +     "microchip,sam9x60",
>>>> +     NULL
>>>> +};
>>>> +
>>>> +DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
>>>> +     /* Maintainer: Microchip */
>>>> +     .init_machine   = sam9x60_init,
>>>> +     .dt_compat      = sam9x60_dt_board_compat,
>>>> +MACHINE_END
>>>> --
>>>> 2.7.4
>>>>
>>>
>>> --
>>> Alexandre Belloni, Bootlin
>>> Embedded Linux and Kernel engineering
>>> https://bootlin.com
>>>
> 
> --
> Alexandre Belloni, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
> 


-- 
Nicolas Ferre

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-11-27 10:59 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-26 13:12 [PATCH v2 00/17] SoC and defconfig support for SAM9X60 Claudiu Beznea
2019-11-26 13:12 ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 01/17] ARM: at91: Kconfig: add sam9x60 pll config flag Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 02/17] ARM: at91: pm: move SAM9X60's PM under its own SoC " Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 21:28   ` Alexandre Belloni
2019-11-26 21:28     ` Alexandre Belloni
2019-11-27  8:06     ` Claudiu.Beznea
2019-11-27  8:06       ` Claudiu.Beznea
2019-11-27 10:07       ` Alexandre Belloni
2019-11-27 10:07         ` Alexandre Belloni
2019-11-27 10:59         ` Nicolas.Ferre [this message]
2019-11-27 10:59           ` Nicolas.Ferre
2019-11-27 11:00         ` Claudiu.Beznea
2019-11-27 11:00           ` Claudiu.Beznea
2019-11-26 13:12 ` [PATCH v2 03/17] drivers: soc: atmel: move sam9x60 under its own " Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 04/17] power: reset: Kconfig: select POWER_RESET_AT91_RESET for sam9x60 Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-29 14:06   ` Sebastian Reichel
2019-11-29 14:06     ` Sebastian Reichel
2019-11-26 13:12 ` [PATCH v2 05/17] drivers: soc: atmel: select POWER_RESET_AT91_SAMA5D2_SHDWC " Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 06/17] ARM: debug-ll: select DEBUG_AT91_RM9200_DBGU " Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 07/17] ARM: at91: Kconfig: add config flag for SAM9X60 SoC Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 08/17] ARM: at91/defconfig: use savedefconfig Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 09/17] ARM: at91/defconfig: enable config flag for sam9x60 SoC Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 10/17] ARM: at91/defconfig: enable config flag for atmel maxtouch Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 11/17] ARM: at91/defconfig: enable config flag for flexcom Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 12/17] ARM: at91/defconfig: enable config flag for XDMAC Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 13/17] ARM: at91/defconfig: enable config flag for I2S Multi-channel Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 14/17] ARM: at91/defconfig: enable config flag for audio PROTO board Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 15/17] ARM: at91/defconfig: enable config flag for SAMA5D2's ADC Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 16/17] ARM: at91/defconfig: enable config flag for ATMEL QUADSPI Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 13:12 ` [PATCH v2 17/17] ARM: at91/defconfig: enable config flag for CLASSD Claudiu Beznea
2019-11-26 13:12   ` Claudiu Beznea
2019-11-26 21:24 ` [PATCH v2 00/17] SoC and defconfig support for SAM9X60 Alexandre Belloni
2019-11-26 21:24   ` Alexandre Belloni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ed32a4fd-973a-ec59-c695-11411dd47dd1@microchip.com \
    --to=nicolas.ferre@microchip.com \
    --cc=Claudiu.Beznea@microchip.com \
    --cc=Ludovic.Desroches@microchip.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=sre@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.