Thread (9 messages) 9 messages, 6 authors, 2012-10-16
DORMANTno replies

[PATCH 2/2] ASoC: atmel-ssc: use module_platform_driver macro

From: Fabio Porcedda <hidden>
Date: 2012-10-16 09:32:38
Also in: alsa-devel, linux-sound

On Tue, Oct 16, 2012 at 5:56 AM, Bo Shen [off-list ref] wrote:
quoted hunk ↗ jump to hunk
This patch removes some code duplication by using module_platform_driver

Signed-off-by: Bo Shen <redacted>
---
 drivers/misc/atmel-ssc.c |   18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/drivers/misc/atmel-ssc.c b/drivers/misc/atmel-ssc.c
index 23dcb76..ac00f83 100644
--- a/drivers/misc/atmel-ssc.c
+++ b/drivers/misc/atmel-ssc.c
@@ -68,7 +68,7 @@ void ssc_free(struct ssc_device *ssc)
 }
 EXPORT_SYMBOL(ssc_free);

-static int __init ssc_probe(struct platform_device *pdev)
+static int ssc_probe(struct platform_device *pdev)
 {
        struct resource *regs;
        struct ssc_device *ssc;
@@ -135,24 +135,14 @@ static int __devexit ssc_remove(struct platform_device *pdev)
 }

 static struct platform_driver ssc_driver = {
-       .remove         = __devexit_p(ssc_remove),
        .driver         = {
                .name           = "ssc",
                .owner          = THIS_MODULE,
        },
+       .probe          = ssc_probe,
+       .remove         = __devexit_p(ssc_remove),
 };
-
-static int __init ssc_init(void)
-{
-       return platform_driver_probe(&ssc_driver, ssc_probe);
-}
-module_init(ssc_init);
-
-static void __exit ssc_exit(void)
-{
-       platform_driver_unregister(&ssc_driver);
-}
-module_exit(ssc_exit);
+module_platform_driver(ssc_driver);

 MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>");
 MODULE_DESCRIPTION("SSC driver for Atmel AVR32 and AT91");
--
1.7.9.5
Maybe the module_platform_driver isn't a substitute of platform_driver_probe,
because module_platform_driver  use platform_driver_register/unregister.
Using that macro we lose the advantage of platform_driver_probe,
as stated in:

https://lkml.org/lkml/2012/1/10/335
On Tue, Jan 10, 2012 at 21:47, Geert Uytterhoeven [off-list ref] wrote:
[...]
Still, setting up platform_driver.probe and removing __init from all probe
functions is not the right thing to do, as this make (non-__init) kernel code
size bigger, while none of these devices are hotpluggable and thus cannot
appear after bootup. That's why we have platform_driver_probe() in the
first place. So I think all of this should be reverted for non-hotpluggable
drivers.
[...]
What do you think?

Best regards
-- 
Fabio Porcedda
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help