Re: [PATCH v2 2/7] USB: serial: handle suspend failure path correctly
On Fri, Mar 08, 2013 at 12:15:19AM +0800, Ming Lei wrote: This patch kills traffic even though type-suspend returns failure inside usb_serial_suspend from system sleep context because USB core ignores the failiure and lets system sleep go ahread, so the serial URB traffic need to be killed in this case. Cc: Johan Hovold jhov...@gmail.com Signed-off-by: Ming Lei ming@canonical.com --- drivers/usb/serial/usb-serial.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c index a19ed74..9d0b9c8 100644 --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c @@ -1142,10 +1142,11 @@ int usb_serial_suspend(struct usb_interface *intf, pm_message_t message) if (serial-type-suspend) { r = serial-type-suspend(serial, message); - if (r 0) { + if (r 0 PMSG_IS_AUTO(message)) { serial-suspending = 0; goto err_out; } + /* TODO: resume() might need to handle suspend failure */ } for (i = 0; i serial-num_ports; ++i) { Sorry for the late reply. The usb-serial subdriver suspend callbacks do not and must not return non-zero if !PMSG_IS_AUTO(message) so adding code to handle that case merely obfuscates this fact. I'd rather see this documented with a comment just as Bjørn suggested for cdc_mbim and qmi_wwan. Thanks, Johan -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 10/10] drivers: misc: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Arnd Bergmann a...@arndb.de --- drivers/misc/atmel_pwm.c | 12 +--- drivers/misc/ep93xx_pwm.c | 13 + 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/drivers/misc/atmel_pwm.c b/drivers/misc/atmel_pwm.c index 28f5aaa..494d050 100644 --- a/drivers/misc/atmel_pwm.c +++ b/drivers/misc/atmel_pwm.c @@ -393,17 +393,7 @@ static struct platform_driver atmel_pwm_driver = { */ }; -static int __init pwm_init(void) -{ - return platform_driver_probe(atmel_pwm_driver, pwm_probe); -} -module_init(pwm_init); - -static void __exit pwm_exit(void) -{ - platform_driver_unregister(atmel_pwm_driver); -} -module_exit(pwm_exit); +module_platform_driver_probe(atmel_pwm_driver, pwm_probe); MODULE_DESCRIPTION(Driver for AT32/AT91 PWM module); MODULE_LICENSE(GPL); diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 16d7179..96787ec 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -365,18 +365,7 @@ static struct platform_driver ep93xx_pwm_driver = { .remove = __exit_p(ep93xx_pwm_remove), }; -static int __init ep93xx_pwm_init(void) -{ - return platform_driver_probe(ep93xx_pwm_driver, ep93xx_pwm_probe); -} - -static void __exit ep93xx_pwm_exit(void) -{ - platform_driver_unregister(ep93xx_pwm_driver); -} - -module_init(ep93xx_pwm_init); -module_exit(ep93xx_pwm_exit); +module_platform_driver_probe(ep93xx_pwm_driver, ep93xx_pwm_probe); MODULE_AUTHOR(Matthieu Crapet mcra...@gmail.com, H Hartley Sweeten hswee...@visionengravers.com); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 09/10] drivers: video: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Richard Purdie rpur...@rpsys.net Cc: Florian Tobias Schandinat florianschandi...@gmx.de Cc: linux-fb...@vger.kernel.org --- drivers/video/backlight/atmel-pwm-bl.c | 12 +--- drivers/video/sh_mipi_dsi.c| 12 +--- drivers/video/sh_mobile_hdmi.c | 12 +--- 3 files changed, 3 insertions(+), 33 deletions(-) diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c index de5e5e7..20b330d 100644 --- a/drivers/video/backlight/atmel-pwm-bl.c +++ b/drivers/video/backlight/atmel-pwm-bl.c @@ -225,17 +225,7 @@ static struct platform_driver atmel_pwm_bl_driver = { .remove = __exit_p(atmel_pwm_bl_remove), }; -static int __init atmel_pwm_bl_init(void) -{ - return platform_driver_probe(atmel_pwm_bl_driver, atmel_pwm_bl_probe); -} -module_init(atmel_pwm_bl_init); - -static void __exit atmel_pwm_bl_exit(void) -{ - platform_driver_unregister(atmel_pwm_bl_driver); -} -module_exit(atmel_pwm_bl_exit); +module_platform_driver_probe(atmel_pwm_bl_driver, atmel_pwm_bl_probe); MODULE_AUTHOR(Hans-Christian egtvedt hans-christian.egtv...@atmel.com); MODULE_DESCRIPTION(Atmel PWM backlight driver); diff --git a/drivers/video/sh_mipi_dsi.c b/drivers/video/sh_mipi_dsi.c index 701b461..6cad530 100644 --- a/drivers/video/sh_mipi_dsi.c +++ b/drivers/video/sh_mipi_dsi.c @@ -581,17 +581,7 @@ static struct platform_driver sh_mipi_driver = { }, }; -static int __init sh_mipi_init(void) -{ - return platform_driver_probe(sh_mipi_driver, sh_mipi_probe); -} -module_init(sh_mipi_init); - -static void __exit sh_mipi_exit(void) -{ - platform_driver_unregister(sh_mipi_driver); -} -module_exit(sh_mipi_exit); +module_platform_driver_probe(sh_mipi_driver, sh_mipi_probe); MODULE_AUTHOR(Guennadi Liakhovetski g.liakhovet...@gmx.de); MODULE_DESCRIPTION(SuperH / ARM-shmobile MIPI DSI driver); diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c index 930e550..bfe4728 100644 --- a/drivers/video/sh_mobile_hdmi.c +++ b/drivers/video/sh_mobile_hdmi.c @@ -1445,17 +1445,7 @@ static struct platform_driver sh_hdmi_driver = { }, }; -static int __init sh_hdmi_init(void) -{ - return platform_driver_probe(sh_hdmi_driver, sh_hdmi_probe); -} -module_init(sh_hdmi_init); - -static void __exit sh_hdmi_exit(void) -{ - platform_driver_unregister(sh_hdmi_driver); -} -module_exit(sh_hdmi_exit); +module_platform_driver_probe(sh_hdmi_driver, sh_hdmi_probe); MODULE_AUTHOR(Guennadi Liakhovetski g.liakhovet...@gmx.de); MODULE_DESCRIPTION(SuperH / ARM-shmobile HDMI driver); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 04/10] drivers: hwmon: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Jean Delvare kh...@linux-fr.org Cc: Guenter Roeck li...@roeck-us.net Cc: lm-sens...@lm-sensors.org --- drivers/hwmon/mc13783-adc.c | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/hwmon/mc13783-adc.c b/drivers/hwmon/mc13783-adc.c index 2a7f331..982d862 100644 --- a/drivers/hwmon/mc13783-adc.c +++ b/drivers/hwmon/mc13783-adc.c @@ -273,18 +273,7 @@ static struct platform_driver mc13783_adc_driver = { .id_table = mc13783_adc_idtable, }; -static int __init mc13783_adc_init(void) -{ - return platform_driver_probe(mc13783_adc_driver, mc13783_adc_probe); -} - -static void __exit mc13783_adc_exit(void) -{ - platform_driver_unregister(mc13783_adc_driver); -} - -module_init(mc13783_adc_init); -module_exit(mc13783_adc_exit); +module_platform_driver_probe(mc13783_adc_driver, mc13783_adc_probe); MODULE_DESCRIPTION(MC13783 ADC driver); MODULE_AUTHOR(Luotao Fu l...@pengutronix.de); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 06/10] drivers: input: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Dmitry Torokhov dmitry.torok...@gmail.com Cc: Mark Brown broo...@opensource.wolfsonmicro.com Cc: Liam Girdwood l...@slimlogic.co.uk Cc: Bill Pemberton wf...@virginia.edu Cc: Linus Walleij linus.wall...@linaro.org Cc: David Howells dhowe...@redhat.com Cc: linux-input@vger.kernel.org --- drivers/input/keyboard/amikbd.c | 14 +- drivers/input/keyboard/davinci_keyscan.c| 12 +--- drivers/input/keyboard/nomadik-ske-keypad.c | 12 +--- drivers/input/misc/twl4030-pwrbutton.c | 13 + drivers/input/mouse/amimouse.c | 14 +- drivers/input/serio/at32psif.c | 13 + drivers/input/serio/q40kbd.c| 13 + drivers/input/touchscreen/atmel-wm97xx.c| 12 +--- drivers/input/touchscreen/mc13783_ts.c | 12 +--- 9 files changed, 9 insertions(+), 106 deletions(-) diff --git a/drivers/input/keyboard/amikbd.c b/drivers/input/keyboard/amikbd.c index 79172af..ba0b36f 100644 --- a/drivers/input/keyboard/amikbd.c +++ b/drivers/input/keyboard/amikbd.c @@ -260,18 +260,6 @@ static struct platform_driver amikbd_driver = { }, }; -static int __init amikbd_init(void) -{ - return platform_driver_probe(amikbd_driver, amikbd_probe); -} - -module_init(amikbd_init); - -static void __exit amikbd_exit(void) -{ - platform_driver_unregister(amikbd_driver); -} - -module_exit(amikbd_exit); +module_platform_driver_probe(amikbd_driver, amikbd_probe); MODULE_ALIAS(platform:amiga-keyboard); diff --git a/drivers/input/keyboard/davinci_keyscan.c b/drivers/input/keyboard/davinci_keyscan.c index 4e4e453..8297537 100644 --- a/drivers/input/keyboard/davinci_keyscan.c +++ b/drivers/input/keyboard/davinci_keyscan.c @@ -329,17 +329,7 @@ static struct platform_driver davinci_ks_driver = { .remove = davinci_ks_remove, }; -static int __init davinci_ks_init(void) -{ - return platform_driver_probe(davinci_ks_driver, davinci_ks_probe); -} -module_init(davinci_ks_init); - -static void __exit davinci_ks_exit(void) -{ - platform_driver_unregister(davinci_ks_driver); -} -module_exit(davinci_ks_exit); +module_platform_driver_probe(davinci_ks_driver, davinci_ks_probe); MODULE_AUTHOR(Miguel Aguilar); MODULE_DESCRIPTION(Texas Instruments DaVinci Key Scan Driver); diff --git a/drivers/input/keyboard/nomadik-ske-keypad.c b/drivers/input/keyboard/nomadik-ske-keypad.c index 0e6a815..c7d505c 100644 --- a/drivers/input/keyboard/nomadik-ske-keypad.c +++ b/drivers/input/keyboard/nomadik-ske-keypad.c @@ -430,17 +430,7 @@ static struct platform_driver ske_keypad_driver = { .remove = ske_keypad_remove, }; -static int __init ske_keypad_init(void) -{ - return platform_driver_probe(ske_keypad_driver, ske_keypad_probe); -} -module_init(ske_keypad_init); - -static void __exit ske_keypad_exit(void) -{ - platform_driver_unregister(ske_keypad_driver); -} -module_exit(ske_keypad_exit); +module_platform_driver_probe(ske_keypad_driver, ske_keypad_probe); MODULE_LICENSE(GPL v2); MODULE_AUTHOR(Naveen Kumar naveen.gaddip...@stericsson.com / Sundar Iyer sundar.i...@stericsson.com); diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c index 27c2bc8..1700947 100644 --- a/drivers/input/misc/twl4030-pwrbutton.c +++ b/drivers/input/misc/twl4030-pwrbutton.c @@ -114,18 +114,7 @@ static struct platform_driver twl4030_pwrbutton_driver = { }, }; -static int __init twl4030_pwrbutton_init(void) -{ - return platform_driver_probe(twl4030_pwrbutton_driver, - twl4030_pwrbutton_probe); -} -module_init(twl4030_pwrbutton_init); - -static void __exit twl4030_pwrbutton_exit(void) -{ - platform_driver_unregister(twl4030_pwrbutton_driver); -} -module_exit(twl4030_pwrbutton_exit); +module_platform_driver_probe(twl4030_pwrbutton_driver, twl4030_pwrbutton_probe); MODULE_ALIAS(platform:twl4030_pwrbutton); MODULE_DESCRIPTION(Triton2 Power Button); diff --git a/drivers/input/mouse/amimouse.c b/drivers/input/mouse/amimouse.c index 5fa9934..b55d5af 100644 --- a/drivers/input/mouse/amimouse.c +++ b/drivers/input/mouse/amimouse.c @@ -146,18 +146,6 @@ static struct platform_driver amimouse_driver = { }, }; -static int __init amimouse_init(void) -{ - return platform_driver_probe(amimouse_driver, amimouse_probe); -} - -module_init(amimouse_init); - -static void __exit amimouse_exit(void) -{ - platform_driver_unregister(amimouse_driver); -} - -module_exit(amimouse_exit); +module_platform_driver_probe(amimouse_driver, amimouse_probe); MODULE_ALIAS(platform:amiga-mouse); diff --git a/drivers/input/serio/at32psif.c b/drivers/input/serio/at32psif.c index
[PATCH 05/10] drivers: ide: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: David S. Miller da...@davemloft.net Cc: linux-...@vger.kernel.org --- drivers/ide/gayle.c | 15 +-- drivers/ide/tx4938ide.c | 13 + drivers/ide/tx4939ide.c | 13 + 3 files changed, 3 insertions(+), 38 deletions(-) diff --git a/drivers/ide/gayle.c b/drivers/ide/gayle.c index 51beb85..0a8440a 100644 --- a/drivers/ide/gayle.c +++ b/drivers/ide/gayle.c @@ -183,20 +183,7 @@ static struct platform_driver amiga_gayle_ide_driver = { }, }; -static int __init amiga_gayle_ide_init(void) -{ - return platform_driver_probe(amiga_gayle_ide_driver, -amiga_gayle_ide_probe); -} - -module_init(amiga_gayle_ide_init); - -static void __exit amiga_gayle_ide_exit(void) -{ - platform_driver_unregister(amiga_gayle_ide_driver); -} - -module_exit(amiga_gayle_ide_exit); +module_platform_driver_probe(amiga_gayle_ide_driver, amiga_gayle_ide_probe); MODULE_LICENSE(GPL); MODULE_ALIAS(platform:amiga-gayle-ide); diff --git a/drivers/ide/tx4938ide.c b/drivers/ide/tx4938ide.c index 91d49dd..ede8575 100644 --- a/drivers/ide/tx4938ide.c +++ b/drivers/ide/tx4938ide.c @@ -203,18 +203,7 @@ static struct platform_driver tx4938ide_driver = { .remove = __exit_p(tx4938ide_remove), }; -static int __init tx4938ide_init(void) -{ - return platform_driver_probe(tx4938ide_driver, tx4938ide_probe); -} - -static void __exit tx4938ide_exit(void) -{ - platform_driver_unregister(tx4938ide_driver); -} - -module_init(tx4938ide_init); -module_exit(tx4938ide_exit); +module_platform_driver_probe(tx4938ide_driver, tx4938ide_probe); MODULE_DESCRIPTION(TX4938 internal IDE driver); MODULE_LICENSE(GPL); diff --git a/drivers/ide/tx4939ide.c b/drivers/ide/tx4939ide.c index c0ab800..4ecdee5 100644 --- a/drivers/ide/tx4939ide.c +++ b/drivers/ide/tx4939ide.c @@ -624,18 +624,7 @@ static struct platform_driver tx4939ide_driver = { .resume = tx4939ide_resume, }; -static int __init tx4939ide_init(void) -{ - return platform_driver_probe(tx4939ide_driver, tx4939ide_probe); -} - -static void __exit tx4939ide_exit(void) -{ - platform_driver_unregister(tx4939ide_driver); -} - -module_init(tx4939ide_init); -module_exit(tx4939ide_exit); +module_platform_driver_probe(tx4939ide_driver, tx4939ide_probe); MODULE_DESCRIPTION(TX4939 internal IDE driver); MODULE_LICENSE(GPL); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 08/10] drivers: mfd: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Linus Walleij linus.wall...@linaro.org Cc: Samuel Ortiz sa...@linux.intel.com Cc: linux-arm-ker...@lists.infradead.org --- drivers/mfd/davinci_voicecodec.c | 12 +--- drivers/mfd/htc-pasic3.c | 13 + 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/drivers/mfd/davinci_voicecodec.c b/drivers/mfd/davinci_voicecodec.c index c0bcc87..c60ab0c 100644 --- a/drivers/mfd/davinci_voicecodec.c +++ b/drivers/mfd/davinci_voicecodec.c @@ -177,17 +177,7 @@ static struct platform_driver davinci_vc_driver = { .remove = davinci_vc_remove, }; -static int __init davinci_vc_init(void) -{ - return platform_driver_probe(davinci_vc_driver, davinci_vc_probe); -} -module_init(davinci_vc_init); - -static void __exit davinci_vc_exit(void) -{ - platform_driver_unregister(davinci_vc_driver); -} -module_exit(davinci_vc_exit); +module_platform_driver_probe(davinci_vc_driver, davinci_vc_probe); MODULE_AUTHOR(Miguel Aguilar); MODULE_DESCRIPTION(Texas Instruments DaVinci Voice Codec Core Interface); diff --git a/drivers/mfd/htc-pasic3.c b/drivers/mfd/htc-pasic3.c index 9e5453d..0285fce 100644 --- a/drivers/mfd/htc-pasic3.c +++ b/drivers/mfd/htc-pasic3.c @@ -208,18 +208,7 @@ static struct platform_driver pasic3_driver = { .remove = pasic3_remove, }; -static int __init pasic3_base_init(void) -{ - return platform_driver_probe(pasic3_driver, pasic3_probe); -} - -static void __exit pasic3_base_exit(void) -{ - platform_driver_unregister(pasic3_driver); -} - -module_init(pasic3_base_init); -module_exit(pasic3_base_exit); +module_platform_driver_probe(pasic3_driver, pasic3_probe); MODULE_AUTHOR(Philipp Zabel philipp.za...@gmail.com); MODULE_DESCRIPTION(Core driver for HTC PASIC3); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 07/10] drivers: memory: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Benoit Cousson b-cous...@ti.com Cc: Aneesh V ane...@ti.com --- drivers/memory/emif.c | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c index df08736..ecbc1a9 100644 --- a/drivers/memory/emif.c +++ b/drivers/memory/emif.c @@ -1841,18 +1841,8 @@ static struct platform_driver emif_driver = { }, }; -static int __init_or_module emif_register(void) -{ - return platform_driver_probe(emif_driver, emif_probe); -} - -static void __exit emif_unregister(void) -{ - platform_driver_unregister(emif_driver); -} +module_platform_driver_probe(emif_driver, emif_probe); -module_init(emif_register); -module_exit(emif_unregister); MODULE_DESCRIPTION(TI EMIF SDRAM Controller Driver); MODULE_LICENSE(GPL); MODULE_ALIAS(platform:emif); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 00/10] Use module_platform_driver_probe() part 2
Hi all, this patch set is the second part for the conversion to use new module_platform_driver_probe() macro. I will send a part 3 for the remaining drivers. Fabio Porcedda (10): drivers: media: use module_platform_driver_probe() drivers: ata: use module_platform_driver_probe() drivers: char: use module_platform_driver_probe() drivers: hwmon: use module_platform_driver_probe() drivers: ide: use module_platform_driver_probe() drivers: input: use module_platform_driver_probe() drivers: memory: use module_platform_driver_probe() drivers: mfd: use module_platform_driver_probe() drivers: video: use module_platform_driver_probe() drivers: misc: use module_platform_driver_probe() drivers/ata/pata_at32.c| 13 + drivers/ata/pata_samsung_cf.c | 13 + drivers/char/hw_random/mxc-rnga.c | 13 + drivers/char/hw_random/tx4939-rng.c| 13 + drivers/hwmon/mc13783-adc.c| 13 + drivers/ide/gayle.c| 15 +-- drivers/ide/tx4938ide.c| 13 + drivers/ide/tx4939ide.c| 13 + drivers/input/keyboard/amikbd.c| 14 +- drivers/input/keyboard/davinci_keyscan.c | 12 +--- drivers/input/keyboard/nomadik-ske-keypad.c| 12 +--- drivers/input/misc/twl4030-pwrbutton.c | 13 + drivers/input/mouse/amimouse.c | 14 +- drivers/input/serio/at32psif.c | 13 + drivers/input/serio/q40kbd.c | 13 + drivers/input/touchscreen/atmel-wm97xx.c | 12 +--- drivers/input/touchscreen/mc13783_ts.c | 12 +--- drivers/media/platform/sh_vou.c| 13 + drivers/media/platform/soc_camera/atmel-isi.c | 12 +--- drivers/media/platform/soc_camera/mx1_camera.c | 13 + drivers/memory/emif.c | 12 +--- drivers/mfd/davinci_voicecodec.c | 12 +--- drivers/mfd/htc-pasic3.c | 13 + drivers/misc/atmel_pwm.c | 12 +--- drivers/misc/ep93xx_pwm.c | 13 + drivers/video/backlight/atmel-pwm-bl.c | 12 +--- drivers/video/sh_mipi_dsi.c| 12 +--- drivers/video/sh_mobile_hdmi.c | 12 +--- 28 files changed, 28 insertions(+), 329 deletions(-) -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 01/10] drivers: media: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Mauro Carvalho Chehab mche...@redhat.com Cc: Josh Wu josh...@atmel.com Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de Cc: Hans Verkuil hans.verk...@cisco.com Cc: linux-me...@vger.kernel.org --- drivers/media/platform/sh_vou.c| 13 + drivers/media/platform/soc_camera/atmel-isi.c | 12 +--- drivers/media/platform/soc_camera/mx1_camera.c | 13 + 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/drivers/media/platform/sh_vou.c b/drivers/media/platform/sh_vou.c index 66c8da1..d853162 100644 --- a/drivers/media/platform/sh_vou.c +++ b/drivers/media/platform/sh_vou.c @@ -1485,18 +1485,7 @@ static struct platform_driver __refdata sh_vou = { }, }; -static int __init sh_vou_init(void) -{ - return platform_driver_probe(sh_vou, sh_vou_probe); -} - -static void __exit sh_vou_exit(void) -{ - platform_driver_unregister(sh_vou); -} - -module_init(sh_vou_init); -module_exit(sh_vou_exit); +module_platform_driver_probe(sh_vou, sh_vou_probe); MODULE_DESCRIPTION(SuperH VOU driver); MODULE_AUTHOR(Guennadi Liakhovetski g.liakhovet...@gmx.de); diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c index 82dbf99..12ba31d 100644 --- a/drivers/media/platform/soc_camera/atmel-isi.c +++ b/drivers/media/platform/soc_camera/atmel-isi.c @@ -1081,17 +1081,7 @@ static struct platform_driver atmel_isi_driver = { }, }; -static int __init atmel_isi_init_module(void) -{ - return platform_driver_probe(atmel_isi_driver, atmel_isi_probe); -} - -static void __exit atmel_isi_exit(void) -{ - platform_driver_unregister(atmel_isi_driver); -} -module_init(atmel_isi_init_module); -module_exit(atmel_isi_exit); +module_platform_driver_probe(atmel_isi_driver, atmel_isi_probe); MODULE_AUTHOR(Josh Wu josh...@atmel.com); MODULE_DESCRIPTION(The V4L2 driver for Atmel Linux); diff --git a/drivers/media/platform/soc_camera/mx1_camera.c b/drivers/media/platform/soc_camera/mx1_camera.c index 25b2a28..4389f43 100644 --- a/drivers/media/platform/soc_camera/mx1_camera.c +++ b/drivers/media/platform/soc_camera/mx1_camera.c @@ -859,18 +859,7 @@ static struct platform_driver mx1_camera_driver = { .remove = __exit_p(mx1_camera_remove), }; -static int __init mx1_camera_init(void) -{ - return platform_driver_probe(mx1_camera_driver, mx1_camera_probe); -} - -static void __exit mx1_camera_exit(void) -{ - return platform_driver_unregister(mx1_camera_driver); -} - -module_init(mx1_camera_init); -module_exit(mx1_camera_exit); +module_platform_driver_probe(mx1_camera_driver, mx1_camera_probe); MODULE_DESCRIPTION(i.MX1/i.MXL SoC Camera Host driver); MODULE_AUTHOR(Paulius Zaleckas paulius.zalec...@teltonika.lt); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 02/10] drivers: ata: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Jeff Garzik jgar...@pobox.com Cc: linux-...@vger.kernel.org --- drivers/ata/pata_at32.c | 13 + drivers/ata/pata_samsung_cf.c | 13 + 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/drivers/ata/pata_at32.c b/drivers/ata/pata_at32.c index 36f189c..8d493b4 100644 --- a/drivers/ata/pata_at32.c +++ b/drivers/ata/pata_at32.c @@ -393,18 +393,7 @@ static struct platform_driver pata_at32_driver = { }, }; -static int __init pata_at32_init(void) -{ - return platform_driver_probe(pata_at32_driver, pata_at32_probe); -} - -static void __exit pata_at32_exit(void) -{ - platform_driver_unregister(pata_at32_driver); -} - -module_init(pata_at32_init); -module_exit(pata_at32_exit); +module_platform_driver_probe(pata_at32_driver, pata_at32_probe); MODULE_LICENSE(GPL); MODULE_DESCRIPTION(AVR32 SMC/CFC PATA Driver); diff --git a/drivers/ata/pata_samsung_cf.c b/drivers/ata/pata_samsung_cf.c index 70b0e01..6ef27e9 100644 --- a/drivers/ata/pata_samsung_cf.c +++ b/drivers/ata/pata_samsung_cf.c @@ -661,18 +661,7 @@ static struct platform_driver pata_s3c_driver = { }, }; -static int __init pata_s3c_init(void) -{ - return platform_driver_probe(pata_s3c_driver, pata_s3c_probe); -} - -static void __exit pata_s3c_exit(void) -{ - platform_driver_unregister(pata_s3c_driver); -} - -module_init(pata_s3c_init); -module_exit(pata_s3c_exit); +module_platform_driver_probe(pata_s3c_driver, pata_s3c_probe); MODULE_AUTHOR(Abhilash Kesavan, a.kesa...@samsung.com); MODULE_DESCRIPTION(low-level driver for Samsung PATA controller); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 03/10] drivers: char: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Matt Mackall m...@selenic.com Cc: Herbert Xu herb...@gondor.apana.org.au Cc: Fabio Estevam fabio.este...@freescale.com Cc: Sascha Hauer s.ha...@pengutronix.de --- drivers/char/hw_random/mxc-rnga.c | 13 + drivers/char/hw_random/tx4939-rng.c | 13 + 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/drivers/char/hw_random/mxc-rnga.c b/drivers/char/hw_random/mxc-rnga.c index f05d857..895d0b8 100644 --- a/drivers/char/hw_random/mxc-rnga.c +++ b/drivers/char/hw_random/mxc-rnga.c @@ -228,18 +228,7 @@ static struct platform_driver mxc_rnga_driver = { .remove = __exit_p(mxc_rnga_remove), }; -static int __init mod_init(void) -{ - return platform_driver_probe(mxc_rnga_driver, mxc_rnga_probe); -} - -static void __exit mod_exit(void) -{ - platform_driver_unregister(mxc_rnga_driver); -} - -module_init(mod_init); -module_exit(mod_exit); +module_platform_driver_probe(mxc_rnga_driver, mxc_rnga_probe); MODULE_AUTHOR(Freescale Semiconductor, Inc.); MODULE_DESCRIPTION(H/W RNGA driver for i.MX); diff --git a/drivers/char/hw_random/tx4939-rng.c b/drivers/char/hw_random/tx4939-rng.c index 3099198..d34a24a 100644 --- a/drivers/char/hw_random/tx4939-rng.c +++ b/drivers/char/hw_random/tx4939-rng.c @@ -166,18 +166,7 @@ static struct platform_driver tx4939_rng_driver = { .remove = tx4939_rng_remove, }; -static int __init tx4939rng_init(void) -{ - return platform_driver_probe(tx4939_rng_driver, tx4939_rng_probe); -} - -static void __exit tx4939rng_exit(void) -{ - platform_driver_unregister(tx4939_rng_driver); -} - -module_init(tx4939rng_init); -module_exit(tx4939rng_exit); +module_platform_driver_probe(tx4939_rng_driver, tx4939_rng_probe); MODULE_DESCRIPTION(H/W Random Number Generator (RNG) driver for TX4939); MODULE_LICENSE(GPL); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] drivers: misc: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Arnd Bergmann a...@arndb.de --- drivers/misc/arm-charlcd.c | 13 + drivers/misc/atmel_pwm.c | 12 +--- drivers/misc/ep93xx_pwm.c | 13 + 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/drivers/misc/arm-charlcd.c b/drivers/misc/arm-charlcd.c index fe8616a..48651ef 100644 --- a/drivers/misc/arm-charlcd.c +++ b/drivers/misc/arm-charlcd.c @@ -378,18 +378,7 @@ static struct platform_driver charlcd_driver = { .remove = __exit_p(charlcd_remove), }; -static int __init charlcd_init(void) -{ - return platform_driver_probe(charlcd_driver, charlcd_probe); -} - -static void __exit charlcd_exit(void) -{ - platform_driver_unregister(charlcd_driver); -} - -module_init(charlcd_init); -module_exit(charlcd_exit); +module_platform_driver_probe(charlcd_driver, charlcd_probe); MODULE_AUTHOR(Linus Walleij tr...@df.lth.se); MODULE_DESCRIPTION(ARM Character LCD Driver); diff --git a/drivers/misc/atmel_pwm.c b/drivers/misc/atmel_pwm.c index 28f5aaa..494d050 100644 --- a/drivers/misc/atmel_pwm.c +++ b/drivers/misc/atmel_pwm.c @@ -393,17 +393,7 @@ static struct platform_driver atmel_pwm_driver = { */ }; -static int __init pwm_init(void) -{ - return platform_driver_probe(atmel_pwm_driver, pwm_probe); -} -module_init(pwm_init); - -static void __exit pwm_exit(void) -{ - platform_driver_unregister(atmel_pwm_driver); -} -module_exit(pwm_exit); +module_platform_driver_probe(atmel_pwm_driver, pwm_probe); MODULE_DESCRIPTION(Driver for AT32/AT91 PWM module); MODULE_LICENSE(GPL); diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 16d7179..96787ec 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -365,18 +365,7 @@ static struct platform_driver ep93xx_pwm_driver = { .remove = __exit_p(ep93xx_pwm_remove), }; -static int __init ep93xx_pwm_init(void) -{ - return platform_driver_probe(ep93xx_pwm_driver, ep93xx_pwm_probe); -} - -static void __exit ep93xx_pwm_exit(void) -{ - platform_driver_unregister(ep93xx_pwm_driver); -} - -module_init(ep93xx_pwm_init); -module_exit(ep93xx_pwm_exit); +module_platform_driver_probe(ep93xx_pwm_driver, ep93xx_pwm_probe); MODULE_AUTHOR(Matthieu Crapet mcra...@gmail.com, H Hartley Sweeten hswee...@visionengravers.com); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 01/10] drivers: media: use module_platform_driver_probe()
Hi Fabio On Thu, 14 Mar 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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Mauro Carvalho Chehab mche...@redhat.com Cc: Josh Wu josh...@atmel.com Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de Cc: Hans Verkuil hans.verk...@cisco.com Cc: linux-me...@vger.kernel.org Thanks for the patch. Subtracting this series http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/61403 you only need to convert atmel-isi.c. Please, respin. Thanks Guennadi --- drivers/media/platform/sh_vou.c| 13 + drivers/media/platform/soc_camera/atmel-isi.c | 12 +--- drivers/media/platform/soc_camera/mx1_camera.c | 13 + 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/drivers/media/platform/sh_vou.c b/drivers/media/platform/sh_vou.c index 66c8da1..d853162 100644 --- a/drivers/media/platform/sh_vou.c +++ b/drivers/media/platform/sh_vou.c @@ -1485,18 +1485,7 @@ static struct platform_driver __refdata sh_vou = { }, }; -static int __init sh_vou_init(void) -{ - return platform_driver_probe(sh_vou, sh_vou_probe); -} - -static void __exit sh_vou_exit(void) -{ - platform_driver_unregister(sh_vou); -} - -module_init(sh_vou_init); -module_exit(sh_vou_exit); +module_platform_driver_probe(sh_vou, sh_vou_probe); MODULE_DESCRIPTION(SuperH VOU driver); MODULE_AUTHOR(Guennadi Liakhovetski g.liakhovet...@gmx.de); diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c index 82dbf99..12ba31d 100644 --- a/drivers/media/platform/soc_camera/atmel-isi.c +++ b/drivers/media/platform/soc_camera/atmel-isi.c @@ -1081,17 +1081,7 @@ static struct platform_driver atmel_isi_driver = { }, }; -static int __init atmel_isi_init_module(void) -{ - return platform_driver_probe(atmel_isi_driver, atmel_isi_probe); -} - -static void __exit atmel_isi_exit(void) -{ - platform_driver_unregister(atmel_isi_driver); -} -module_init(atmel_isi_init_module); -module_exit(atmel_isi_exit); +module_platform_driver_probe(atmel_isi_driver, atmel_isi_probe); MODULE_AUTHOR(Josh Wu josh...@atmel.com); MODULE_DESCRIPTION(The V4L2 driver for Atmel Linux); diff --git a/drivers/media/platform/soc_camera/mx1_camera.c b/drivers/media/platform/soc_camera/mx1_camera.c index 25b2a28..4389f43 100644 --- a/drivers/media/platform/soc_camera/mx1_camera.c +++ b/drivers/media/platform/soc_camera/mx1_camera.c @@ -859,18 +859,7 @@ static struct platform_driver mx1_camera_driver = { .remove = __exit_p(mx1_camera_remove), }; -static int __init mx1_camera_init(void) -{ - return platform_driver_probe(mx1_camera_driver, mx1_camera_probe); -} - -static void __exit mx1_camera_exit(void) -{ - return platform_driver_unregister(mx1_camera_driver); -} - -module_init(mx1_camera_init); -module_exit(mx1_camera_exit); +module_platform_driver_probe(mx1_camera_driver, mx1_camera_probe); MODULE_DESCRIPTION(i.MX1/i.MXL SoC Camera Host driver); MODULE_AUTHOR(Paulius Zaleckas paulius.zalec...@teltonika.lt); -- 1.8.1.5 --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 10/10] drivers: misc: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Arnd Bergmann a...@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. * 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. Arnd -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 04/10] drivers: hwmon: use module_platform_driver_probe()
On Thu, Mar 14, 2013 at 02:11:25PM +0100, 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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Jean Delvare kh...@linux-fr.org Cc: Guenter Roeck li...@roeck-us.net Cc: lm-sens...@lm-sensors.org --- drivers/hwmon/mc13783-adc.c | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) I have that one already queued for -next, submitted by Jingoo Han. Thanks, Guenter -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 10/10] drivers: misc: use module_platform_driver_probe()
On Thu, Mar 14, 2013 at 01:58:05PM +, 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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Arnd Bergmann a...@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. * 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. I'm worried about this aswell. I think platform_driver_probe shouldn't be used anymore. Even if a driver does not explicitly make use of -EPROBE_DEFER, it leaks in very quickly if a driver for example uses a regulator and just returns the error value from regulator_get. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[RFC/RFT] Reset bcm5974 into wellspring mode when it forgets
Occasionally the trackpad in my MacBookPro 8,3 stops working, spewing 'bcm5974: bad trackpad package, length: 8' I haven't been able to reproduce this on demand, but it's annoying when it does happen. I'm *assuming* that it's somehow forgotten what mode it's supposed to be in. The fix for this on suspend/resume was to switch it back to Wellspring mode again, so let's try that... Untested, because my trackpad seems to *know* when I'm actually running a kernel with this patch, and doesn't ever misbehave. I've played with removing the *normal* mode switch in bcm5974_start_traffic() but can't get it to produce the 'bad trackpad package' message at all in that case, so the rest function doesn't get invoked. Signed-off-by: David Woodhouse david.woodho...@intel.com diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c index 2baff1b..db0b3ab 100644 --- a/drivers/input/mouse/bcm5974.c +++ b/drivers/input/mouse/bcm5974.c @@ -244,6 +244,7 @@ struct bcm5974 { struct bt_data *bt_data;/* button transferred data */ struct urb *tp_urb; /* trackpad usb request block */ u8 *tp_data;/* trackpad transferred data */ + struct work_struct reset_work; /* reset to wellspring mode */ const struct tp_finger *index[MAX_FINGERS]; /* finger index data */ struct input_mt_pos pos[MAX_FINGERS]; /* position array */ int slots[MAX_FINGERS]; /* slot assignments */ @@ -676,9 +677,14 @@ static void bcm5974_irq_trackpad(struct urb *urb) if (dev-tp_urb-actual_length == 2) goto exit; - if (report_tp_state(dev, dev-tp_urb-actual_length)) + if (report_tp_state(dev, dev-tp_urb-actual_length)) { dprintk(1, bcm5974: bad trackpad package, length: %d\n, dev-tp_urb-actual_length); + if (dev-tp_urb-actual_length == 8) { + /* Hm. Make sure it's in wellspring mode... */ + schedule_work(dev-reset_work); + } + } exit: error = usb_submit_urb(dev-tp_urb, GFP_ATOMIC); @@ -815,6 +821,14 @@ static int bcm5974_resume(struct usb_interface *iface) return error; } +static void bcm5974_mode_workfn(struct work_struct *work) +{ + struct bcm5974 *dev = container_of(work, struct bcm5974, reset_work); + + dev_info(dev-intf-dev, Reset into wellspring mode...\n); + bcm5974_wellspring_mode(dev, true); +} + static int bcm5974_probe(struct usb_interface *iface, const struct usb_device_id *id) { @@ -840,6 +854,7 @@ static int bcm5974_probe(struct usb_interface *iface, dev-input = input_dev; dev-cfg = *cfg; mutex_init(dev-pm_mutex); + INIT_WORK(dev-reset_work, bcm5974_mode_workfn); /* setup urbs */ if (cfg-tp_type == TYPE1) { @@ -936,6 +951,7 @@ static void bcm5974_disconnect(struct usb_interface *iface) dev-bt_data, dev-bt_urb-transfer_dma); usb_free_urb(dev-tp_urb); usb_free_urb(dev-bt_urb); + cancel_work_sync(dev-reset_work); kfree(dev); } -- David WoodhouseOpen Source Technology Centre david.woodho...@intel.com Intel Corporation smime.p7s Description: S/MIME cryptographic signature
Re: [PATCH 01/10] drivers: media: use module_platform_driver_probe()
On Thu, Mar 14, 2013 at 2:25 PM, Guennadi Liakhovetski g.liakhovet...@gmx.de wrote: Hi Fabio On Thu, 14 Mar 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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Mauro Carvalho Chehab mche...@redhat.com Cc: Josh Wu josh...@atmel.com Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de Cc: Hans Verkuil hans.verk...@cisco.com Cc: linux-me...@vger.kernel.org Thanks for the patch. Subtracting this series http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/61403 you only need to convert atmel-isi.c. Please, respin. Ok, I'll send a updated one. Thanks for the reviewing the patch. Best regards Fabio Porcedda Thanks Guennadi --- drivers/media/platform/sh_vou.c| 13 + drivers/media/platform/soc_camera/atmel-isi.c | 12 +--- drivers/media/platform/soc_camera/mx1_camera.c | 13 + 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/drivers/media/platform/sh_vou.c b/drivers/media/platform/sh_vou.c index 66c8da1..d853162 100644 --- a/drivers/media/platform/sh_vou.c +++ b/drivers/media/platform/sh_vou.c @@ -1485,18 +1485,7 @@ static struct platform_driver __refdata sh_vou = { }, }; -static int __init sh_vou_init(void) -{ - return platform_driver_probe(sh_vou, sh_vou_probe); -} - -static void __exit sh_vou_exit(void) -{ - platform_driver_unregister(sh_vou); -} - -module_init(sh_vou_init); -module_exit(sh_vou_exit); +module_platform_driver_probe(sh_vou, sh_vou_probe); MODULE_DESCRIPTION(SuperH VOU driver); MODULE_AUTHOR(Guennadi Liakhovetski g.liakhovet...@gmx.de); diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c index 82dbf99..12ba31d 100644 --- a/drivers/media/platform/soc_camera/atmel-isi.c +++ b/drivers/media/platform/soc_camera/atmel-isi.c @@ -1081,17 +1081,7 @@ static struct platform_driver atmel_isi_driver = { }, }; -static int __init atmel_isi_init_module(void) -{ - return platform_driver_probe(atmel_isi_driver, atmel_isi_probe); -} - -static void __exit atmel_isi_exit(void) -{ - platform_driver_unregister(atmel_isi_driver); -} -module_init(atmel_isi_init_module); -module_exit(atmel_isi_exit); +module_platform_driver_probe(atmel_isi_driver, atmel_isi_probe); MODULE_AUTHOR(Josh Wu josh...@atmel.com); MODULE_DESCRIPTION(The V4L2 driver for Atmel Linux); diff --git a/drivers/media/platform/soc_camera/mx1_camera.c b/drivers/media/platform/soc_camera/mx1_camera.c index 25b2a28..4389f43 100644 --- a/drivers/media/platform/soc_camera/mx1_camera.c +++ b/drivers/media/platform/soc_camera/mx1_camera.c @@ -859,18 +859,7 @@ static struct platform_driver mx1_camera_driver = { .remove = __exit_p(mx1_camera_remove), }; -static int __init mx1_camera_init(void) -{ - return platform_driver_probe(mx1_camera_driver, mx1_camera_probe); -} - -static void __exit mx1_camera_exit(void) -{ - return platform_driver_unregister(mx1_camera_driver); -} - -module_init(mx1_camera_init); -module_exit(mx1_camera_exit); +module_platform_driver_probe(mx1_camera_driver, mx1_camera_probe); MODULE_DESCRIPTION(i.MX1/i.MXL SoC Camera Host driver); MODULE_AUTHOR(Paulius Zaleckas paulius.zalec...@teltonika.lt); -- 1.8.1.5 --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- Fabio Porcedda -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 04/10] drivers: hwmon: use module_platform_driver_probe()
On Thu, Mar 14, 2013 at 3:01 PM, Guenter Roeck li...@roeck-us.net wrote: On Thu, Mar 14, 2013 at 02:11:25PM +0100, 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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Jean Delvare kh...@linux-fr.org Cc: Guenter Roeck li...@roeck-us.net Cc: lm-sens...@lm-sensors.org --- drivers/hwmon/mc13783-adc.c | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) I have that one already queued for -next, submitted by Jingoo Han. Ok i will drop this patch. Best regards Fabio Porcedda Thanks, Guenter -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 4/8] drivers: input: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Dmitry Torokhov dmitry.torok...@gmail.com Cc: Mark Brown broo...@opensource.wolfsonmicro.com Cc: Liam Girdwood l...@slimlogic.co.uk Cc: Bill Pemberton wf...@virginia.edu Cc: Linus Walleij linus.wall...@linaro.org Cc: David Howells dhowe...@redhat.com Cc: linux-input@vger.kernel.org --- drivers/input/keyboard/amikbd.c | 14 +- drivers/input/keyboard/davinci_keyscan.c| 12 +--- drivers/input/keyboard/nomadik-ske-keypad.c | 12 +--- drivers/input/misc/twl4030-pwrbutton.c | 13 + drivers/input/mouse/amimouse.c | 14 +- drivers/input/serio/at32psif.c | 13 + drivers/input/serio/q40kbd.c| 13 + drivers/input/touchscreen/atmel-wm97xx.c| 12 +--- drivers/input/touchscreen/mc13783_ts.c | 12 +--- 9 files changed, 9 insertions(+), 106 deletions(-) diff --git a/drivers/input/keyboard/amikbd.c b/drivers/input/keyboard/amikbd.c index 79172af..ba0b36f 100644 --- a/drivers/input/keyboard/amikbd.c +++ b/drivers/input/keyboard/amikbd.c @@ -260,18 +260,6 @@ static struct platform_driver amikbd_driver = { }, }; -static int __init amikbd_init(void) -{ - return platform_driver_probe(amikbd_driver, amikbd_probe); -} - -module_init(amikbd_init); - -static void __exit amikbd_exit(void) -{ - platform_driver_unregister(amikbd_driver); -} - -module_exit(amikbd_exit); +module_platform_driver_probe(amikbd_driver, amikbd_probe); MODULE_ALIAS(platform:amiga-keyboard); diff --git a/drivers/input/keyboard/davinci_keyscan.c b/drivers/input/keyboard/davinci_keyscan.c index 4e4e453..8297537 100644 --- a/drivers/input/keyboard/davinci_keyscan.c +++ b/drivers/input/keyboard/davinci_keyscan.c @@ -329,17 +329,7 @@ static struct platform_driver davinci_ks_driver = { .remove = davinci_ks_remove, }; -static int __init davinci_ks_init(void) -{ - return platform_driver_probe(davinci_ks_driver, davinci_ks_probe); -} -module_init(davinci_ks_init); - -static void __exit davinci_ks_exit(void) -{ - platform_driver_unregister(davinci_ks_driver); -} -module_exit(davinci_ks_exit); +module_platform_driver_probe(davinci_ks_driver, davinci_ks_probe); MODULE_AUTHOR(Miguel Aguilar); MODULE_DESCRIPTION(Texas Instruments DaVinci Key Scan Driver); diff --git a/drivers/input/keyboard/nomadik-ske-keypad.c b/drivers/input/keyboard/nomadik-ske-keypad.c index 0e6a815..c7d505c 100644 --- a/drivers/input/keyboard/nomadik-ske-keypad.c +++ b/drivers/input/keyboard/nomadik-ske-keypad.c @@ -430,17 +430,7 @@ static struct platform_driver ske_keypad_driver = { .remove = ske_keypad_remove, }; -static int __init ske_keypad_init(void) -{ - return platform_driver_probe(ske_keypad_driver, ske_keypad_probe); -} -module_init(ske_keypad_init); - -static void __exit ske_keypad_exit(void) -{ - platform_driver_unregister(ske_keypad_driver); -} -module_exit(ske_keypad_exit); +module_platform_driver_probe(ske_keypad_driver, ske_keypad_probe); MODULE_LICENSE(GPL v2); MODULE_AUTHOR(Naveen Kumar naveen.gaddip...@stericsson.com / Sundar Iyer sundar.i...@stericsson.com); diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c index 27c2bc8..1700947 100644 --- a/drivers/input/misc/twl4030-pwrbutton.c +++ b/drivers/input/misc/twl4030-pwrbutton.c @@ -114,18 +114,7 @@ static struct platform_driver twl4030_pwrbutton_driver = { }, }; -static int __init twl4030_pwrbutton_init(void) -{ - return platform_driver_probe(twl4030_pwrbutton_driver, - twl4030_pwrbutton_probe); -} -module_init(twl4030_pwrbutton_init); - -static void __exit twl4030_pwrbutton_exit(void) -{ - platform_driver_unregister(twl4030_pwrbutton_driver); -} -module_exit(twl4030_pwrbutton_exit); +module_platform_driver_probe(twl4030_pwrbutton_driver, twl4030_pwrbutton_probe); MODULE_ALIAS(platform:twl4030_pwrbutton); MODULE_DESCRIPTION(Triton2 Power Button); diff --git a/drivers/input/mouse/amimouse.c b/drivers/input/mouse/amimouse.c index 5fa9934..b55d5af 100644 --- a/drivers/input/mouse/amimouse.c +++ b/drivers/input/mouse/amimouse.c @@ -146,18 +146,6 @@ static struct platform_driver amimouse_driver = { }, }; -static int __init amimouse_init(void) -{ - return platform_driver_probe(amimouse_driver, amimouse_probe); -} - -module_init(amimouse_init); - -static void __exit amimouse_exit(void) -{ - platform_driver_unregister(amimouse_driver); -} - -module_exit(amimouse_exit); +module_platform_driver_probe(amimouse_driver, amimouse_probe); MODULE_ALIAS(platform:amiga-mouse); diff --git a/drivers/input/serio/at32psif.c b/drivers/input/serio/at32psif.c index
[PATCH v2 8/8] drivers: misc: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Arnd Bergmann a...@arndb.de --- drivers/misc/atmel_pwm.c | 12 +--- drivers/misc/ep93xx_pwm.c | 13 + 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/drivers/misc/atmel_pwm.c b/drivers/misc/atmel_pwm.c index 28f5aaa..494d050 100644 --- a/drivers/misc/atmel_pwm.c +++ b/drivers/misc/atmel_pwm.c @@ -393,17 +393,7 @@ static struct platform_driver atmel_pwm_driver = { */ }; -static int __init pwm_init(void) -{ - return platform_driver_probe(atmel_pwm_driver, pwm_probe); -} -module_init(pwm_init); - -static void __exit pwm_exit(void) -{ - platform_driver_unregister(atmel_pwm_driver); -} -module_exit(pwm_exit); +module_platform_driver_probe(atmel_pwm_driver, pwm_probe); MODULE_DESCRIPTION(Driver for AT32/AT91 PWM module); MODULE_LICENSE(GPL); diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 16d7179..96787ec 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -365,18 +365,7 @@ static struct platform_driver ep93xx_pwm_driver = { .remove = __exit_p(ep93xx_pwm_remove), }; -static int __init ep93xx_pwm_init(void) -{ - return platform_driver_probe(ep93xx_pwm_driver, ep93xx_pwm_probe); -} - -static void __exit ep93xx_pwm_exit(void) -{ - platform_driver_unregister(ep93xx_pwm_driver); -} - -module_init(ep93xx_pwm_init); -module_exit(ep93xx_pwm_exit); +module_platform_driver_probe(ep93xx_pwm_driver, ep93xx_pwm_probe); MODULE_AUTHOR(Matthieu Crapet mcra...@gmail.com, H Hartley Sweeten hswee...@visionengravers.com); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 7/8] drivers: video: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Richard Purdie rpur...@rpsys.net Cc: Florian Tobias Schandinat florianschandi...@gmx.de Cc: linux-fb...@vger.kernel.org --- drivers/video/sh_mipi_dsi.c| 12 +--- drivers/video/sh_mobile_hdmi.c | 12 +--- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/drivers/video/sh_mipi_dsi.c b/drivers/video/sh_mipi_dsi.c index 701b461..6cad530 100644 --- a/drivers/video/sh_mipi_dsi.c +++ b/drivers/video/sh_mipi_dsi.c @@ -581,17 +581,7 @@ static struct platform_driver sh_mipi_driver = { }, }; -static int __init sh_mipi_init(void) -{ - return platform_driver_probe(sh_mipi_driver, sh_mipi_probe); -} -module_init(sh_mipi_init); - -static void __exit sh_mipi_exit(void) -{ - platform_driver_unregister(sh_mipi_driver); -} -module_exit(sh_mipi_exit); +module_platform_driver_probe(sh_mipi_driver, sh_mipi_probe); MODULE_AUTHOR(Guennadi Liakhovetski g.liakhovet...@gmx.de); MODULE_DESCRIPTION(SuperH / ARM-shmobile MIPI DSI driver); diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c index 930e550..bfe4728 100644 --- a/drivers/video/sh_mobile_hdmi.c +++ b/drivers/video/sh_mobile_hdmi.c @@ -1445,17 +1445,7 @@ static struct platform_driver sh_hdmi_driver = { }, }; -static int __init sh_hdmi_init(void) -{ - return platform_driver_probe(sh_hdmi_driver, sh_hdmi_probe); -} -module_init(sh_hdmi_init); - -static void __exit sh_hdmi_exit(void) -{ - platform_driver_unregister(sh_hdmi_driver); -} -module_exit(sh_hdmi_exit); +module_platform_driver_probe(sh_hdmi_driver, sh_hdmi_probe); MODULE_AUTHOR(Guennadi Liakhovetski g.liakhovet...@gmx.de); MODULE_DESCRIPTION(SuperH / ARM-shmobile HDMI driver); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 5/8] drivers: memory: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Benoit Cousson b-cous...@ti.com Cc: Aneesh V ane...@ti.com --- drivers/memory/emif.c | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c index df08736..ecbc1a9 100644 --- a/drivers/memory/emif.c +++ b/drivers/memory/emif.c @@ -1841,18 +1841,8 @@ static struct platform_driver emif_driver = { }, }; -static int __init_or_module emif_register(void) -{ - return platform_driver_probe(emif_driver, emif_probe); -} - -static void __exit emif_unregister(void) -{ - platform_driver_unregister(emif_driver); -} +module_platform_driver_probe(emif_driver, emif_probe); -module_init(emif_register); -module_exit(emif_unregister); MODULE_DESCRIPTION(TI EMIF SDRAM Controller Driver); MODULE_LICENSE(GPL); MODULE_ALIAS(platform:emif); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 0/8] Use module_platform_driver_probe() part 2
Hi all, this patch set is the second part for the conversion to use new module_platform_driver_probe() macro. v2: - rebased againg next and so dropped the already converted drivers. Fabio Porcedda (8): drivers: media: use module_platform_driver_probe() drivers: ata: use module_platform_driver_probe() drivers: char: use module_platform_driver_probe() drivers: input: use module_platform_driver_probe() drivers: memory: use module_platform_driver_probe() drivers: mfd: use module_platform_driver_probe() drivers: video: use module_platform_driver_probe() drivers: misc: use module_platform_driver_probe() drivers/ata/pata_at32.c | 13 + drivers/char/hw_random/mxc-rnga.c | 13 + drivers/char/hw_random/tx4939-rng.c | 13 + drivers/input/keyboard/amikbd.c | 14 +- drivers/input/keyboard/davinci_keyscan.c | 12 +--- drivers/input/keyboard/nomadik-ske-keypad.c | 12 +--- drivers/input/misc/twl4030-pwrbutton.c| 13 + drivers/input/mouse/amimouse.c| 14 +- drivers/input/serio/at32psif.c| 13 + drivers/input/serio/q40kbd.c | 13 + drivers/input/touchscreen/atmel-wm97xx.c | 12 +--- drivers/input/touchscreen/mc13783_ts.c| 12 +--- drivers/media/platform/soc_camera/atmel-isi.c | 12 +--- drivers/memory/emif.c | 12 +--- drivers/mfd/davinci_voicecodec.c | 12 +--- drivers/mfd/htc-pasic3.c | 13 + drivers/misc/atmel_pwm.c | 12 +--- drivers/misc/ep93xx_pwm.c | 13 + drivers/video/sh_mipi_dsi.c | 12 +--- drivers/video/sh_mobile_hdmi.c| 12 +--- 20 files changed, 20 insertions(+), 232 deletions(-) -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 2/8] drivers: ata: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Jeff Garzik jgar...@pobox.com Cc: linux-...@vger.kernel.org --- drivers/ata/pata_at32.c | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/ata/pata_at32.c b/drivers/ata/pata_at32.c index 36f189c..8d493b4 100644 --- a/drivers/ata/pata_at32.c +++ b/drivers/ata/pata_at32.c @@ -393,18 +393,7 @@ static struct platform_driver pata_at32_driver = { }, }; -static int __init pata_at32_init(void) -{ - return platform_driver_probe(pata_at32_driver, pata_at32_probe); -} - -static void __exit pata_at32_exit(void) -{ - platform_driver_unregister(pata_at32_driver); -} - -module_init(pata_at32_init); -module_exit(pata_at32_exit); +module_platform_driver_probe(pata_at32_driver, pata_at32_probe); MODULE_LICENSE(GPL); MODULE_DESCRIPTION(AVR32 SMC/CFC PATA Driver); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 6/8] drivers: mfd: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Linus Walleij linus.wall...@linaro.org Cc: Samuel Ortiz sa...@linux.intel.com Cc: linux-arm-ker...@lists.infradead.org --- drivers/mfd/davinci_voicecodec.c | 12 +--- drivers/mfd/htc-pasic3.c | 13 + 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/drivers/mfd/davinci_voicecodec.c b/drivers/mfd/davinci_voicecodec.c index c0bcc87..c60ab0c 100644 --- a/drivers/mfd/davinci_voicecodec.c +++ b/drivers/mfd/davinci_voicecodec.c @@ -177,17 +177,7 @@ static struct platform_driver davinci_vc_driver = { .remove = davinci_vc_remove, }; -static int __init davinci_vc_init(void) -{ - return platform_driver_probe(davinci_vc_driver, davinci_vc_probe); -} -module_init(davinci_vc_init); - -static void __exit davinci_vc_exit(void) -{ - platform_driver_unregister(davinci_vc_driver); -} -module_exit(davinci_vc_exit); +module_platform_driver_probe(davinci_vc_driver, davinci_vc_probe); MODULE_AUTHOR(Miguel Aguilar); MODULE_DESCRIPTION(Texas Instruments DaVinci Voice Codec Core Interface); diff --git a/drivers/mfd/htc-pasic3.c b/drivers/mfd/htc-pasic3.c index 9e5453d..0285fce 100644 --- a/drivers/mfd/htc-pasic3.c +++ b/drivers/mfd/htc-pasic3.c @@ -208,18 +208,7 @@ static struct platform_driver pasic3_driver = { .remove = pasic3_remove, }; -static int __init pasic3_base_init(void) -{ - return platform_driver_probe(pasic3_driver, pasic3_probe); -} - -static void __exit pasic3_base_exit(void) -{ - platform_driver_unregister(pasic3_driver); -} - -module_init(pasic3_base_init); -module_exit(pasic3_base_exit); +module_platform_driver_probe(pasic3_driver, pasic3_probe); MODULE_AUTHOR(Philipp Zabel philipp.za...@gmail.com); MODULE_DESCRIPTION(Core driver for HTC PASIC3); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 3/8] drivers: char: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Matt Mackall m...@selenic.com Cc: Herbert Xu herb...@gondor.apana.org.au Cc: Fabio Estevam fabio.este...@freescale.com Cc: Sascha Hauer s.ha...@pengutronix.de --- drivers/char/hw_random/mxc-rnga.c | 13 + drivers/char/hw_random/tx4939-rng.c | 13 + 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/drivers/char/hw_random/mxc-rnga.c b/drivers/char/hw_random/mxc-rnga.c index f05d857..895d0b8 100644 --- a/drivers/char/hw_random/mxc-rnga.c +++ b/drivers/char/hw_random/mxc-rnga.c @@ -228,18 +228,7 @@ static struct platform_driver mxc_rnga_driver = { .remove = __exit_p(mxc_rnga_remove), }; -static int __init mod_init(void) -{ - return platform_driver_probe(mxc_rnga_driver, mxc_rnga_probe); -} - -static void __exit mod_exit(void) -{ - platform_driver_unregister(mxc_rnga_driver); -} - -module_init(mod_init); -module_exit(mod_exit); +module_platform_driver_probe(mxc_rnga_driver, mxc_rnga_probe); MODULE_AUTHOR(Freescale Semiconductor, Inc.); MODULE_DESCRIPTION(H/W RNGA driver for i.MX); diff --git a/drivers/char/hw_random/tx4939-rng.c b/drivers/char/hw_random/tx4939-rng.c index 3099198..d34a24a 100644 --- a/drivers/char/hw_random/tx4939-rng.c +++ b/drivers/char/hw_random/tx4939-rng.c @@ -166,18 +166,7 @@ static struct platform_driver tx4939_rng_driver = { .remove = tx4939_rng_remove, }; -static int __init tx4939rng_init(void) -{ - return platform_driver_probe(tx4939_rng_driver, tx4939_rng_probe); -} - -static void __exit tx4939rng_exit(void) -{ - platform_driver_unregister(tx4939_rng_driver); -} - -module_init(tx4939rng_init); -module_exit(tx4939rng_exit); +module_platform_driver_probe(tx4939_rng_driver, tx4939_rng_probe); MODULE_DESCRIPTION(H/W Random Number Generator (RNG) driver for TX4939); MODULE_LICENSE(GPL); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 1/8] drivers: media: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Mauro Carvalho Chehab mche...@redhat.com Cc: Josh Wu josh...@atmel.com Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de Cc: Hans Verkuil hans.verk...@cisco.com Cc: linux-me...@vger.kernel.org --- drivers/media/platform/soc_camera/atmel-isi.c | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c index 82dbf99..12ba31d 100644 --- a/drivers/media/platform/soc_camera/atmel-isi.c +++ b/drivers/media/platform/soc_camera/atmel-isi.c @@ -1081,17 +1081,7 @@ static struct platform_driver atmel_isi_driver = { }, }; -static int __init atmel_isi_init_module(void) -{ - return platform_driver_probe(atmel_isi_driver, atmel_isi_probe); -} - -static void __exit atmel_isi_exit(void) -{ - platform_driver_unregister(atmel_isi_driver); -} -module_init(atmel_isi_init_module); -module_exit(atmel_isi_exit); +module_platform_driver_probe(atmel_isi_driver, atmel_isi_probe); MODULE_AUTHOR(Josh Wu josh...@atmel.com); MODULE_DESCRIPTION(The V4L2 driver for Atmel Linux); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 1/8] drivers: media: use module_platform_driver_probe()
On Thu, 14 Mar 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.porce...@gmail.com Thanks, will queue for 3.10. Regards Guennadi Cc: Greg Kroah-Hartman gre...@linuxfoundation.org Cc: Mauro Carvalho Chehab mche...@redhat.com Cc: Josh Wu josh...@atmel.com Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de Cc: Hans Verkuil hans.verk...@cisco.com Cc: linux-me...@vger.kernel.org --- drivers/media/platform/soc_camera/atmel-isi.c | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c index 82dbf99..12ba31d 100644 --- a/drivers/media/platform/soc_camera/atmel-isi.c +++ b/drivers/media/platform/soc_camera/atmel-isi.c @@ -1081,17 +1081,7 @@ static struct platform_driver atmel_isi_driver = { }, }; -static int __init atmel_isi_init_module(void) -{ - return platform_driver_probe(atmel_isi_driver, atmel_isi_probe); -} - -static void __exit atmel_isi_exit(void) -{ - platform_driver_unregister(atmel_isi_driver); -} -module_init(atmel_isi_init_module); -module_exit(atmel_isi_exit); +module_platform_driver_probe(atmel_isi_driver, atmel_isi_probe); MODULE_AUTHOR(Josh Wu josh...@atmel.com); MODULE_DESCRIPTION(The V4L2 driver for Atmel Linux); -- 1.8.1.5 --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 4/8] drivers: input: use module_platform_driver_probe()
Hi Fabio, On Thursday, March 14, 2013 06:09:34 PM 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. I already have patches from Sachin Kamat for this, I am waiting for -rc3 to sync up with mainline and pick up the macro before applying them. Thanks. -- Dmitry -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 4/8] drivers: input: use module_platform_driver_probe()
On Thu, Mar 14, 2013 at 6:30 PM, Dmitry Torokhov dmitry.torok...@gmail.com wrote: Hi Fabio, On Thursday, March 14, 2013 06:09:34 PM 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. I already have patches from Sachin Kamat for this, I am waiting for -rc3 to sync up with mainline and pick up the macro before applying them. Thank for reviewing. I've sent a updated patch without the patch already sent by Sachin Kamat. Best regards Fabio Porcedda Thanks. -- Dmitry -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] drivers: input: use module_platform_driver_probe()
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.porce...@gmail.com Cc: Dmitry Torokhov dmitry.torok...@gmail.com --- v3: - removed already converted drivers drivers/input/touchscreen/mc13783_ts.c | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/input/touchscreen/mc13783_ts.c b/drivers/input/touchscreen/mc13783_ts.c index 02103b6..89308fe 100644 --- a/drivers/input/touchscreen/mc13783_ts.c +++ b/drivers/input/touchscreen/mc13783_ts.c @@ -250,17 +250,7 @@ static struct platform_driver mc13783_ts_driver = { }, }; -static int __init mc13783_ts_init(void) -{ - return platform_driver_probe(mc13783_ts_driver, mc13783_ts_probe); -} -module_init(mc13783_ts_init); - -static void __exit mc13783_ts_exit(void) -{ - platform_driver_unregister(mc13783_ts_driver); -} -module_exit(mc13783_ts_exit); +module_platform_driver_probe(mc13783_ts_driver, mc13783_ts_probe); MODULE_DESCRIPTION(MC13783 input touchscreen driver); MODULE_AUTHOR(Sascha Hauer s.ha...@pengutronix.de); -- 1.8.1.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 2/7] USB: serial: handle suspend failure path correctly
On Thu, Mar 14, 2013 at 7:10 PM, Johan Hovold jhov...@gmail.com wrote: On Fri, Mar 08, 2013 at 12:15:19AM +0800, Ming Lei wrote: This patch kills traffic even though type-suspend returns failure inside usb_serial_suspend from system sleep context because USB core ignores the failiure and lets system sleep go ahread, so the serial URB traffic need to be killed in this case. Cc: Johan Hovold jhov...@gmail.com Signed-off-by: Ming Lei ming@canonical.com --- drivers/usb/serial/usb-serial.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c index a19ed74..9d0b9c8 100644 --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c @@ -1142,10 +1142,11 @@ int usb_serial_suspend(struct usb_interface *intf, pm_message_t message) if (serial-type-suspend) { r = serial-type-suspend(serial, message); - if (r 0) { + if (r 0 PMSG_IS_AUTO(message)) { serial-suspending = 0; goto err_out; } + /* TODO: resume() might need to handle suspend failure */ } for (i = 0; i serial-num_ports; ++i) { Sorry for the late reply. The usb-serial subdriver suspend callbacks do not and must not return non-zero if !PMSG_IS_AUTO(message) so adding code to handle that case merely obfuscates this fact. I'd rather see this documented with a comment just as Bjørn suggested for cdc_mbim and qmi_wwan. No problem, will do it in v3. Thanks, -- Ming Lei -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 0/7] USB: don't recover device if suspend fails in system sleep
Hi, This patch adds comments on interface driver suspend callback to emphasize that the failure return value is ignored by USB core in system sleep context, so do not try to recover device for this case, otherwise the recovery things may confuse resume(). Also fixes USB HID and several usbnet drivers which may recover device in suspend failure path of system sleep. v3: - only 2/7 changed, don't change code but add comments to restrict subdriver-suspend(), suggested by Johan Hovold. v2: - improve comments on suspend callback as suggested by Alan - update kerneldoc for usb_suspend_both as suggested by Alan - remove previous check of PMSG_IS_AUTO(message) in cdc_mbim/ qmi_wwan and add comments on suspend failure case, since Bjørn doesn't like the check. - add comments on smsc95xx/smsc75xx v1: - fix compile failure - add comments about handling suspend failure in resume() drivers/hid/usbhid/hid-core.c | 14 +- drivers/net/usb/cdc_mbim.c |5 + drivers/net/usb/qmi_wwan.c |5 + drivers/net/usb/smsc75xx.c |6 +- drivers/net/usb/smsc95xx.c |6 +- drivers/usb/core/driver.c | 11 --- drivers/usb/serial/usb-serial.c |5 + include/linux/usb.h |7 ++- 8 files changed, 44 insertions(+), 15 deletions(-) Thanks -- Ming Lei -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 1/7] USB: adds comment on suspend callback
This patch adds comments on interface driver suspend callback to emphasize that the failure return value is ignored by USB core in system sleep context, so do not try to recover device for this case and let resume/reset_resume callback handle the suspend failure if needed. Also kerneldoc for usb_suspend_both() is updated with the fact. Acked-by: Alan Stern st...@rowland.harvard.edu Signed-off-by: Ming Lei ming@canonical.com --- drivers/usb/core/driver.c | 11 --- include/linux/usb.h |7 ++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index d938b2b..eb1d00a 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -1196,9 +1196,14 @@ done: * * This is the central routine for suspending USB devices. It calls the * suspend methods for all the interface drivers in @udev and then calls - * the suspend method for @udev itself. If an error occurs at any stage, - * all the interfaces which were suspended are resumed so that they remain - * in the same state as the device. + * the suspend method for @udev itself. When the routine is called in + * autosuspend, if an error occurs at any stage, all the interfaces + * which were suspended are resumed so that they remain in the same + * state as the device, but when called from system sleep, all error + * from suspend methods of interfaces and the non-root-hub device itself + * are simply ignored, so all suspended interfaces are only resumed + * to the device's state when @udev is root-hub and its suspend method + * returns failure. * * Autosuspend requests originating from a child device or an interface * driver may be made without the protection of @udev's device lock, but diff --git a/include/linux/usb.h b/include/linux/usb.h index 4d22d0f..f82ce57 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h @@ -978,7 +978,12 @@ struct usbdrv_wrap { * the usbfs filesystem. This lets devices provide ways to * expose information to user space regardless of where they * do (or don't) show up otherwise in the filesystem. - * @suspend: Called when the device is going to be suspended by the system. + * @suspend: Called when the device is going to be suspended by the + * system either from system sleep or runtime suspend context. The + * return value will be ignored in system sleep context, so do NOT + * try to continue using the device if suspend fails in this case. + * Instead, let the resume or reset-resume routine recover from + * the failure. * @resume: Called when the device is being resumed by the system. * @reset_resume: Called when the suspended device has been reset instead * of being resumed. -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 2/7] USB: serial: comments on suspend failure
If suspend callback fails in system sleep context, usb core will ignore the failure and let system sleep go ahead further, so this patch comments on the case and requires that serial-type-suspend() MUST return 0 in system sleep context. Cc: Johan Hovold jhov...@gmail.com Signed-off-by: Ming Lei ming@canonical.com --- drivers/usb/serial/usb-serial.c |5 + 1 file changed, 5 insertions(+) diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c index a19ed74..16eb02b 100644 --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c @@ -1140,6 +1140,11 @@ int usb_serial_suspend(struct usb_interface *intf, pm_message_t message) serial-suspending = 1; + /* +* serial-type-suspend() MUST return 0 in system sleep context, +* otherwise, the resume callback has to recover device from +* previous suspend failure. +*/ if (serial-type-suspend) { r = serial-type-suspend(serial, message); if (r 0) { -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 3/7] USBHID: don't recover device if suspend fails in system sleep
If suspend callback fails in system sleep context, usb core will ignore the failure and let the system sleep go ahead further, so this patch doesn't recover device under this situation, otherwise may cause resume() confused. Acked-by: Jiri Kosina jkos...@suse.cz Signed-off-by: Ming Lei ming@canonical.com --- drivers/hid/usbhid/hid-core.c | 14 +- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index effcd3d..9941828 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -1520,7 +1520,7 @@ static int hid_suspend(struct usb_interface *intf, pm_message_t message) { struct hid_device *hid = usb_get_intfdata(intf); struct usbhid_device *usbhid = hid-driver_data; - int status; + int status = 0; bool driver_suspended = false; if (PMSG_IS_AUTO(message)) { @@ -1547,19 +1547,15 @@ static int hid_suspend(struct usb_interface *intf, pm_message_t message) } } else { - if (hid-driver hid-driver-suspend) { + /* TODO: resume() might need to handle suspend failure */ + if (hid-driver hid-driver-suspend) status = hid-driver-suspend(hid, message); - if (status 0) - return status; - } driver_suspended = true; spin_lock_irq(usbhid-lock); set_bit(HID_SUSPENDED, usbhid-iofl); spin_unlock_irq(usbhid-lock); - if (usbhid_wait_io(hid) 0) { + if (usbhid_wait_io(hid) 0) status = -EIO; - goto failed; - } } hid_cancel_delayed_stuff(usbhid); @@ -1571,7 +1567,7 @@ static int hid_suspend(struct usb_interface *intf, pm_message_t message) goto failed; } dev_dbg(intf-dev, suspend\n); - return 0; + return status; failed: hid_resume_common(hid, driver_suspended); -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 4/7] usbnet: cdc_mbim: comments on suspend failure
If suspend callback fails in system sleep context, usb core will ignore the failure and let system sleep go ahead further, so this patch comments on the case and requires that both usbnet_suspend() and subdriver-suspend() MUST return 0 in system sleep context. Acked-by: David S. Miller da...@davemloft.net Acked-by: Bjørn Mork bj...@mork.no Signed-off-by: Ming Lei ming@canonical.com --- drivers/net/usb/cdc_mbim.c |5 + 1 file changed, 5 insertions(+) diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c index 248d2dc..406a34d 100644 --- a/drivers/net/usb/cdc_mbim.c +++ b/drivers/net/usb/cdc_mbim.c @@ -332,6 +332,11 @@ static int cdc_mbim_suspend(struct usb_interface *intf, pm_message_t message) goto error; } + /* +* Both usbnet_suspend() and subdriver-suspend() MUST return 0 +* in system sleep context, otherwise, the resume callback has +* to recover device from previous suspend failure. +*/ ret = usbnet_suspend(intf, message); if (ret 0) goto error; -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 5/7] usbnet: qmi_wwan: comments on suspend failure
If suspend callback fails in system sleep context, usb core will ignore the failure and let system sleep go ahead further, so this patch comments on the case and requires that both usbnet_suspend() and subdriver-suspend() MUST return 0 in system sleep context. Acked-by: David S. Miller da...@davemloft.net Acked-by: Bjørn Mork bj...@mork.no Signed-off-by: Ming Lei ming@canonical.com --- drivers/net/usb/qmi_wwan.c |5 + 1 file changed, 5 insertions(+) diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c index 968d5d5..bdceb74 100644 --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c @@ -271,6 +271,11 @@ static int qmi_wwan_suspend(struct usb_interface *intf, pm_message_t message) struct qmi_wwan_state *info = (void *)dev-data; int ret; + /* +* Both usbnet_suspend() and subdriver-suspend() MUST return 0 +* in system sleep context, otherwise, the resume callback has +* to recover device from previous suspend failure. +*/ ret = usbnet_suspend(intf, message); if (ret 0) goto err; -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 6/7] usbnet: smsc95xx: don't recover device if suspend fails in system sleep
If suspend callback fails in system sleep context, usb core will ignore the failure and let system sleep go ahead further, so this patch doesn't recover device under this situation. Also add comments on the case. Acked-by: David S. Miller da...@davemloft.net Cc: Steve Glendinning steve.glendinn...@shawell.net Signed-off-by: Ming Lei ming@canonical.com --- drivers/net/usb/smsc95xx.c |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index e6d2dea..3f38ba8 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -1660,7 +1660,11 @@ static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message) ret = smsc95xx_enter_suspend0(dev); done: - if (ret) + /* +* TODO: resume() might need to handle the suspend failure +* in system sleep +*/ + if (ret PMSG_IS_AUTO(message)) usbnet_resume(intf); return ret; } -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v3 7/7] usbnet: smsc75xx: don't recover device if suspend fails in system sleep
If suspend callback fails in system sleep context, usb core will ignore the failure and let system sleep go ahead further, so this patch doesn't recover device under this situation. Also add comments on this case. Acked-by: David S. Miller da...@davemloft.net Cc: Steve Glendinning steve.glendinn...@shawell.net Signed-off-by: Ming Lei ming@canonical.com --- drivers/net/usb/smsc75xx.c |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c index 9abe517..21b607a 100644 --- a/drivers/net/usb/smsc75xx.c +++ b/drivers/net/usb/smsc75xx.c @@ -2011,7 +2011,11 @@ static int smsc75xx_suspend(struct usb_interface *intf, pm_message_t message) ret = smsc75xx_enter_suspend0(dev); done: - if (ret) + /* +* TODO: resume() might need to handle the suspend failure +* in system sleep +*/ + if (ret PMSG_IS_AUTO(message)) usbnet_resume(intf); return ret; } -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-input in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html