2014-02-10 01:07:28

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 0/7] Remove HAVE_PWM config option

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework, while PWM symbol
is used for PWM drivers using the generic PWM framework.

I looked at all HAVE_PWMs in the latest mainline kernel 3.14-rc1.
Three platforms are still using HAVE_PWM as below:

1. ARM - PXA
./arch/arm/mach-pxa/Kconfig

2. ARM - NXP LPC32XX
./arch/arm/Kconfig
config ARCH_LPC32XX
select HAVE_PWM

3. MIPS - Ingenic JZ4740 based machines
./arch/mips/Kconfig
config MACH_JZ4740
select HAVE_PWM

However, the legacy PWM drivers for PXA, LPC32XX, and JZ474 were
already moved to the generic PWM framework.
./drivers/pwm/pwm-pxa.c
./drivers/pwm/pwm-lpc32xx.c
./drivers/pwm/pwm-jz4740.c

In conclusion, HAVE_PWM should be removed, because HAVE_PWM is
NOT required anymore.

Jingoo Han (7):
ARM: pxa: don't select HAVE_PWM
ARM: lpc32xx: don't select HAVE_PWM
ARM: remove HAVE_PWM config option
MIPS: jz4740: don't select HAVE_PWM
Input: max8997_haptic: remove HAVE_PWM dependencies
Input: pwm-beepe: remove HAVE_PWM dependencies
pwm: don't use IS_ENABLED(CONFIG_HAVE_PWM)

arch/arm/Kconfig | 4 ----
arch/arm/mach-pxa/Kconfig | 15 ---------------
arch/mips/Kconfig | 1 -
drivers/input/misc/Kconfig | 4 ++--
include/linux/pwm.h | 2 +-
5 files changed, 3 insertions(+), 23 deletions(-)

I would like to merge these patches as below:

1. Through arm-soc tree
[PATCH 1/7] ARM: pxa: don't select HAVE_PWM
[PATCH 2/7] ARM: lpc32xx: don't select HAVE_PWM
[PATCH 3/7] ARM: remove HAVE_PWM config option

2. Through MIPS tree
[PATCH 4/7] MIPS: jz4740: don't select HAVE_PWM

3. Through Input tree
[PATCH 5/7] Input: max8997_haptic: remove HAVE_PWM dependencies
[PATCH 6/7] Input: pwm-beepe: remove HAVE_PWM dependencies

4. Through PWM tree
[PATCH 7/7] pwm: don't use IS_ENABLED(CONFIG_HAVE_PWM)

After merging these patches, all HAVE_PWM will be removed from
the mainline kernel. Thank you. :-)

Best regards,
Jingoo Han


2014-02-10 01:08:31

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 1/7] ARM: pxa: don't select HAVE_PWM

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework. PXA platforms
use the generic PWM framework, after the commit "17b2b47 pwm:
Move PXA PWM driver to PWM framework".

In the case of "CONFIG_HAVE_PWM=y && CONFIG_PWM=n", PXA platforms
make the build errors as below. Thus, selecting HAVE_PWM should
be removed from PXA platforms.

drivers/built-in.o: In function `lm3630a_pwm_ctrl':
drivers/video/backlight/lm3630a_bl.c:168: undefined reference to `pwm_config'
drivers/video/backlight/lm3630a_bl.c:172: undefined reference to `pwm_disable'
drivers/video/backlight/lm3630a_bl.c:170: undefined reference to `pwm_enable'
drivers/built-in.o: In function `lp855x_pwm_ctrl':
drivers/video/backlight/lp855x_bl.c:249: undefined reference to `pwm_config'
drivers/video/backlight/lp855x_bl.c:253: undefined reference to `pwm_disable'
drivers/video/backlight/lp855x_bl.c:251: undefined reference to `pwm_enable'

Acked-by: Linus Walleij <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: Thierry Reding <[email protected]>
Signed-off-by: Jingoo Han <[email protected]>
---
arch/arm/mach-pxa/Kconfig | 15 ---------------
1 file changed, 15 deletions(-)

diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 96100db..b96244c 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -7,7 +7,6 @@ comment "Intel/Marvell Dev Platforms (sorted by hardware release time)"
config MACH_PXA3XX_DT
bool "Support PXA3xx platforms from device tree"
select CPU_PXA300
- select HAVE_PWM
select POWER_SUPPLY
select PXA3xx
select USE_OF
@@ -23,12 +22,10 @@ config ARCH_LUBBOCK

