2012-10-04 06:07:15

by Thierry Reding

[permalink] [raw]
Subject: [PATCH] pwm: Get rid of HAVE_PWM

Now that all drivers have been moved to the PWM subsystem, remove the
legacy HAVE_PWM symbol and replace it with the new PWM symbol. While at
it, select the PWM subsystem and corresponding PWM driver on boards that
require PWM functionality.

Signed-off-by: Thierry Reding <[email protected]>
Cc: Russell King <[email protected]>
Cc: Shawn Guo <[email protected]>
Cc: Eric Miao <[email protected]>
Cc: Haojian Zhuang <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: Bryan Wu <[email protected]>
Cc: Richard Purdie <[email protected]>
Cc: Samuel Ortiz <[email protected]>
Cc: Ashish Jangam <[email protected]>
Cc: Andrew Jones <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
arch/arm/Kconfig | 6 ++----
arch/arm/mach-mxs/Kconfig | 6 ++++--
arch/arm/mach-pxa/Kconfig | 42 ++++++++++++++++++++++++++++--------------
arch/mips/Kconfig | 3 ++-
drivers/input/misc/Kconfig | 4 ++--
drivers/leds/Kconfig | 2 +-
include/linux/pwm.h | 2 +-
7 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e91c7cd..a0cebf8 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -69,9 +69,6 @@ config ARM_DMA_USE_IOMMU
select ARM_HAS_SG_CHAIN
bool

-config HAVE_PWM
- bool
-
config MIGHT_HAVE_PCI
bool

@@ -610,7 +607,8 @@ config ARCH_LPC32XX
select CLKDEV_LOOKUP
select GENERIC_CLOCKEVENTS
select USE_OF
- select HAVE_PWM
+ select PWM
+ select PWM_LPC32XX
help
Support for the NXP LPC32XX family of processors

diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig
index 9a8bbda..2fc01bd 100644
--- a/arch/arm/mach-mxs/Kconfig
+++ b/arch/arm/mach-mxs/Kconfig
@@ -6,7 +6,8 @@ config SOC_IMX23
bool
select ARM_AMBA
select CPU_ARM926T
- select HAVE_PWM
+ select PWM
+ select PWM_MXS
select PINCTRL_IMX23

config SOC_IMX28
@@ -14,7 +15,8 @@ config SOC_IMX28
select ARM_AMBA
select CPU_ARM926T
select HAVE_CAN_FLEXCAN if CAN
- select HAVE_PWM
+ select PWM
+ select PWM_MXS
select PINCTRL_IMX28

comment "MXS platforms:"
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index fe2d1f8..14f41c3 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -33,12 +33,14 @@ config ARCH_LUBBOCK
config MACH_MAINSTONE
bool "Intel HCDDBBVA0 Development Platform (aka Mainstone)"
select PXA27x
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_ZYLONITE
bool
select PXA3xx
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_ZYLONITE300
bool "PXA3xx Development Platform (aka Zylonite) PXA300/310"
@@ -78,7 +80,8 @@ config ARCH_VIPER
select PXA25x
select ISA
select I2C_GPIO
- select HAVE_PWM
+ select PWM
+ select PWM_PXA
select PXA_HAVE_ISA_IRQS
select ARCOM_PCMCIA

@@ -128,7 +131,8 @@ config MACH_CM_X300
select PXA3xx
select CPU_PXA300
select CPU_PXA310
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_CAPC7117
bool "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM"
@@ -220,7 +224,8 @@ config TRIZEPS_PCMCIA
config MACH_LOGICPD_PXA270
bool "LogicPD PXA270 Card Engine Development Platform"
select PXA27x
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_PCM027
bool "Phytec phyCORE-PXA270 CPU module (PCM-027)"
@@ -229,7 +234,8 @@ config MACH_PCM027

config MACH_PCM990_BASEBOARD
bool "PHYTEC PCM-990 development board"
- select HAVE_PWM
+ select PWM
+ select PWM_PXA
depends on MACH_PCM027

choice
@@ -255,7 +261,8 @@ config MACH_COLIBRI_PXA270_INCOME
bool "Income s.r.o. PXA270 SBC"
depends on MACH_COLIBRI
select PXA27x
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_COLIBRI300
bool "Toradex Colibri PXA300/310"
@@ -285,7 +292,8 @@ config MACH_H4700
bool "HP iPAQ hx4700"
select PXA27x
select IWMMXT
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_H5000
bool "HP iPAQ h5000"
@@ -299,13 +307,15 @@ config MACH_MAGICIAN
bool "Enable HTC Magician Support"
select PXA27x
select IWMMXT
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_MIOA701
bool "Mitac Mio A701 Support"
select PXA27x
select IWMMXT
- select HAVE_PWM
+ select PWM
+ select PWM_PXA
select GPIO_SYSFS
help
Say Y here if you intend to run this kernel on a
@@ -316,7 +326,8 @@ config PXA_EZX
bool "Motorola EZX Platform"
select PXA27x
select IWMMXT
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_EZX_A780
bool "Motorola EZX A780"
@@ -354,7 +365,8 @@ config MACH_MP900C

