Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752678AbbKQE2c (ORCPT ); Mon, 16 Nov 2015 23:28:32 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:24607 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750910AbbKQE2a (ORCPT ); Mon, 16 Nov 2015 23:28:30 -0500 X-AuditID: cbfec7f5-f794b6d000001495-a5-564aaceb9651 Subject: Re: [PATCH v5 9/9] drivers: soc: Add support for Exynos PMU driver To: "pankaj.dubey" References: <1447406983-27835-1-git-send-email-pankaj.dubey@samsung.com> <1447406983-27835-10-git-send-email-pankaj.dubey@samsung.com> <5645BB67.8050102@samsung.com> <56471B3F.5060201@samsung.com> <564AA2A7.7010007@samsung.com> Cc: k.kozlowski.k@gmail.com, linux-samsung-soc , linux-kernel@vger.kernel.org, "linux-arm-kernel@lists.infradead.org" , linux-pm@vger.kernel.org, Amit Daniel , Kukjin Kim , Arnd Bergmann , "thomas.ab@samsung.com" , olof@lixom.net, khilman@linaro.org From: Krzysztof Kozlowski Message-id: <564AACE4.8060701@samsung.com> Date: Tue, 17 Nov 2015 13:28:20 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-version: 1.0 In-reply-to: <564AA2A7.7010007@samsung.com> Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgkeLIzCtJLcpLzFFi42I5/e/4Nd3Xa7zCDGbM5LL4uPolm8XfScfY LZ7/+8Fu8fqFoUXvgqtsFl8Pr2C02PT4GqvF5V1z2Cw+9x5htJhxfh+Txanrn9ksFm39wm7R sYzRgdfj969JjB47Z91l97hzbQ+bx+Yl9R5XTjSxevRtWcXo8XmTXAB7FJdNSmpOZllqkb5d AlfGojdvWQpuGFXcn/mdqYFxuUYXIyeHhICJxI5525ghbDGJC/fWs3UxcnEICSxllJjadYQV wvnCKLG28RUjSJWwgLfEtbMf2UFsEQFdia+NbewQRRuYJFpmbgdzmAWWMEtcPrCeCaSKTcBY YvPyJWwgNq+AlsSMk4vAulkEVCWmLpgJZosKREhMnNDAClEjKPFj8j2WLkYODk4BbYkdj51A TGYBdYkpU3JBKpgF5CU2r3nLPIFRYBaShlkIVbOQVC1gZF7FKJpamlxQnJSea6RXnJhbXJqX rpecn7uJERIvX3cwLj1mdYhRgINRiYe34a9nmBBrYllxZe4hRgkOZiURXrYVXmFCvCmJlVWp RfnxRaU5qcWHGKU5WJTEeWfueh8iJJCeWJKanZpakFoEk2Xi4JRqYOS/3ab63fTu9BfWHGuq /y2rlzI5pK76+uvzH2KrMxsW7ClgSVX9UyQXwuOy2XGrl7SFd/YBvfspv6JfOXkpTT+ibr0m ddbCufv5bBK/ZImynW9/+d2icU7QlL+X161rStVsWyHIlS2kwrH4nTZLo3KbnXbe/QWS/Z6P DMI8Fc0qjnPLhDXuVGIpzkg01GIuKk4EAOpxleOTAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6575 Lines: 163 On 17.11.2015 12:44, pankaj.dubey wrote: > > > On Saturday 14 November 2015 05:00 PM, Krzysztof Kozlowski wrote: >> W dniu 14.11.2015 o 00:36, Pankaj Dubey pisze: >>> On 13 November 2015 at 15:58, Krzysztof Kozlowski >>> wrote: >>>> >>>> On 13.11.2015 18:29, Pankaj Dubey wrote: >>>>> This patch moves Exynos PMU driver implementation from >>>>> "arm/mach-exynos" >>>>> to "drivers/soc/samsung". This driver is mainly used for setting misc >>>>> bits of register from PMU IP of Exynos SoC which will be required to >>>>> configure before Suspend/Resume. Currently all these settings are done >>>>> in "arch/arm/mach-exynos/pmu.c" but moving ahead for ARM64 based SoC >>>>> support, there is a need of this PMU driver in driver/* folder. >>>>> >>>>> This driver uses existing DT binding information and there should >>>>> be no functionality change in the supported platforms. >>>>> >>>>> Signed-off-by: Amit Daniel Kachhap >>>>> Signed-off-by: Pankaj Dubey >>>>> --- >>>>> arch/arm/mach-exynos/Kconfig | 1 + >>>>> arch/arm/mach-exynos/Makefile | >>>>> 4 +--- >>>>> drivers/soc/samsung/Kconfig | >>>>> 4 ++++ >>>>> drivers/soc/samsung/Makefile | >>>>> 4 ++++ >>>>> arch/arm/mach-exynos/pmu.c => drivers/soc/samsung/exynos-pmu.c | 0 >>>>> {arch/arm/mach-exynos => drivers/soc/samsung}/exynos-pmu.h | 0 >>>>> {arch/arm/mach-exynos => drivers/soc/samsung}/exynos3250-pmu.c | 0 >>>>> {arch/arm/mach-exynos => drivers/soc/samsung}/exynos4-pmu.c | 0 >>>>> {arch/arm/mach-exynos => drivers/soc/samsung}/exynos5250-pmu.c | 0 >>>>> {arch/arm/mach-exynos => drivers/soc/samsung}/exynos5420-pmu.c | 0 >>>>> 10 files changed, 10 insertions(+), 3 deletions(-) >>>>> rename arch/arm/mach-exynos/pmu.c => >>>>> drivers/soc/samsung/exynos-pmu.c (100%) >>>>> rename {arch/arm/mach-exynos => drivers/soc/samsung}/exynos-pmu.h >>>>> (100%) >>>>> rename {arch/arm/mach-exynos => >>>>> drivers/soc/samsung}/exynos3250-pmu.c (100%) >>>>> rename {arch/arm/mach-exynos => >>>>> drivers/soc/samsung}/exynos4-pmu.c (100%) >>>>> rename {arch/arm/mach-exynos => >>>>> drivers/soc/samsung}/exynos5250-pmu.c (100%) >>>>> rename {arch/arm/mach-exynos => >>>>> drivers/soc/samsung}/exynos5420-pmu.c (100%) >>>>> >>>>> diff --git a/arch/arm/mach-exynos/Kconfig >>>>> b/arch/arm/mach-exynos/Kconfig >>>>> index 83c85f5..874cb38 100644 >>>>> --- a/arch/arm/mach-exynos/Kconfig >>>>> +++ b/arch/arm/mach-exynos/Kconfig >>>>> @@ -16,6 +16,7 @@ menuconfig ARCH_EXYNOS >>>>> select ARM_GIC >>>>> select COMMON_CLK_SAMSUNG >>>>> select EXYNOS_THERMAL >>>>> + select EXYNOS_PMU >>>>> select EXYNOS_SROM if PM >>>>> select HAVE_ARM_SCU if SMP >>>>> select HAVE_S3C2410_I2C if I2C >>>>> diff --git a/arch/arm/mach-exynos/Makefile >>>>> b/arch/arm/mach-exynos/Makefile >>>>> index 2d58063..34d29df 100644 >>>>> --- a/arch/arm/mach-exynos/Makefile >>>>> +++ b/arch/arm/mach-exynos/Makefile >>>>> @@ -9,9 +9,7 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += >>>>> -I$(srctree)/$(src)/include -I$(srctree) >>>>> >>>>> # Core >>>>> >>>>> -obj-$(CONFIG_ARCH_EXYNOS) += exynos.o pmu.o exynos-smc.o >>>>> firmware.o \ >>>>> - exynos3250-pmu.o exynos4-pmu.o \ >>>>> - exynos5250-pmu.o >>>>> exynos5420-pmu.o >>>>> +obj-$(CONFIG_ARCH_EXYNOS) += exynos.o exynos-smc.o firmware.o >>>>> >>>>> obj-$(CONFIG_EXYNOS_CPU_SUSPEND) += pm.o sleep.o >>>>> obj-$(CONFIG_PM_SLEEP) += suspend.o >>>>> diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig >>>>> index 2833b5b..f545d6c 100644 >>>>> --- a/drivers/soc/samsung/Kconfig >>>>> +++ b/drivers/soc/samsung/Kconfig >>>>> @@ -10,4 +10,8 @@ config EXYNOS_SROM >>>>> bool >>>>> depends on ARM && ARCH_EXYNOS && PM >>>>> >>>>> +config EXYNOS_PMU >>>>> + bool >>>>> + depends on ARCH_EXYNOS >>>>> + >>>>> endmenu >>>>> diff --git a/drivers/soc/samsung/Makefile >>>>> b/drivers/soc/samsung/Makefile >>>>> index 9c554d5..26fb489 100644 >>>>> --- a/drivers/soc/samsung/Makefile >>>>> +++ b/drivers/soc/samsung/Makefile >>>>> @@ -1 +1,5 @@ >>>>> obj-$(CONFIG_EXYNOS_SROM) += exynos-srom.o >>>>> +ifdef CONFIG_ARM >>>>> +obj-$(CONFIG_EXYNOS_PMU) += exynos-pmu.o exynos3250-pmu.o >>>>> exynos4-pmu.o \ >>>>> + exynos5250-pmu.o >>>>> exynos5420-pmu.o >>>>> +endif >>>> >>>> Why ifdef CONFIG_ARM? This already depends on ARCH_EXYNOS. If you want >>>> to limit to ARMv7 then add the dependency to Kconfig (just like >>>> EXYNOS_SROM). >>>> >>> >>> This is required, so that 32-bit based Exynos SoC's PMU should not get >>> compiled when we are compiling for ARM64 and vice-versa. >>> >>> For example: In future, I have plan to add exynos7 PMU support as - >>> >>> ifdef CONFIG_ARM64 >>> obj-$(CONFIG_EXYNOS_PMU) += exynos-pmu.o exynos7-pmu.o >>> endif >>> >>> Thus preventing compilation of ARM64 based SoCs PMU data files when we >>> are compiling for ARM. >>> >>> Only exynos-pmu.c will be shared and compiled in both cases. >> >> But this actually spreads Kconfig configuration over different places: >> Kconfig and Makefile. It confuses and makes it more difficult in the >> future to maintain and extend. >> > > I could not understand your point here. Will you please explain what > issue you can see in this approach? You are spreading Kconfig symbols over different places. These should be put only in one - in Kconfig. Some time later someone will add COMPILE_TEST to Kconfig and wonder why it does not work... oh yeah, because dependency was put not only in Kconfig but also in Makefile. One place for dependency: Kconfig. > >> This should be in Kconfig. If you want to limit this per architecture >> (is it really needed?) then maybe define different EXYNOS_PMU config >> symbols? >> > > Do you mean we need to have separate configs for enabling PMU on ARM and > ARM64 based Exynos SoCs? Yes. If you want to separate ARMv7 from ARMv8 then yes. Just like we have for other drivers - usually per SoC but this can be per architecture. Best regards, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/