diff mbox series

[v2,06/13] ARM: samsung: remove HAVE_S3C2410_WATCHDOG and use direct dependencies

Message ID 20200804192654.12783-7-krzk@kernel.org (mailing list archive)
State Not Applicable
Headers show
Series clk/watchdog/ARM: Cleanup of various S3C bits | expand

Commit Message

Krzysztof Kozlowski Aug. 4, 2020, 7:26 p.m. UTC
A separate Kconfig option HAVE_S3C2410_WATCHDOG for Samsung SoCs is not
really needed and the s3c24xx watchdog driver can depend on Samsung ARM
architectures instead.

The "HAVE_xxx_WATCHDOG" pattern of dependency is not popular and Samsung
platforms are here exceptions.  All others just depend on
CONFIG_ARCH_xxx.

This makes the code slightly smaller without any change in
functionality.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

---

Changes since v1:
1. Re-add the dependency on architectures to keep same functionality.
---
 arch/arm/Kconfig              |  1 -
 arch/arm/mach-exynos/Kconfig  |  1 -
 arch/arm/mach-s3c64xx/Kconfig |  2 --
 arch/arm/mach-s5pv210/Kconfig |  1 -
 arch/arm64/Kconfig.platforms  |  1 -
 drivers/watchdog/Kconfig      | 10 ++--------
 6 files changed, 2 insertions(+), 14 deletions(-)

Comments

Krzysztof Kozlowski Aug. 17, 2020, 4:57 p.m. UTC | #1
On Tue, Aug 04, 2020 at 09:26:47PM +0200, Krzysztof Kozlowski wrote:
> A separate Kconfig option HAVE_S3C2410_WATCHDOG for Samsung SoCs is not
> really needed and the s3c24xx watchdog driver can depend on Samsung ARM
> architectures instead.
> 
> The "HAVE_xxx_WATCHDOG" pattern of dependency is not popular and Samsung
> platforms are here exceptions.  All others just depend on
> CONFIG_ARCH_xxx.
> 
> This makes the code slightly smaller without any change in
> functionality.
> 
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> 
> ---
> 
> Changes since v1:
> 1. Re-add the dependency on architectures to keep same functionality.

Hi Guenter, Tomasz,

Does such removal of HAVE_S3C2410_WATCHDOG makes sense for you?

Best regards,
Krzysztof