config MACH_MAINSTONE
bool "Intel HCDDBBVA0 Development Platform (aka Mainstone)"
- select HAVE_PWM
select PXA27x

config MACH_ZYLONITE
bool
- select HAVE_PWM
select PXA3xx

config MACH_ZYLONITE300
@@ -69,7 +66,6 @@ config ARCH_PXA_IDP
config ARCH_VIPER
bool "Arcom/Eurotech VIPER SBC"
select ARCOM_PCMCIA
- select HAVE_PWM
select I2C_GPIO
select ISA
select PXA25x
@@ -120,7 +116,6 @@ config MACH_CM_X300
bool "CompuLab CM-X300 modules"
select CPU_PXA300
select CPU_PXA310
- select HAVE_PWM
select PXA3xx

config MACH_CAPC7117
@@ -211,7 +206,6 @@ config TRIZEPS_PCMCIA

config MACH_LOGICPD_PXA270
bool "LogicPD PXA270 Card Engine Development Platform"
- select HAVE_PWM
select PXA27x

config MACH_PCM027
@@ -222,7 +216,6 @@ config MACH_PCM027
config MACH_PCM990_BASEBOARD
bool "PHYTEC PCM-990 development board"
depends on MACH_PCM027
- select HAVE_PWM

choice
prompt "display on pcm990"
@@ -246,7 +239,6 @@ config MACH_COLIBRI
config MACH_COLIBRI_PXA270_INCOME
bool "Income s.r.o. PXA270 SBC"
depends on MACH_COLIBRI
- select HAVE_PWM
select PXA27x

config MACH_COLIBRI300
@@ -275,7 +267,6 @@ comment "End-user Products (sorted by vendor name)"

config MACH_H4700
bool "HP iPAQ hx4700"
- select HAVE_PWM
select IWMMXT
select PXA27x

@@ -289,14 +280,12 @@ config MACH_HIMALAYA

config MACH_MAGICIAN
bool "Enable HTC Magician Support"
- select HAVE_PWM
select IWMMXT
select PXA27x

config MACH_MIOA701
bool "Mitac Mio A701 Support"
select GPIO_SYSFS
- select HAVE_PWM
select IWMMXT
select PXA27x
help
@@ -306,7 +295,6 @@ config MACH_MIOA701

config PXA_EZX
bool "Motorola EZX Platform"
- select HAVE_PWM
select IWMMXT
select PXA27x

@@ -346,7 +334,6 @@ config MACH_MP900C

config ARCH_PXA_PALM
bool "PXA based Palm PDAs"
- select HAVE_PWM

config MACH_PALM27X
bool
@@ -444,7 +431,6 @@ config MACH_TREO680
config MACH_RAUMFELD_RC
bool "Raumfeld Controller"
select CPU_PXA300
- select HAVE_PWM
select POWER_SUPPLY
select PXA3xx

@@ -608,7 +594,6 @@ config MACH_E800

config MACH_ZIPIT2
bool "Zipit Z2 Handheld"
- select HAVE_PWM
select PXA27x
endmenu

--
1.7.10.4

2014-02-10 01:09:35

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 2/7] ARM: lpc32xx: don't select HAVE_PWM

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework. The lpc32xx
platforms use the generic PWM framework, after the commit "2132fa8
pwm: add lpc32xx PWM support".

Signed-off-by: Jingoo Han <[email protected]>
---
arch/arm/Kconfig | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e254198..897fa15 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -632,7 +632,6 @@ config ARCH_LPC32XX
select CPU_ARM926T
select GENERIC_CLOCKEVENTS
select HAVE_IDE
- select HAVE_PWM
select USB_ARCH_HAS_OHCI
select USE_OF
help
--
1.7.10.4

2014-02-10 01:10:59

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 3/7] ARM: remove HAVE_PWM config option

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework. However, legacy
PWM drivers for ARM platforms were already moved to the generic
PWM framework. Thus, HAVE_PWM should be removed, because HAVE_PWM
is not required anymore.

