[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHkwnC8CTFxrJ8F=u=MqKW=cZ88SeoT+rA_hzW38jL8ffT9D2Q@mail.gmail.com>
Date: Tue, 8 Jan 2013 11:17:43 +0100
From: Fabio Porcedda <fabio.porcedda@...il.com>
To: Wenyou Yang <wenyou.yang@...el.com>
Cc: linux-arm-kernel@...ts.infradead.org,
Nicolas Ferre <nicolas.ferre@...el.com>,
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@...osoft.com>,
JM.Lin@...el.com, Wim Van Sebroeck <wim@...ana.be>,
linux-watchdog@...r.kernel.org, linux-kernel@...r.kernel.org,
Geert Uytterhoeven <geert@...ux-m68k.org>
Subject: Re: [v3 PATCH 7/9] watchdog/at91sam9_wdt: Use module_platform_driver()
On Sat, Jan 5, 2013 at 3:38 AM, Wenyou Yang <wenyou.yang@...el.com> wrote:
> Using module_platform_driver() replaces module_init() and module_exit()
> and makes the code simpler.
>
> Remove '__init' annotation from the function 'at91wdt_probe'
> since the driver becomes hot-plug aware now.
>
> Signed-off-by: Wenyou Yang <wenyou.yang@...el.com>
> Cc: wim@...ana.be
> Cc: linux-watchdog@...r.kernel.org
> Cc: linux-kernel@...r.kernel.org
> ---
> drivers/watchdog/at91sam9_wdt.c | 16 +++-------------
> 1 file changed, 3 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c
> index 94be9d6..7c13dda 100644
> --- a/drivers/watchdog/at91sam9_wdt.c
> +++ b/drivers/watchdog/at91sam9_wdt.c
> @@ -204,7 +204,7 @@ static struct watchdog_device at91wdt_wdd = {
> .ops = &at91wdt_ops,
> };
>
> -static int __init at91wdt_probe(struct platform_device *pdev)
> +static int at91wdt_probe(struct platform_device *pdev)
> {
> struct at91wdt_drvdata *driver_data;
> struct resource *r;
> @@ -273,6 +273,7 @@ MODULE_DEVICE_TABLE(of, at91_wdt_dt_ids);
> #endif
>
> static struct platform_driver at91wdt_driver = {
> + .probe = at91wdt_probe,
> .remove = __exit_p(at91wdt_remove),
> .driver = {
> .name = "at91_wdt",
> @@ -281,18 +282,7 @@ static struct platform_driver at91wdt_driver = {
> },
> };
>
> -static int __init at91sam_wdt_init(void)
> -{
> - return platform_driver_probe(&at91wdt_driver, at91wdt_probe);
> -}
> -
> -static void __exit at91sam_wdt_exit(void)
> -{
> - platform_driver_unregister(&at91wdt_driver);
> -}
> -
> -module_init(at91sam_wdt_init);
> -module_exit(at91sam_wdt_exit);
> +module_platform_driver(at91wdt_driver);
>
> MODULE_AUTHOR("Renaud CERRATO <r.cerrato@...-technologies.fr>");
> MODULE_DESCRIPTION("Watchdog driver for Atmel AT91SAM9x processors");
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
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 <geert@...ux-m68k.org> 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.
> [...]
Best regards
--
Fabio Porcedda
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists