All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>, Kukjin Kim <kgene@kernel.org>,
	Javier Martinez Canillas <javier@osg.samsung.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Kevin Hilman <khilman@baylibre.com>,
	Olof Johansson <olof@lixom.net>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org
Subject: Re: [2/3] soc: samsung: Do not build ARMv7 PMU drivers on ARMv8
Date: Tue, 14 Mar 2017 11:14:15 +0200	[thread overview]
Message-ID: <CAJKOXPfaUhw=vzKKZc=3RjoRsRWP7qmPborjg+qpv5hr6iff8g@mail.gmail.com> (raw)
In-Reply-To: <0ae4c538-a3af-a1b7-418d-4bccbf09faf4@samsung.com>

On Tue, Mar 14, 2017 at 10:40 AM, Alim Akhtar <alim.akhtar@samsung.com> wrote:
>
>
> On 03/14/2017 01:32 PM, Krzysztof Kozlowski wrote:
>> On Tue, Mar 14, 2017 at 9:51 AM, Alim Akhtar <alim.akhtar@samsung.com> wrote:
>>> Hi Krzysztof,
>>>
>>> On 03/12/2017 03:08 AM, Krzysztof Kozlowski wrote:
>>>> The Exynos Power Management Unit (PMU) drivers contain quite large
>>>> static arrays of register values necessary for given Exynos SoC to enter
>>>> low power mode.  All this data is useless for ARMv8 SoC like
>>>> Exynos5433, because the image will not be shared between ARMv7 and
>>>> ARMv8.
>>>>
>>>> Add additional Kconfig symbol for selecting the SoC-specific driver
>>>> addons thus skipping the useless data in the final image (this is
>>>> similar approach to chosen for Exynos clock controller drivers):
>>>>  - exynos-pmu driver will be compiled on both architectures ARMv7
>>>>    and ARMv8,
>>>>  - additional driver_data for ARMv7 SoCs will not be built on ARMv8
>>>>    and a macro will return NULL for them in of_device_id - this should
>>>>    be safe as these compatibles cannot match on ARMv7 and driver
>>>>    anyway handles NULL driver_data,
>>>>  - on ARMv8 compile only exynos-pmu driver which exposes the
>>>>    syscon-regmap for PMU address space.
>>>>
>>>> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
>>>> ---
>>>>  drivers/soc/samsung/Kconfig      |  8 +++++++-
>>>>  drivers/soc/samsung/Makefile     |  4 +++-
>>>>  drivers/soc/samsung/exynos-pmu.c | 22 ++++++++++++++++------
>>>>  drivers/soc/samsung/exynos-pmu.h |  3 +++
>>>>  4 files changed, 29 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig
>>>> index 245533907d1b..8b25bd55e648 100644
>>>> --- a/drivers/soc/samsung/Kconfig
>>>> +++ b/drivers/soc/samsung/Kconfig
>>>> @@ -8,7 +8,13 @@ if SOC_SAMSUNG
>>>>
>>>>  config EXYNOS_PMU
>>>>       bool "Exynos PMU controller driver" if COMPILE_TEST
>>>> -     depends on (ARM && ARCH_EXYNOS) || ((ARM || ARM64) && COMPILE_TEST)
>>>> +     depends on ARCH_EXYNOS || ((ARM || ARM64) && COMPILE_TEST)
>>>> +     select EXYNOS_PMU_ARM_DRIVERS if ARM && ARCH_EXYNOS
>>>> +
>>>
>>> In general this patch look ok, but I was think we should make these
>>> configs configurable via _menuconfig_. Currently these are visible only
>>> if COMPILE_TEST is enabled.
>>> Recently I was working on adding PMU support for Exynos7 and I face
>>> issues when I want to disable this option and re-enable it for testing
>>> purpose.
>>
>> These drivers are not available in menuconfig on purpose - these are
>> essential parts of SoC. Without them usually something will not work
>> so user should not be able to disable them. For all of such drivers,
>> we use the SELECT from mach approach.
>>
> Well, what you are saying is very subjective. In past I have face issues
> where to isolate or narrow down some issue, we do need to play with PMU
> and power domains. So, having a configurable option won't hurt here.
> Anyway if you (or anyone else) strongly feel we should be following
> "SELECT from MACH approach" then lets follow it.

For ARMv7, in the past you could not do this. It behaved (almost)
always the same as it is now. The PMU driver was being compiled in if
ARCH_EXYNOS is selected.

