All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Arnd Bergmann <arnd@arndb.de>,
	Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: k.kozlowski.k@gmail.com, tglx@linutronix.de,
	john.stultz@linaro.org, linux-kernel@vger.kernel.org,
	Russell King <linux@arm.linux.org.uk>,
	Kukjin Kim <kgene@kernel.org>,
	"moderated list:ARM SUB-ARCHITECT..."
	<linux-arm-kernel@lists.infradead.org>,
	"moderated list:ARM/SAMSUNG EXYNO..."
	<linux-samsung-soc@vger.kernel.org>
Subject: Re: [PATCH 20/22] clocksource/drivers/exynos_mct: Fix Kconfig and add COMPILE_TEST option
Date: Tue, 3 Nov 2015 21:01:02 +0900	[thread overview]
Message-ID: <5638A1FE.1000403@samsung.com> (raw)
In-Reply-To: <9713489.TbNNoNQg5A@wuerfel>

W dniu 03.11.2015 o 19:02, Arnd Bergmann pisze:
> On Tuesday 03 November 2015 09:40:02 Daniel Lezcano wrote:
>> On 11/03/2015 01:59 AM, Krzysztof Kozlowski wrote:
>>> On 03.11.2015 09:30, Krzysztof Kozlowski wrote:
>>>> On 02.11.2015 21:56, Daniel Lezcano wrote:
>>>>> Let the platform's Kconfig to select the clock instead of having a reverse
>>>>> dependency from the driver to the platform options.
>>>>
>>>> Selecting user-visible symbols is rather discouraged so why not
>>>> something like this:
>>>>
>>>> -       def_bool y if ARCH_EXYNOS
>>>> -       depends on !ARM64
>>>> +       bool "Exynos multi core timer driver"
>>>> +       depends on ARCH_EXYNOS || (COMPILE_TEST && ARM)
>>>
>>> Nope, that was wrong as we loose auto-select on Exynos. Instead:
>>> -       def_bool y if ARCH_EXYNOS
>>> -       depends on !ARM64
>>> +       bool "Exynos multi core timer driver" if ARM
>>> +       depends on ARCH_EXYNOS || COMPILE_TEST
>>> +       default y if ARCH_EXYNOS
>>>
>>> This way we avoid select (which is a reverse dependency for the driver),
>>> have it auto-selectable and compile tested on arm.
>>
>> I think you misunderstood the patch I sent.
>>
>> It does two things:
>>
>> 1. Follow the thumb of rule of the current Kconfig format
>>
>>     - The timer driver is selected by the platform (exynos in this case)
>>     - User can't select the driver in the menuconfig
>>     - There is no dependency on the platform except for compilation test
>>
>> 2. Add the COMPILE_TEST
>>
>>     - User can select the driver for compilation testing. This is for 
>> allyesconfig when doing compilation test coverage (exynos timer could be 
>> compiled on other platform). As the delay code is not portable, we have 
>> to restrict the compilation on the ARM platform, this is why there is 
>> the dependency on ARM.
>>
>> I am currently looking at splitting the delay code in order to prevent 
>> this restriction on this driver and some others drivers.
> 
> I suspect this will come up again in the future. The problem is
> really that drivers/clocksource has different rules from almost
> everything else, by requiring the platform to 'select' the driver.
> 
> The second version that Krzysztof posted is how we handle this in
> other driver subsystems, and I would generally prefer it to do this
> consistently for everything, but John Stultz has in the past argued
> strongly for using 'select' in all clocksource drivers. The reason
> is that for each platform we know in advance which driver we want,
> and there is never a need for the user to have to select the right
> one.

Arnd, Daniel,