> ---
>  arch/arm/Kconfig              |  1 -
>  arch/arm/mach-exynos/Kconfig  |  1 -
>  arch/arm/mach-s3c64xx/Kconfig |  2 --
>  arch/arm/mach-s5pv210/Kconfig |  1 -
>  arch/arm64/Kconfig.platforms  |  1 -
>  drivers/watchdog/Kconfig      | 10 ++--------
>  6 files changed, 2 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 7564f293f107..fe95777af653 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -504,7 +504,6 @@ config ARCH_S3C24XX
>  	select GPIOLIB
>  	select GENERIC_IRQ_MULTI_HANDLER
>  	select HAVE_S3C2410_I2C if I2C
> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>  	select HAVE_S3C_RTC if RTC_CLASS
>  	select NEED_MACH_IO_H
>  	select SAMSUNG_ATAGS
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index f185cd3d4c62..d2d249706ebb 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -24,7 +24,6 @@ menuconfig ARCH_EXYNOS
>  	select HAVE_ARM_ARCH_TIMER if ARCH_EXYNOS5
>  	select HAVE_ARM_SCU if SMP
>  	select HAVE_S3C2410_I2C if I2C
> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>  	select HAVE_S3C_RTC if RTC_CLASS
>  	select PINCTRL
>  	select PINCTRL_EXYNOS
> diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
> index ac3e3563487f..e208c2b48853 100644
> --- a/arch/arm/mach-s3c64xx/Kconfig
> +++ b/arch/arm/mach-s3c64xx/Kconfig
> @@ -13,7 +13,6 @@ menuconfig ARCH_S3C64XX
>  	select GPIO_SAMSUNG if ATAGS
>  	select GPIOLIB
>  	select HAVE_S3C2410_I2C if I2C
> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>  	select HAVE_TCM
>  	select PLAT_SAMSUNG
>  	select PM_GENERIC_DOMAINS if PM
> @@ -165,7 +164,6 @@ config MACH_SMDK6410
>  	bool "SMDK6410"
>  	depends on ATAGS
>  	select CPU_S3C6410
> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>  	select S3C64XX_SETUP_FB_24BPP
>  	select S3C64XX_SETUP_I2C1
>  	select S3C64XX_SETUP_IDE
> diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
> index 03984a791879..b3db1191e437 100644
> --- a/arch/arm/mach-s5pv210/Kconfig
> +++ b/arch/arm/mach-s5pv210/Kconfig
> @@ -14,7 +14,6 @@ config ARCH_S5PV210
>  	select COMMON_CLK_SAMSUNG
>  	select GPIOLIB
>  	select HAVE_S3C2410_I2C if I2C
> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>  	select HAVE_S3C_RTC if RTC_CLASS
>  	select PINCTRL
>  	select PINCTRL_EXYNOS
> diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> index cd58f8495c45..d235b27cf372 100644
> --- a/arch/arm64/Kconfig.platforms
> +++ b/arch/arm64/Kconfig.platforms
> @@ -80,7 +80,6 @@ config ARCH_EXYNOS
>  	select EXYNOS_CHIPID
>  	select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
>  	select EXYNOS_PMU
> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>  	select HAVE_S3C_RTC if RTC_CLASS
>  	select PINCTRL
>  	select PINCTRL_EXYNOS
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index 4f4687c46d38..297af1c40643 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -478,16 +478,10 @@ config IXP4XX_WATCHDOG
>  
>  	  Say N if you are unsure.
>  
> -config HAVE_S3C2410_WATCHDOG
> -	bool
> -	help
> -	  This will include watchdog timer support for Samsung SoCs. If
> -	  you want to include watchdog support for any machine, kindly
> -	  select this in the respective mach-XXXX/Kconfig file.
> -
>  config S3C2410_WATCHDOG
>  	tristate "S3C2410 Watchdog"
> -	depends on HAVE_S3C2410_WATCHDOG || COMPILE_TEST
> +	depends on ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || \
> +		   COMPILE_TEST
>  	select WATCHDOG_CORE
>  	select MFD_SYSCON if ARCH_EXYNOS
>  	help
> -- 
> 2.17.1
>
Tomasz Figa Aug. 17, 2020, 5 p.m. UTC | #2
2020年8月17日(月) 18:57 Krzysztof Kozlowski <krzk@kernel.org>:
>
> On Tue, Aug 04, 2020 at 09:26:47PM +0200, Krzysztof Kozlowski wrote:
> > A separate Kconfig option HAVE_S3C2410_WATCHDOG for Samsung SoCs is not
> > really needed and the s3c24xx watchdog driver can depend on Samsung ARM
> > architectures instead.
> >
> > The "HAVE_xxx_WATCHDOG" pattern of dependency is not popular and Samsung
> > platforms are here exceptions.  All others just depend on
> > CONFIG_ARCH_xxx.
> >
> > This makes the code slightly smaller without any change in
> > functionality.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> >
> > ---
> >
> > Changes since v1:
> > 1. Re-add the dependency on architectures to keep same functionality.
>
> Hi Guenter, Tomasz,
>
> Does such removal of HAVE_S3C2410_WATCHDOG makes sense for you?

I don't have any objections and the patch itself is trivial.

Best regards,
Tomasz
Guenter Roeck Aug. 17, 2020, 6:02 p.m. UTC | #3
On 8/17/20 9:57 AM, Krzysztof Kozlowski wrote:
> On Tue, Aug 04, 2020 at 09:26:47PM +0200, Krzysztof Kozlowski wrote:
>> A separate Kconfig option HAVE_S3C2410_WATCHDOG for Samsung SoCs is not
>> really needed and the s3c24xx watchdog driver can depend on Samsung ARM
>> architectures instead.
>>
>> The "HAVE_xxx_WATCHDOG" pattern of dependency is not popular and Samsung
>> platforms are here exceptions.  All others just depend on
>> CONFIG_ARCH_xxx.
>>
>> This makes the code slightly smaller without any change in
>> functionality.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
>>
>> ---
>>
>> Changes since v1:
>> 1. Re-add the dependency on architectures to keep same functionality.
> 
> Hi Guenter, Tomasz,
> 
> Does such removal of HAVE_S3C2410_WATCHDOG makes sense for you?
> 

Umm ... answering the question, no, it doesn't make sense to me. If I were
to immediately change all code under my "jurisdiction" whenever something
runs out of favor, I'd do nothing else, and in this case the only real
difference I can see is that the code will be more difficult to maintain
going forward.