Signed-off-by: Jingoo Han <[email protected]>
---
arch/arm/Kconfig | 3 ---
1 file changed, 3 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 897fa15..cc6ce44 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -113,9 +113,6 @@ config ARM_DMA_IOMMU_ALIGNMENT

endif

-config HAVE_PWM
- bool
-
config MIGHT_HAVE_PCI
bool

--
1.7.10.4

2014-02-10 01:12:42

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 4/7] MIPS: jz4740: don't select HAVE_PWM

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework. The jz4740
platform uses the generic PWM framework, after the commit "f6b8a57
pwm: Add Ingenic JZ4740 support".

Signed-off-by: Jingoo Han <[email protected]>
---
arch/mips/Kconfig | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index dcae3a7..d132603 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -235,7 +235,6 @@ config MACH_JZ4740
select IRQ_CPU
select ARCH_REQUIRE_GPIOLIB
select SYS_HAS_EARLY_PRINTK
- select HAVE_PWM
select HAVE_CLK
select GENERIC_IRQ_CHIP

--
1.7.10.4

2014-02-10 01:15:16

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 5/7] Input: max8997_haptic: remove HAVE_PWM dependencies

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework. However, legacy
PWM drivers were already moved to the generic PWM framework.
Thus, HAVE_PWM should be removed, because HAVE_PWM is not
required anymore.

Signed-off-by: Jingoo Han <[email protected]>
---
drivers/input/misc/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 7904ab0..ae74df7 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -156,7 +156,7 @@ config INPUT_MAX8925_ONKEY

config INPUT_MAX8997_HAPTIC
tristate "MAXIM MAX8997 haptic controller support"
- depends on PWM && HAVE_PWM && MFD_MAX8997
+ depends on PWM && MFD_MAX8997
select INPUT_FF_MEMLESS
help
This option enables device driver support for the haptic controller
--
1.7.10.4

2014-02-10 01:16:22

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 6/7] Input: pwm-beepe: remove HAVE_PWM dependencies

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework. However, legacy
PWM drivers were already moved to the generic PWM framework.
Thus, HAVE_PWM should be removed, because HAVE_PWM is not
required anymore.

Signed-off-by: Jingoo Han <[email protected]>
---
drivers/input/misc/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index ae74df7..762e6d2 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -470,7 +470,7 @@ config INPUT_PCF8574

config INPUT_PWM_BEEPER
tristate "PWM beeper support"
- depends on PWM && HAVE_PWM
+ depends on PWM
help
Say Y here to get support for PWM based beeper devices.

--
1.7.10.4

2014-02-10 01:16:57

by Jingoo Han

[permalink] [raw]
Subject: [PATCH 7/7] pwm: don't use IS_ENABLED(CONFIG_HAVE_PWM)

The HAVE_PWM symbol is only for legacy platforms that provide
the PWM API without using the generic framework. However, legacy
PWM drivers were already moved to the generic PWM framework.
Thus, HAVE_PWM should be removed, because HAVE_PWM is not
required anymore.

Signed-off-by: Jingoo Han <[email protected]>
---
include/linux/pwm.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index f0feafd..4717f54 100644
--- a/include/linux/pwm.h
+++ b/include/linux/pwm.h
@@ -7,7 +7,7 @@
struct pwm_device;
struct seq_file;

-#if IS_ENABLED(CONFIG_PWM) || IS_ENABLED(CONFIG_HAVE_PWM)
+#if IS_ENABLED(CONFIG_PWM)
/*
* pwm_request - request a PWM device
*/
--
1.7.10.4

2014-02-10 09:59:45

by Roland Stigge

[permalink] [raw]
Subject: Re: [PATCH 2/7] ARM: lpc32xx: don't select HAVE_PWM

On 10/02/14 02:09, Jingoo Han wrote:
> The HAVE_PWM symbol is only for legacy platforms that provide
> the PWM API without using the generic framework. The lpc32xx
> platforms use the generic PWM framework, after the commit "2132fa8
> pwm: add lpc32xx PWM support".
>
> Signed-off-by: Jingoo Han <[email protected]>
> ---
> arch/arm/Kconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index e254198..897fa15 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -632,7 +632,6 @@ config ARCH_LPC32XX
> select CPU_ARM926T
> select GENERIC_CLOCKEVENTS
> select HAVE_IDE
> - select HAVE_PWM
> select USB_ARCH_HAS_OHCI
> select USE_OF
> help
>

