[PATCH 10/10] drivers: misc: use module_platform_driver_probe()

H Hartley Sweeten hartleys at visionengravers.com
Fri Mar 15 13:43:48 EDT 2013


On Thursday, March 14, 2013 6:58 AM, Arnd Bergmann wrote:
> On Thursday 14 March 2013, Fabio Porcedda wrote:
>> This patch converts the drivers to use the
>> module_platform_driver_probe() macro which makes the code smaller and
>> a bit simpler.
>> 
>> Signed-off-by: Fabio Porcedda <fabio.porcedda at gmail.com>
>> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
>> Cc: Arnd Bergmann <arnd at arndb.de>
>> ---
>>  drivers/misc/atmel_pwm.c  | 12 +-----------
>>  drivers/misc/ep93xx_pwm.c | 13 +------------
>>  2 files changed, 2 insertions(+), 23 deletions(-)
>
> The patch itself seems fine, but there are two issues around it:
>
> * The PWM drivers should really get moved to drivers/pwm and converted to the new
>   PWM subsystem. I don't know if Hartley or Hans-Christian have plans to do
>   that already.

Arnd,

Ill look at converting the ep93xx pwm driver to the PWM subsystem. The only issue is
the current driver exposes a sysfs interface that I think is not available in that subsystem.

>* Regarding the use of module_platform_driver_probe, I'm a little worried about
>  the interactions with deferred probing. I don't think there are any regressions,
>  but we should probably make people aware that one cannot return -EPROBE_DEFER
>  from a platform_driver_probe function.

The ep93xx pwm driver does not need to use platform_driver_probe(). It can be changed
to use module_platform_driver() by just moving the .probe to the platform_driver. This
driver was added before module_platform_driver() was available and I used the
platform_driver_probe() thinking it would save a couple lines of code.

I'll change this in a bit. Right now I'm trying to work out why kernel 3.8 is not booting
on the ep93xx. I had 3.6.6 on my development board and 3.7 works fine but 3.8 hangs
without uncompressing the kernel.

Regards,
Hartley






More information about the linux-arm-kernel mailing list