config ARCH_PXA_PALM
bool "PXA based Palm PDAs"
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_PALM27X
bool
@@ -454,7 +466,8 @@ config MACH_RAUMFELD_RC
select PXA3xx
select CPU_PXA300
select POWER_SUPPLY
- select HAVE_PWM
+ select PWM
+ select PWM_PXA

config MACH_RAUMFELD_CONNECTOR
bool "Raumfeld Connector"
@@ -617,7 +630,8 @@ config MACH_E800
config MACH_ZIPIT2
bool "Zipit Z2 Handheld"
select PXA27x
- select HAVE_PWM
+ select PWM
+ select PWM_PXA
endif
endmenu

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 331d574..b38f23d 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -219,7 +219,8 @@ config MACH_JZ4740
select GENERIC_GPIO
select ARCH_REQUIRE_GPIOLIB
select SYS_HAS_EARLY_PRINTK
- select HAVE_PWM
+ select PWM
+ select PWM_JZ4740
select HAVE_CLK
select GENERIC_IRQ_CHIP

diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 7c0f1ec..af6188b 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -146,7 +146,7 @@ config INPUT_MAX8925_ONKEY

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

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

diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index c96bbaa..a720d99 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -298,7 +298,7 @@ config LEDS_DAC124S085
config LEDS_PWM
tristate "PWM driven LED Support"
depends on LEDS_CLASS
- depends on HAVE_PWM
+ depends on PWM
help
This option enables support for pwm driven LEDs

diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index 112b314..eea3f26 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.12.2


2012-10-04 14:59:29

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH] pwm: Get rid of HAVE_PWM

On 10/04/2012 08:06 AM, Thierry Reding wrote:
> [...]
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index 331d574..b38f23d 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -219,7 +219,8 @@ config MACH_JZ4740
> select GENERIC_GPIO
> select ARCH_REQUIRE_GPIOLIB
> select SYS_HAS_EARLY_PRINTK
> - select HAVE_PWM
> + select PWM
> + select PWM_JZ4740
> select HAVE_CLK
> select GENERIC_IRQ_CHIP

I'm not sure if this is such a good idea, not all jz4740 based board
necessarily require PWM.

- Lars

2012-10-04 18:30:06

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] pwm: Get rid of HAVE_PWM

On Thu, Oct 04, 2012 at 05:00:23PM +0200, Lars-Peter Clausen wrote:
> On 10/04/2012 08:06 AM, Thierry Reding wrote:
> > [...]
> > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> > index 331d574..b38f23d 100644
> > --- a/arch/mips/Kconfig
> > +++ b/arch/mips/Kconfig
> > @@ -219,7 +219,8 @@ config MACH_JZ4740
> > select GENERIC_GPIO
> > select ARCH_REQUIRE_GPIOLIB
> > select SYS_HAS_EARLY_PRINTK
> > - select HAVE_PWM
> > + select PWM
> > + select PWM_JZ4740
> > select HAVE_CLK
> > select GENERIC_IRQ_CHIP
>
> I'm not sure if this is such a good idea, not all jz4740 based board
> necessarily require PWM.

This really only restores previous behaviour. But I agree that this is
potentially not what we want. Maybe we should just not select this for
any boards but rather leave it up to some default configuration. If so
the patch can be made simpler by just removing the HAVE_PWM entries.

Thierry


Attachments:
(No filename) (916.00 B)
(No filename) (836.00 B)
Download all attachments

2012-10-04 18:49:22

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH] pwm: Get rid of HAVE_PWM

On 10/04/2012 08:29 PM, Thierry Reding wrote:
> On Thu, Oct 04, 2012 at 05:00:23PM +0200, Lars-Peter Clausen wrote:
>> On 10/04/2012 08:06 AM, Thierry Reding wrote:
>>> [...]
>>> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
>>> index 331d574..b38f23d 100644
>>> --- a/arch/mips/Kconfig
>>> +++ b/arch/mips/Kconfig
>>> @@ -219,7 +219,8 @@ config MACH_JZ4740
>>> select GENERIC_GPIO
>>> select ARCH_REQUIRE_GPIOLIB
>>> select SYS_HAS_EARLY_PRINTK
>>> - select HAVE_PWM
>>> + select PWM
>>> + select PWM_JZ4740
>>> select HAVE_CLK
>>> select GENERIC_IRQ_CHIP
>>
>> I'm not sure if this is such a good idea, not all jz4740 based board
>> necessarily require PWM.
>
> This really only restores previous behaviour. But I agree that this is
> potentially not what we want. Maybe we should just not select this for
> any boards but rather leave it up to some default configuration. If so
> the patch can be made simpler by just removing the HAVE_PWM entries.

