Re: [PATCH v2 2/7] USB: serial: handle suspend failure path correctly

2013-03-14 Thread Johan Hovold
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Guennadi Liakhovetski
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()

2013-03-14 Thread Arnd Bergmann
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()

2013-03-14 Thread Guenter Roeck
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()

2013-03-14 Thread Sascha Hauer
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

2013-03-14 Thread David Woodhouse
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Guennadi Liakhovetski
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()

2013-03-14 Thread Dmitry Torokhov
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()

2013-03-14 Thread Fabio Porcedda
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()

2013-03-14 Thread Fabio Porcedda
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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

2013-03-14 Thread Ming Lei
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