Acked-by: Roland Stigge <[email protected]>

2014-02-11 03:02:30

by Jingoo Han

[permalink] [raw]
Subject: Re: [PATCH 0/7] Remove HAVE_PWM config option

On Monday, February 10, 2014 10:07 AM, Jingoo Han wrote:
>
> The HAVE_PWM symbol is only for legacy platforms that provide
> the PWM API without using the generic framework, while PWM symbol
> is used for PWM drivers using the generic PWM framework.
>
> I looked at all HAVE_PWMs in the latest mainline kernel 3.14-rc1.
> Three platforms are still using HAVE_PWM as below:
>
> 1. ARM - PXA
> ./arch/arm/mach-pxa/Kconfig
>
> 2. ARM - NXP LPC32XX
> ./arch/arm/Kconfig
> config ARCH_LPC32XX
> select HAVE_PWM
>
> 3. MIPS - Ingenic JZ4740 based machines
> ./arch/mips/Kconfig
> config MACH_JZ4740
> select HAVE_PWM
>
> However, the legacy PWM drivers for PXA, LPC32XX, and JZ474 were
> already moved to the generic PWM framework.
> ./drivers/pwm/pwm-pxa.c
> ./drivers/pwm/pwm-lpc32xx.c
> ./drivers/pwm/pwm-jz4740.c
>
> In conclusion, HAVE_PWM should be removed, because HAVE_PWM is
> NOT required anymore.
>
> Jingoo Han (7):
> ARM: pxa: don't select HAVE_PWM
> ARM: lpc32xx: don't select HAVE_PWM
> ARM: remove HAVE_PWM config option
> MIPS: jz4740: don't select HAVE_PWM
> Input: max8997_haptic: remove HAVE_PWM dependencies
> Input: pwm-beepe: remove HAVE_PWM dependencies
> pwm: don't use IS_ENABLED(CONFIG_HAVE_PWM)
>
> arch/arm/Kconfig | 4 ----
> arch/arm/mach-pxa/Kconfig | 15 ---------------
> arch/mips/Kconfig | 1 -
> drivers/input/misc/Kconfig | 4 ++--
> include/linux/pwm.h | 2 +-
> 5 files changed, 3 insertions(+), 23 deletions(-)

(+cc Sascha Hauer, Roland Stigge)

The same patch was already submitted by Sascha Hauer. [1]
So, please ignore this patch. Thank you.

[1] https://lkml.org/lkml/2014/1/16/262

Best regards,
Jingoo Han

>
> I would like to merge these patches as below:
>
> 1. Through arm-soc tree
> [PATCH 1/7] ARM: pxa: don't select HAVE_PWM
> [PATCH 2/7] ARM: lpc32xx: don't select HAVE_PWM
> [PATCH 3/7] ARM: remove HAVE_PWM config option
>
> 2. Through MIPS tree
> [PATCH 4/7] MIPS: jz4740: don't select HAVE_PWM
>
> 3. Through Input tree
> [PATCH 5/7] Input: max8997_haptic: remove HAVE_PWM dependencies
> [PATCH 6/7] Input: pwm-beepe: remove HAVE_PWM dependencies
>
> 4. Through PWM tree
> [PATCH 7/7] pwm: don't use IS_ENABLED(CONFIG_HAVE_PWM)
>
> After merging these patches, all HAVE_PWM will be removed from
> the mainline kernel. Thank you. :-)
>
> Best regards,
> Jingoo Han

2014-02-11 12:08:19

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH 4/7] MIPS: jz4740: don't select HAVE_PWM

On 02/10/2014 02:12 AM, Jingoo Han wrote:
> The HAVE_PWM symbol is only for legacy platforms that provide
> the PWM API without using the generic framework. The jz4740
> platform uses the generic PWM framework, after the commit "f6b8a57
> pwm: Add Ingenic JZ4740 support".
>
> Signed-off-by: Jingoo Han <[email protected]>

Acked-by: Lars-Peter Clausen <[email protected]>

> ---
> arch/mips/Kconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index dcae3a7..d132603 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -235,7 +235,6 @@ config MACH_JZ4740
> select IRQ_CPU
> select ARCH_REQUIRE_GPIOLIB
> select SYS_HAS_EARLY_PRINTK
> - select HAVE_PWM
> select HAVE_CLK
> select GENERIC_IRQ_CHIP
>
>