At least for JZ4740 I think that is the better solution.

Thanks,
- Lars

2012-10-04 19:13:25

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] pwm: Get rid of HAVE_PWM

On Thu, Oct 04, 2012 at 08:48:54PM +0200, Lars-Peter Clausen wrote:
> On 10/04/2012 08:29 PM, Thierry Reding wrote:
> > On Thu, Oct 04, 2012 at 05:00:23PM +0200, Lars-Peter Clausen wrote:
> >> On 10/04/2012 08:06 AM, Thierry Reding wrote:
> >>> [...]
> >>> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> >>> index 331d574..b38f23d 100644
> >>> --- a/arch/mips/Kconfig
> >>> +++ b/arch/mips/Kconfig
> >>> @@ -219,7 +219,8 @@ config MACH_JZ4740
> >>> select GENERIC_GPIO
> >>> select ARCH_REQUIRE_GPIOLIB
> >>> select SYS_HAS_EARLY_PRINTK
> >>> - select HAVE_PWM
> >>> + select PWM
> >>> + select PWM_JZ4740
> >>> select HAVE_CLK
> >>> select GENERIC_IRQ_CHIP
> >>
> >> I'm not sure if this is such a good idea, not all jz4740 based board
> >> necessarily require PWM.
> >
> > This really only restores previous behaviour. But I agree that this is
> > potentially not what we want. Maybe we should just not select this for
> > any boards but rather leave it up to some default configuration. If so
> > the patch can be made simpler by just removing the HAVE_PWM entries.
>
> At least for JZ4740 I think that is the better solution.

Okay, I'll give other people the chance to comment on this. Especially
for PXA there are many boards that use the PWM for backlight and it
would be interesting to hear from them how they want this to be handled.

Thierry


Attachments:
(No filename) (1.34 kB)
(No filename) (836.00 B)
Download all attachments

2012-10-07 04:17:58

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH] pwm: Get rid of HAVE_PWM

On Thu, Oct 04, 2012 at 08:06:59AM +0200, Thierry Reding wrote:
> Now that all drivers have been moved to the PWM subsystem, remove the
> legacy HAVE_PWM symbol and replace it with the new PWM symbol. While at
> it, select the PWM subsystem and corresponding PWM driver on boards that
> require PWM functionality.
>
> Signed-off-by: Thierry Reding <[email protected]>
> Cc: Russell King <[email protected]>
> Cc: Shawn Guo <[email protected]>
> Cc: Eric Miao <[email protected]>
> Cc: Haojian Zhuang <[email protected]>
> Cc: Ralf Baechle <[email protected]>
> Cc: Dmitry Torokhov <[email protected]>
> Cc: Bryan Wu <[email protected]>
> Cc: Richard Purdie <[email protected]>
> Cc: Samuel Ortiz <[email protected]>
> Cc: Ashish Jangam <[email protected]>
> Cc: Andrew Jones <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> ---
> arch/arm/Kconfig | 6 ++----
> arch/arm/mach-mxs/Kconfig | 6 ++++--

Shawn Guo <[email protected]>

> arch/arm/mach-pxa/Kconfig | 42 ++++++++++++++++++++++++++++--------------
> arch/mips/Kconfig | 3 ++-
> drivers/input/misc/Kconfig | 4 ++--
> drivers/leds/Kconfig | 2 +-
> include/linux/pwm.h | 2 +-
> 7 files changed, 40 insertions(+), 25 deletions(-)

2012-10-08 02:46:10

by Eric Miao

[permalink] [raw]
Subject: Re: [PATCH] pwm: Get rid of HAVE_PWM

On Fri, Oct 5, 2012 at 3:13 AM, Thierry Reding
<[email protected]> wrote:
> On Thu, Oct 04, 2012 at 08:48:54PM +0200, Lars-Peter Clausen wrote:
>> On 10/04/2012 08:29 PM, Thierry Reding wrote:
>> > On Thu, Oct 04, 2012 at 05:00:23PM +0200, Lars-Peter Clausen wrote:
>> >> On 10/04/2012 08:06 AM, Thierry Reding wrote:
>> >>> [...]
>> >>> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
>> >>> index 331d574..b38f23d 100644
>> >>> --- a/arch/mips/Kconfig
>> >>> +++ b/arch/mips/Kconfig
>> >>> @@ -219,7 +219,8 @@ config MACH_JZ4740
>> >>> select GENERIC_GPIO
>> >>> select ARCH_REQUIRE_GPIOLIB
>> >>> select SYS_HAS_EARLY_PRINTK
>> >>> - select HAVE_PWM
>> >>> + select PWM
>> >>> + select PWM_JZ4740
>> >>> select HAVE_CLK
>> >>> select GENERIC_IRQ_CHIP
>> >>
>> >> I'm not sure if this is such a good idea, not all jz4740 based board
>> >> necessarily require PWM.
>> >
>> > This really only restores previous behaviour. But I agree that this is
>> > potentially not what we want. Maybe we should just not select this for
>> > any boards but rather leave it up to some default configuration. If so
>> > the patch can be made simpler by just removing the HAVE_PWM entries.
>>
>> At least for JZ4740 I think that is the better solution.
>
> Okay, I'll give other people the chance to comment on this. Especially
> for PXA there are many boards that use the PWM for backlight and it
> would be interesting to hear from them how they want this to be handled.