Having said that, I don't really care one way or another as long as the
change does not result in compile failures for other architectures/platforms.
With that in mind, feel free to add

Acked-by: Guenter Roeck <linux@roeck-us.net>

to the patch.


Thanks,
Guenter

> Best regards,
> Krzysztof
> 
> 
>> ---
>>  arch/arm/Kconfig              |  1 -
>>  arch/arm/mach-exynos/Kconfig  |  1 -
>>  arch/arm/mach-s3c64xx/Kconfig |  2 --
>>  arch/arm/mach-s5pv210/Kconfig |  1 -
>>  arch/arm64/Kconfig.platforms  |  1 -
>>  drivers/watchdog/Kconfig      | 10 ++--------
>>  6 files changed, 2 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 7564f293f107..fe95777af653 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -504,7 +504,6 @@ config ARCH_S3C24XX
>>  	select GPIOLIB
>>  	select GENERIC_IRQ_MULTI_HANDLER
>>  	select HAVE_S3C2410_I2C if I2C
>> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>>  	select HAVE_S3C_RTC if RTC_CLASS
>>  	select NEED_MACH_IO_H
>>  	select SAMSUNG_ATAGS
>> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
>> index f185cd3d4c62..d2d249706ebb 100644
>> --- a/arch/arm/mach-exynos/Kconfig
>> +++ b/arch/arm/mach-exynos/Kconfig
>> @@ -24,7 +24,6 @@ menuconfig ARCH_EXYNOS
>>  	select HAVE_ARM_ARCH_TIMER if ARCH_EXYNOS5
>>  	select HAVE_ARM_SCU if SMP
>>  	select HAVE_S3C2410_I2C if I2C
>> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>>  	select HAVE_S3C_RTC if RTC_CLASS
>>  	select PINCTRL
>>  	select PINCTRL_EXYNOS
>> diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
>> index ac3e3563487f..e208c2b48853 100644
>> --- a/arch/arm/mach-s3c64xx/Kconfig
>> +++ b/arch/arm/mach-s3c64xx/Kconfig
>> @@ -13,7 +13,6 @@ menuconfig ARCH_S3C64XX
>>  	select GPIO_SAMSUNG if ATAGS
>>  	select GPIOLIB
>>  	select HAVE_S3C2410_I2C if I2C
>> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>>  	select HAVE_TCM
>>  	select PLAT_SAMSUNG
>>  	select PM_GENERIC_DOMAINS if PM
>> @@ -165,7 +164,6 @@ config MACH_SMDK6410
>>  	bool "SMDK6410"
>>  	depends on ATAGS
>>  	select CPU_S3C6410
>> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>>  	select S3C64XX_SETUP_FB_24BPP
>>  	select S3C64XX_SETUP_I2C1
>>  	select S3C64XX_SETUP_IDE
>> diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
>> index 03984a791879..b3db1191e437 100644
>> --- a/arch/arm/mach-s5pv210/Kconfig
>> +++ b/arch/arm/mach-s5pv210/Kconfig
>> @@ -14,7 +14,6 @@ config ARCH_S5PV210
>>  	select COMMON_CLK_SAMSUNG
>>  	select GPIOLIB
>>  	select HAVE_S3C2410_I2C if I2C
>> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>>  	select HAVE_S3C_RTC if RTC_CLASS
>>  	select PINCTRL
>>  	select PINCTRL_EXYNOS
>> diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
>> index cd58f8495c45..d235b27cf372 100644
>> --- a/arch/arm64/Kconfig.platforms
>> +++ b/arch/arm64/Kconfig.platforms
>> @@ -80,7 +80,6 @@ config ARCH_EXYNOS
>>  	select EXYNOS_CHIPID
>>  	select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
>>  	select EXYNOS_PMU
>> -	select HAVE_S3C2410_WATCHDOG if WATCHDOG
>>  	select HAVE_S3C_RTC if RTC_CLASS
>>  	select PINCTRL
>>  	select PINCTRL_EXYNOS
>> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
>> index 4f4687c46d38..297af1c40643 100644
>> --- a/drivers/watchdog/Kconfig
>> +++ b/drivers/watchdog/Kconfig
>> @@ -478,16 +478,10 @@ config IXP4XX_WATCHDOG
>>  
>>  	  Say N if you are unsure.
>>  
>> -config HAVE_S3C2410_WATCHDOG
>> -	bool
>> -	help
>> -	  This will include watchdog timer support for Samsung SoCs. If
>> -	  you want to include watchdog support for any machine, kindly
>> -	  select this in the respective mach-XXXX/Kconfig file.
>> -
>>  config S3C2410_WATCHDOG
>>  	tristate "S3C2410 Watchdog"
>> -	depends on HAVE_S3C2410_WATCHDOG || COMPILE_TEST
>> +	depends on ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || \
>> +		   COMPILE_TEST
>>  	select WATCHDOG_CORE
>>  	select MFD_SYSCON if ARCH_EXYNOS
>>  	help
>> -- 
>> 2.17.1
>>
Krzysztof Kozlowski Aug. 19, 2020, 6:16 p.m. UTC | #4
On Tue, Aug 04, 2020 at 09:26:47PM +0200, Krzysztof Kozlowski wrote:
> A separate Kconfig option HAVE_S3C2410_WATCHDOG for Samsung SoCs is not
> really needed and the s3c24xx watchdog driver can depend on Samsung ARM
> architectures instead.
> 
> The "HAVE_xxx_WATCHDOG" pattern of dependency is not popular and Samsung
> platforms are here exceptions.  All others just depend on
> CONFIG_ARCH_xxx.
> 
> This makes the code slightly smaller without any change in
> functionality.
> 