On ARMv8 - Exynos7 - there was no PMU driver so indeed this behavior
changes. However PMU driver now is necessary for pinctrl (and actually
for some others referring by syscon) so really you cannot disable it
and expect things to work. Menuconfig serves such purpose - user
(distro config developer) can choose what he wants but he wants to
boot the kernel. People in general and people setting up configs for
distro usually do not know all the subtle SoC submodule relations for
all of the SoCs. That is our responsibility to provide them something
which is usable.

On the other hand, for debugging we always had to change some things.
That's debugging.

Best regards,
Krzysztof

WARNING: multiple messages have this Message-ID (diff)
From: krzk@kernel.org (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [2/3] soc: samsung: Do not build ARMv7 PMU drivers on ARMv8
Date: Tue, 14 Mar 2017 11:14:15 +0200	[thread overview]
Message-ID: <CAJKOXPfaUhw=vzKKZc=3RjoRsRWP7qmPborjg+qpv5hr6iff8g@mail.gmail.com> (raw)
In-Reply-To: <0ae4c538-a3af-a1b7-418d-4bccbf09faf4@samsung.com>

On Tue, Mar 14, 2017 at 10:40 AM, Alim Akhtar <alim.akhtar@samsung.com> wrote:
>
>
> On 03/14/2017 01:32 PM, Krzysztof Kozlowski wrote:
>> On Tue, Mar 14, 2017 at 9:51 AM, Alim Akhtar <alim.akhtar@samsung.com> wrote:
>>> Hi Krzysztof,
>>>
>>> On 03/12/2017 03:08 AM, Krzysztof Kozlowski wrote:
>>>> The Exynos Power Management Unit (PMU) drivers contain quite large
>>>> static arrays of register values necessary for given Exynos SoC to enter
>>>> low power mode.  All this data is useless for ARMv8 SoC like
>>>> Exynos5433, because the image will not be shared between ARMv7 and
>>>> ARMv8.
>>>>
>>>> Add additional Kconfig symbol for selecting the SoC-specific driver
>>>> addons thus skipping the useless data in the final image (this is
>>>> similar approach to chosen for Exynos clock controller drivers):
>>>>  - exynos-pmu driver will be compiled on both architectures ARMv7
>>>>    and ARMv8,
>>>>  - additional driver_data for ARMv7 SoCs will not be built on ARMv8
>>>>    and a macro will return NULL for them in of_device_id - this should
>>>>    be safe as these compatibles cannot match on ARMv7 and driver
>>>>    anyway handles NULL driver_data,
>>>>  - on ARMv8 compile only exynos-pmu driver which exposes the
>>>>    syscon-regmap for PMU address space.
>>>>
>>>> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
>>>> ---
>>>>  drivers/soc/samsung/Kconfig      |  8 +++++++-
>>>>  drivers/soc/samsung/Makefile     |  4 +++-
>>>>  drivers/soc/samsung/exynos-pmu.c | 22 ++++++++++++++++------
>>>>  drivers/soc/samsung/exynos-pmu.h |  3 +++
>>>>  4 files changed, 29 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig
>>>> index 245533907d1b..8b25bd55e648 100644
>>>> --- a/drivers/soc/samsung/Kconfig
>>>> +++ b/drivers/soc/samsung/Kconfig
>>>> @@ -8,7 +8,13 @@ if SOC_SAMSUNG
>>>>
>>>>  config EXYNOS_PMU
>>>>       bool "Exynos PMU controller driver" if COMPILE_TEST
>>>> -     depends on (ARM && ARCH_EXYNOS) || ((ARM || ARM64) && COMPILE_TEST)
>>>> +     depends on ARCH_EXYNOS || ((ARM || ARM64) && COMPILE_TEST)
>>>> +     select EXYNOS_PMU_ARM_DRIVERS if ARM && ARCH_EXYNOS
>>>> +
>>>
>>> In general this patch look ok, but I was think we should make these
>>> configs configurable via _menuconfig_. Currently these are visible only
>>> if COMPILE_TEST is enabled.
>>> Recently I was working on adding PMU support for Exynos7 and I face
>>> issues when I want to disable this option and re-enable it for testing
>>> purpose.
>>
>> These drivers are not available in menuconfig on purpose - these are
>> essential parts of SoC. Without them usually something will not work
>> so user should not be able to disable them. For all of such drivers,
>> we use the SELECT from mach approach.
>>
> Well, what you are saying is very subjective. In past I have face issues
> where to isolate or narrow down some issue, we do need to play with PMU
> and power domains. So, having a configurable option won't hurt here.
> Anyway if you (or anyone else) strongly feel we should be following
> "SELECT from MACH approach" then lets follow it.

For ARMv7, in the past you could not do this. It behaved (almost)
always the same as it is now. The PMU driver was being compiled in if
ARCH_EXYNOS is selected.

On ARMv8 - Exynos7 - there was no PMU driver so indeed this behavior
changes. However PMU driver now is necessary for pinctrl (and actually
for some others referring by syscon) so really you cannot disable it
and expect things to work. Menuconfig serves such purpose - user
(distro config developer) can choose what he wants but he wants to
boot the kernel. People in general and people setting up configs for
distro usually do not know all the subtle SoC submodule relations for
all of the SoCs. That is our responsibility to provide them something
which is usable.

On the other hand, for debugging we always had to change some things.
That's debugging.

Best regards,
Krzysztof

  reply	other threads:[~2017-03-14  9:14 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-11 21:38 [PATCH 0/3] arm64: exynos: Enable drivers for Exynos5433 Krzysztof Kozlowski
2017-03-11 21:38 ` Krzysztof Kozlowski
2017-03-11 21:38 ` [PATCH 1/3] arm64: defconfig: Enable DRM and LPASS drivers for Exynos5433 and Exynos7 Krzysztof Kozlowski
2017-03-11 21:38   ` Krzysztof Kozlowski
     [not found]   ` <CGME20170314141613epcas5p30fa91bf723a5e3a8f11ce9a8cfdb7dd7@epcas5p3.samsung.com>
2017-03-14 14:16     ` Bartlomiej Zolnierkiewicz
2017-03-14 14:16       ` Bartlomiej Zolnierkiewicz
2017-03-14 14:16       ` Bartlomiej Zolnierkiewicz
2017-03-14 14:18       ` Krzysztof Kozlowski
2017-03-14 14:18         ` Krzysztof Kozlowski
2017-03-11 21:38 ` [PATCH 2/3] soc: samsung: Do not build ARMv7 PMU drivers on ARMv8 Krzysztof Kozlowski
2017-03-11 21:38   ` Krzysztof Kozlowski
     [not found]   ` <CGME20170314075427epcas5p19d137fbcc390e937172a17ae99f11a0c@epcas5p1.samsung.com>
2017-03-14  7:51     ` [2/3] " Alim Akhtar
2017-03-14  7:51       ` Alim Akhtar
2017-03-14  8:02       ` Krzysztof Kozlowski
2017-03-14  8:02         ` Krzysztof Kozlowski
2017-03-14  8:40         ` Alim Akhtar
2017-03-14  8:40           ` Alim Akhtar
2017-03-14  9:14           ` Krzysztof Kozlowski [this message]
2017-03-14  9:14             ` Krzysztof Kozlowski
2017-03-14 14:30             ` Alim Akhtar
2017-03-14 14:30               ` Alim Akhtar
2017-03-14 14:30               ` Alim Akhtar
     [not found]   ` <CGME20170314140626epcas5p20694a5324299c556fbaf7df1e9bf5955@epcas5p2.samsung.com>
2017-03-14 14:06     ` [PATCH 2/3] " Bartlomiej Zolnierkiewicz
2017-03-14 14:06       ` Bartlomiej Zolnierkiewicz
2017-03-11 21:38 ` [PATCH 3/3] arm64: exynos: Enable Exynos PMU and PM domains drivers Krzysztof Kozlowski
2017-03-11 21:38   ` Krzysztof Kozlowski
     [not found]   ` <CGME20170314141711epcas1p40ae1d73674e2c0eaa95da6d021456452@epcas1p4.samsung.com>
2017-03-14 14:17     ` Bartlomiej Zolnierkiewicz
2017-03-14 14:17       ` Bartlomiej Zolnierkiewicz
     [not found]   ` <CGME20170314143652epcas5p43c7c8556228f996d19d716506eb9a0ed@epcas5p4.samsung.com>
2017-03-14 14:33     ` [3/3] " Alim Akhtar
2017-03-14 14:33       ` Alim Akhtar

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='CAJKOXPfaUhw=vzKKZc=3RjoRsRWP7qmPborjg+qpv5hr6iff8g@mail.gmail.com' \
    --to=krzk@kernel.org \
    --cc=alim.akhtar@samsung.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=javier@osg.samsung.com \
    --cc=kgene@kernel.org \
    --cc=khilman@baylibre.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=will.deacon@arm.com \
    /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.