I'd say the original intention to introduce HAVE_PWM (although PXA
makes a lot use of this, but I remember Russell was the first to propose
this), is for board config to indicate its potential usage of the PWM or
rather if PWM is available for use on the board, and then leave the
developer another config option to build or not-to-build.

Personally I think removing HAVE_PWM will simplify the code a bit
and that's a good thing, on the other hand, how to keep a certain level
of flexibility mentioned above remains a small question. I guess with
device tree, this can be mitigated a bit.

2012-10-08 05:45:59

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] pwm: Get rid of HAVE_PWM

On Mon, Oct 08, 2012 at 10:45:44AM +0800, Eric Miao wrote:
> On Fri, Oct 5, 2012 at 3:13 AM, Thierry Reding
> <[email protected]> wrote:
> > On Thu, Oct 04, 2012 at 08:48:54PM +0200, Lars-Peter Clausen wrote:
> >> On 10/04/2012 08:29 PM, Thierry Reding wrote:
> >> > On Thu, Oct 04, 2012 at 05:00:23PM +0200, Lars-Peter Clausen wrote:
> >> >> On 10/04/2012 08:06 AM, Thierry Reding wrote:
> >> >>> [...]
> >> >>> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> >> >>> index 331d574..b38f23d 100644
> >> >>> --- a/arch/mips/Kconfig
> >> >>> +++ b/arch/mips/Kconfig
> >> >>> @@ -219,7 +219,8 @@ config MACH_JZ4740
> >> >>> select GENERIC_GPIO
> >> >>> select ARCH_REQUIRE_GPIOLIB
> >> >>> select SYS_HAS_EARLY_PRINTK
> >> >>> - select HAVE_PWM
> >> >>> + select PWM
> >> >>> + select PWM_JZ4740
> >> >>> select HAVE_CLK
> >> >>> select GENERIC_IRQ_CHIP
> >> >>
> >> >> I'm not sure if this is such a good idea, not all jz4740 based board
> >> >> necessarily require PWM.
> >> >
> >> > This really only restores previous behaviour. But I agree that this is
> >> > potentially not what we want. Maybe we should just not select this for
> >> > any boards but rather leave it up to some default configuration. If so
> >> > the patch can be made simpler by just removing the HAVE_PWM entries.
> >>
> >> At least for JZ4740 I think that is the better solution.
> >
> > Okay, I'll give other people the chance to comment on this. Especially
> > for PXA there are many boards that use the PWM for backlight and it
> > would be interesting to hear from them how they want this to be handled.
>
> I'd say the original intention to introduce HAVE_PWM (although PXA
> makes a lot use of this, but I remember Russell was the first to propose
> this), is for board config to indicate its potential usage of the PWM or
> rather if PWM is available for use on the board, and then leave the
> developer another config option to build or not-to-build.

But with HAVE_PWM there was never a different configuration option to
enable the PWM driver. All architectures that used the HAVE_PWM symbol
built the driver based on its selection. The meaning seemed more like
"the PWM API is available" rather than anything else.

Given that, HAVE_PWM would now be replaced by just PWM since that makes
the API available. Client drivers would still be able to compile
properly but fail at runtime if no driver actually provided any PWM
devices.

Note that starting with 3.7 the API will even be available in the form
of dummy implementations if PWM is not selected.

> Personally I think removing HAVE_PWM will simplify the code a bit
> and that's a good thing, on the other hand, how to keep a certain level
> of flexibility mentioned above remains a small question. I guess with
> device tree, this can be mitigated a bit.

I think, given the above, that the best solution would be to not select
any PWM-related symbols from boards and handle this via the board
default configurations. I was just worrying that we were changing
existing behaviour. On the other hand behaviour was already changed by
making the drivers no longer conditional on HAVE_PWM.

If nobody has any objections, my tendency would be to just not replace
HAVE_PWM but just get rid of it. Of course, as I mentioned above, it
would require the board default configurations to be updated and select
the PWM and corresponding driver symbol in order to restore previous
behaviour.

Thierry


Attachments:
(No filename) (3.38 kB)
(No filename) (836.00 B)
Download all attachments