Applied.

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7564f293f107..fe95777af653 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -504,7 +504,6 @@  config ARCH_S3C24XX
 	select GPIOLIB
 	select GENERIC_IRQ_MULTI_HANDLER
 	select HAVE_S3C2410_I2C if I2C
-	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select NEED_MACH_IO_H
 	select SAMSUNG_ATAGS
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index f185cd3d4c62..d2d249706ebb 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -24,7 +24,6 @@  menuconfig ARCH_EXYNOS
 	select HAVE_ARM_ARCH_TIMER if ARCH_EXYNOS5
 	select HAVE_ARM_SCU if SMP
 	select HAVE_S3C2410_I2C if I2C
-	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select PINCTRL
 	select PINCTRL_EXYNOS
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
index ac3e3563487f..e208c2b48853 100644
--- a/arch/arm/mach-s3c64xx/Kconfig
+++ b/arch/arm/mach-s3c64xx/Kconfig
@@ -13,7 +13,6 @@  menuconfig ARCH_S3C64XX
 	select GPIO_SAMSUNG if ATAGS
 	select GPIOLIB
 	select HAVE_S3C2410_I2C if I2C
-	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_TCM
 	select PLAT_SAMSUNG
 	select PM_GENERIC_DOMAINS if PM
@@ -165,7 +164,6 @@  config MACH_SMDK6410
 	bool "SMDK6410"
 	depends on ATAGS
 	select CPU_S3C6410
-	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select S3C64XX_SETUP_FB_24BPP
 	select S3C64XX_SETUP_I2C1
 	select S3C64XX_SETUP_IDE
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 03984a791879..b3db1191e437 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -14,7 +14,6 @@  config ARCH_S5PV210
 	select COMMON_CLK_SAMSUNG
 	select GPIOLIB
 	select HAVE_S3C2410_I2C if I2C
-	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select PINCTRL
 	select PINCTRL_EXYNOS
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index cd58f8495c45..d235b27cf372 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -80,7 +80,6 @@  config ARCH_EXYNOS
 	select EXYNOS_CHIPID
 	select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
 	select EXYNOS_PMU
-	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select PINCTRL
 	select PINCTRL_EXYNOS
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 4f4687c46d38..297af1c40643 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -478,16 +478,10 @@  config IXP4XX_WATCHDOG
 
 	  Say N if you are unsure.
 
-config HAVE_S3C2410_WATCHDOG
-	bool
-	help
-	  This will include watchdog timer support for Samsung SoCs. If
-	  you want to include watchdog support for any machine, kindly
-	  select this in the respective mach-XXXX/Kconfig file.
-
 config S3C2410_WATCHDOG
 	tristate "S3C2410 Watchdog"
-	depends on HAVE_S3C2410_WATCHDOG || COMPILE_TEST
+	depends on ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || \
+		   COMPILE_TEST
 	select WATCHDOG_CORE
 	select MFD_SYSCON if ARCH_EXYNOS
 	help