2014-02-11 12:08:43

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH 6/7] Input: pwm-beepe: remove HAVE_PWM dependencies

On 02/10/2014 02:16 AM, Jingoo Han wrote:
> The HAVE_PWM symbol is only for legacy platforms that provide
> the PWM API without using the generic framework. However, legacy
> PWM drivers were already moved to the generic PWM framework.
> Thus, HAVE_PWM should be removed, because HAVE_PWM is not
> required anymore.
>
> Signed-off-by: Jingoo Han <[email protected]>

Acked-by: Lars-Peter Clausen <[email protected]>

> ---
> drivers/input/misc/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
> index ae74df7..762e6d2 100644
> --- a/drivers/input/misc/Kconfig
> +++ b/drivers/input/misc/Kconfig
> @@ -470,7 +470,7 @@ config INPUT_PCF8574
>
> config INPUT_PWM_BEEPER
> tristate "PWM beeper support"
> - depends on PWM && HAVE_PWM
> + depends on PWM
> help
> Say Y here to get support for PWM based beeper devices.
>
>

2014-02-11 12:18:07

by Jingoo Han

[permalink] [raw]
Subject: Re: [PATCH 4/7] MIPS: jz4740: don't select HAVE_PWM

On Tuesday, February 11, 2014 9:08 PM, Lars-Peter Clausen wrote:
> On 02/10/2014 02:12 AM, Jingoo Han wrote:
> > The HAVE_PWM symbol is only for legacy platforms that provide
> > the PWM API without using the generic framework. The jz4740
> > platform uses the generic PWM framework, after the commit "f6b8a57
> > pwm: Add Ingenic JZ4740 support".
> >
> > Signed-off-by: Jingoo Han <[email protected]>
>
> Acked-by: Lars-Peter Clausen <[email protected]>

Hi Lars-Peter Clausen,

I really appreciate your Acked-by. However, the same patch was
already submitted by Sascha Hauer.[1] So, please ignore this patch.
Thank you.

[1] https://lkml.org/lkml/2014/1/16/262

Best regards,
Jingoo Han

>
> > ---
> > arch/mips/Kconfig | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> > index dcae3a7..d132603 100644
> > --- a/arch/mips/Kconfig
> > +++ b/arch/mips/Kconfig
> > @@ -235,7 +235,6 @@ config MACH_JZ4740
> > select IRQ_CPU
> > select ARCH_REQUIRE_GPIOLIB
> > select SYS_HAS_EARLY_PRINTK
> > - select HAVE_PWM
> > select HAVE_CLK
> > select GENERIC_IRQ_CHIP
> >
> >

2014-02-11 12:18:59

by Jingoo Han

[permalink] [raw]
Subject: Re: [PATCH 6/7] Input: pwm-beepe: remove HAVE_PWM dependencies

On Tuesday, February 11, 2014 9:09 PM, Lars-Peter Clausen wrote:
> On 02/10/2014 02:16 AM, Jingoo Han wrote:
> > The HAVE_PWM symbol is only for legacy platforms that provide
> > the PWM API without using the generic framework. However, legacy
> > PWM drivers were already moved to the generic PWM framework.
> > Thus, HAVE_PWM should be removed, because HAVE_PWM is not
> > required anymore.
> >
> > Signed-off-by: Jingoo Han <[email protected]>
>
> Acked-by: Lars-Peter Clausen <[email protected]>

Hi Lars-Peter Clausen,

I really appreciate your Acked-by. However, the same patch was
already submitted by Sascha Hauer.[1] So, please ignore this patch.
Thank you.

[1] https://lkml.org/lkml/2014/1/16/262

Best regards,
Jingoo Han

>
> > ---
> > drivers/input/misc/Kconfig | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
> > index ae74df7..762e6d2 100644
> > --- a/drivers/input/misc/Kconfig
> > +++ b/drivers/input/misc/Kconfig
> > @@ -470,7 +470,7 @@ config INPUT_PCF8574
> >
> > config INPUT_PWM_BEEPER
> > tristate "PWM beeper support"
> > - depends on PWM && HAVE_PWM
> > + depends on PWM
> > help
> > Say Y here to get support for PWM based beeper devices.
> >
> >