Sure, makes sense to me, thanks for explanation. Actually this makes me
thinking that drivers/soc/* should probably follow the same
convention... but not all of them do that.

Anyway the patch worked fine and with explanation I can only confirm:

Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 20/22] clocksource/drivers/exynos_mct: Fix Kconfig and add COMPILE_TEST option
Date: Tue, 3 Nov 2015 21:01:02 +0900	[thread overview]
Message-ID: <5638A1FE.1000403@samsung.com> (raw)
In-Reply-To: <9713489.TbNNoNQg5A@wuerfel>

W dniu 03.11.2015 o 19:02, Arnd Bergmann pisze:
> On Tuesday 03 November 2015 09:40:02 Daniel Lezcano wrote:
>> On 11/03/2015 01:59 AM, Krzysztof Kozlowski wrote:
>>> On 03.11.2015 09:30, Krzysztof Kozlowski wrote:
>>>> On 02.11.2015 21:56, Daniel Lezcano wrote:
>>>>> Let the platform's Kconfig to select the clock instead of having a reverse
>>>>> dependency from the driver to the platform options.
>>>>
>>>> Selecting user-visible symbols is rather discouraged so why not
>>>> something like this:
>>>>
>>>> -       def_bool y if ARCH_EXYNOS
>>>> -       depends on !ARM64
>>>> +       bool "Exynos multi core timer driver"
>>>> +       depends on ARCH_EXYNOS || (COMPILE_TEST && ARM)
>>>
>>> Nope, that was wrong as we loose auto-select on Exynos. Instead:
>>> -       def_bool y if ARCH_EXYNOS
>>> -       depends on !ARM64
>>> +       bool "Exynos multi core timer driver" if ARM
>>> +       depends on ARCH_EXYNOS || COMPILE_TEST
>>> +       default y if ARCH_EXYNOS
>>>
>>> This way we avoid select (which is a reverse dependency for the driver),
>>> have it auto-selectable and compile tested on arm.
>>
>> I think you misunderstood the patch I sent.
>>
>> It does two things:
>>
>> 1. Follow the thumb of rule of the current Kconfig format
>>
>>     - The timer driver is selected by the platform (exynos in this case)
>>     - User can't select the driver in the menuconfig
>>     - There is no dependency on the platform except for compilation test
>>
>> 2. Add the COMPILE_TEST
>>
>>     - User can select the driver for compilation testing. This is for 
>> allyesconfig when doing compilation test coverage (exynos timer could be 
>> compiled on other platform). As the delay code is not portable, we have 
>> to restrict the compilation on the ARM platform, this is why there is 
>> the dependency on ARM.
>>
>> I am currently looking at splitting the delay code in order to prevent 
>> this restriction on this driver and some others drivers.
> 
> I suspect this will come up again in the future. The problem is
> really that drivers/clocksource has different rules from almost
> everything else, by requiring the platform to 'select' the driver.
> 
> The second version that Krzysztof posted is how we handle this in
> other driver subsystems, and I would generally prefer it to do this
> consistently for everything, but John Stultz has in the past argued
> strongly for using 'select' in all clocksource drivers. The reason
> is that for each platform we know in advance which driver we want,
> and there is never a need for the user to have to select the right
> one.

Arnd, Daniel,

Sure, makes sense to me, thanks for explanation. Actually this makes me
thinking that drivers/soc/* should probably follow the same
convention... but not all of them do that.

Anyway the patch worked fine and with explanation I can only confirm:

Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

  parent reply	other threads:[~2015-11-03 12:01 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-02 12:56 [PATCH 01/22] clocksource/drivers/pistachio: Add the COMPILE_TEST option Daniel Lezcano
2015-11-02 12:56 ` [PATCH 02/22] clocksource/drivers/mediatek: " Daniel Lezcano
2015-11-02 12:56   ` Daniel Lezcano
2015-11-02 12:56   ` Daniel Lezcano
     [not found] ` <1446469011-22710-1-git-send-email-daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-11-02 12:56   ` [PATCH 03/22] clocksource/drivers/rockchip: Make the driver more compatible Daniel Lezcano
2015-11-02 12:56     ` Daniel Lezcano
2015-11-02 12:56     ` Daniel Lezcano
2015-11-02 15:33     ` Arnd Bergmann
2015-11-02 15:33       ` Arnd Bergmann
2015-11-02 16:32       ` Daniel Lezcano
2015-11-02 16:32         ` Daniel Lezcano
     [not found]         ` <56379016.1080601-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-11-02 21:44           ` Arnd Bergmann
2015-11-02 21:44             ` Arnd Bergmann
2015-11-02 21:44             ` Arnd Bergmann
2015-11-02 12:56 ` [PATCH 04/22] clocksource/drivers/rockchip: Add COMPILE_TEST option Daniel Lezcano
2015-11-02 12:56 ` [PATCH 05/22] clocksource/drivers/armada-370-xp: Add the " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 06/22] clocksource/drivers/meson6: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 07/22] clocksource/drivers/orion: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 08/22] clocksource/drivers/digicolor: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 09/22] clocksource/drivers/dw_apb: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 10/22] clocksource/drivers/sun4i: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 11/22] clocksource/drivers/sun5i: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 12/22] clocksource/drivers/tegra2: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 13/22] clocksource/drivers/vt8500: Remove unneeded header Daniel Lezcano
2015-11-02 12:56   ` Daniel Lezcano
2015-11-02 12:56 ` [PATCH 14/22] clocksource/drivers/vt8500: Add the COMPILE_TEST option Daniel Lezcano
2015-11-02 12:56 ` [PATCH 15/22] clocksource/drivers/cadence_ttc: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 16/22] clocksource/drivers/asm9260: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 17/22] clocksource/drivers/lpc32xx: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 18/22] clocksource/drivers/nomadik_mtu: " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 19/22] clocksource/drivers/prcmu: Fix Kconfig and add " Daniel Lezcano
2015-11-02 12:56   ` Daniel Lezcano
2015-11-02 14:40   ` Linus Walleij
2015-11-02 14:40     ` Linus Walleij
2015-11-02 14:57     ` Daniel Lezcano
2015-11-02 14:57       ` Daniel Lezcano
2015-11-02 12:56 ` [PATCH 20/22] clocksource/drivers/exynos_mct: " Daniel Lezcano
2015-11-02 12:56   ` Daniel Lezcano
2015-11-02 12:56   ` Daniel Lezcano
2015-11-03  0:30   ` Krzysztof Kozlowski
2015-11-03  0:30     ` Krzysztof Kozlowski
2015-11-03  0:59     ` Krzysztof Kozlowski
2015-11-03  0:59       ` Krzysztof Kozlowski
2015-11-03  8:40       ` Daniel Lezcano
2015-11-03  8:40         ` Daniel Lezcano
2015-11-03  8:40         ` Daniel Lezcano
2015-11-03 10:02         ` Arnd Bergmann
2015-11-03 10:02           ` Arnd Bergmann
2015-11-03 10:02           ` Arnd Bergmann
2015-11-03 11:08           ` Daniel Lezcano
2015-11-03 11:08             ` Daniel Lezcano
2015-11-03 12:01           ` Krzysztof Kozlowski [this message]
2015-11-03 12:01             ` Krzysztof Kozlowski
2015-11-03 12:04             ` Daniel Lezcano
2015-11-03 12:04               ` Daniel Lezcano
2015-11-03 15:18           ` John Stultz
2015-11-03 15:18             ` John Stultz
2015-11-03 15:18             ` John Stultz
2015-11-03  0:54   ` Chanwoo Choi
2015-11-03  0:54     ` Chanwoo Choi
2015-11-02 12:56 ` [PATCH 21/22] clocksource/drivers/samsung-pwm: Add the " Daniel Lezcano
2015-11-02 12:56 ` [PATCH 22/22] clocksource/drivers/fsl-ftm: " Daniel Lezcano

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=5638A1FE.1000403@samsung.com \
    --to=k.kozlowski@samsung.com \
    --cc=arnd@arndb.de \
    --cc=daniel.lezcano@linaro.org \
    --cc=john.stultz@linaro.org \
    --cc=k.kozlowski.k@gmail.com \
    --cc=kgene@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=tglx@linutronix.de \
    /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.