watchdog: Use module_pci_driver
authorWim Van Sebroeck <wim@iguana.be>
Fri, 4 May 2012 12:43:25 +0000 (14:43 +0200)
committerWim Van Sebroeck <wim@iguana.be>
Wed, 23 May 2012 14:23:53 +0000 (16:23 +0200)
This patch converts the PCI watchdog drivers so that they use the
module_pci_driver() macro. This makes the code smaller and simpler.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Cc: Thomas Mingarelli <thomas.mingarelli@hp.com>
Cc: Marc Vertes <marc.vertes@sigfox.com>
drivers/watchdog/hpwdt.c
drivers/watchdog/i6300esb.c
drivers/watchdog/pcwd_pci.c
drivers/watchdog/via_wdt.c
drivers/watchdog/wdt_pci.c

index 23885f2d56a0726c472fd77a7bff0eecdb95f269..2b763815aeecc90ebad7fdf36f17de949d365bfd 100644 (file)
@@ -861,16 +861,6 @@ static struct pci_driver hpwdt_driver = {
        .remove = __devexit_p(hpwdt_exit),
 };
 
-static void __exit hpwdt_cleanup(void)
-{
-       pci_unregister_driver(&hpwdt_driver);
-}
-
-static int __init hpwdt_init(void)
-{
-       return pci_register_driver(&hpwdt_driver);
-}
-
 MODULE_AUTHOR("Tom Mingarelli");
 MODULE_DESCRIPTION("hp watchdog driver");
 MODULE_LICENSE("GPL");
@@ -889,5 +879,4 @@ module_param(allow_kdump, int, 0);
 MODULE_PARM_DESC(allow_kdump, "Start a kernel dump after NMI occurs");
 #endif /* !CONFIG_HPWDT_NMI_DECODING */
 
-module_init(hpwdt_init);
-module_exit(hpwdt_cleanup);
+module_pci_driver(hpwdt_driver);
index 738032a36bcf013fef05babb92471d9b63ddaafc..276877d5b6a3f538c430d366d6b0905cbf4cf2d3 100644 (file)
@@ -492,19 +492,7 @@ static struct pci_driver esb_driver = {
        .shutdown       = esb_shutdown,
 };
 
-static int __init watchdog_init(void)
-{
-       return pci_register_driver(&esb_driver);
-}
-
-static void __exit watchdog_cleanup(void)
-{
-       pci_unregister_driver(&esb_driver);
-       pr_info("Watchdog Module Unloaded\n");
-}
-
-module_init(watchdog_init);
-module_exit(watchdog_cleanup);
+module_pci_driver(esb_driver);
 
 MODULE_AUTHOR("Ross Biro and David Härdeman");
 MODULE_DESCRIPTION("Watchdog driver for Intel 6300ESB chipsets");
index c891399bed6ae9022915cbe3c12e566aada25f38..ee6900da8678720dcbfb62251e48483ec7325ba6 100644 (file)
@@ -707,6 +707,7 @@ static int __devinit pcipcwd_card_init(struct pci_dev *pdev,
                goto err_out_disable_device;
        }
 
+       spin_lock_init(&pcipcwd_private.io_lock);
        pcipcwd_private.pdev = pdev;
        pcipcwd_private.io_addr = pci_resource_start(pdev, 0);
 
@@ -814,22 +815,7 @@ static struct pci_driver pcipcwd_driver = {
        .remove         = __devexit_p(pcipcwd_card_exit),
 };
 
-static int __init pcipcwd_init_module(void)
-{
-       spin_lock_init(&pcipcwd_private.io_lock);
-
-       return pci_register_driver(&pcipcwd_driver);
-}
-
-static void __exit pcipcwd_cleanup_module(void)
-{
-       pci_unregister_driver(&pcipcwd_driver);
-
-       pr_info("Watchdog Module Unloaded\n");
-}
-
-module_init(pcipcwd_init_module);
-module_exit(pcipcwd_cleanup_module);
+module_pci_driver(pcipcwd_driver);
 
 MODULE_AUTHOR("Wim Van Sebroeck <wim@iguana.be>");
 MODULE_DESCRIPTION("Berkshire PCI-PC Watchdog driver");
index 465e08273c972c3df5ca01bcf9a44487520cc0bc..5603e31afdab03e8d67ad97151f772b879dd015e 100644 (file)
@@ -202,6 +202,9 @@ static int __devinit wdt_probe(struct pci_dev *pdev,
                goto err_out_release;
        }
 
+       if (timeout < 1 || timeout > WDT_TIMEOUT_MAX)
+               timeout = WDT_TIMEOUT;
+
        wdt_dev.timeout = timeout;
        watchdog_set_nowayout(&wdt_dev, nowayout);
        if (readl(wdt_mem) & VIA_WDT_FIRED)
@@ -250,20 +253,7 @@ static struct pci_driver wdt_driver = {
        .remove         = __devexit_p(wdt_remove),
 };
 
-static int __init wdt_init(void)
-{
-       if (timeout < 1 || timeout > WDT_TIMEOUT_MAX)
-               timeout = WDT_TIMEOUT;
-       return pci_register_driver(&wdt_driver);
-}
-
-static void __exit wdt_exit(void)
-{
-       pci_unregister_driver(&wdt_driver);
-}
-
-module_init(wdt_init);
-module_exit(wdt_exit);
+module_pci_driver(wdt_driver);
 
 MODULE_AUTHOR("Marc Vertes");
 MODULE_DESCRIPTION("Driver for watchdog timer on VIA chipset");
index 1c888c7d4cce4178fdd795657766761f074d9c75..e32654efdbb6f30f36595051f54c432e73c0b1b3 100644 (file)
@@ -739,39 +739,7 @@ static struct pci_driver wdtpci_driver = {
        .remove         = __devexit_p(wdtpci_remove_one),
 };
 
-
-/**
- *     wdtpci_cleanup:
- *
- *     Unload the watchdog. You cannot do this with any file handles open.
- *     If your watchdog is set to continue ticking on close and you unload
- *     it, well it keeps ticking. We won't get the interrupt but the board
- *     will not touch PC memory so all is fine. You just have to load a new
- *     module in xx seconds or reboot.
- */
-
-static void __exit wdtpci_cleanup(void)
-{
-       pci_unregister_driver(&wdtpci_driver);
-}
-
-
-/**
- *     wdtpci_init:
- *
- *     Set up the WDT watchdog board. All we have to do is grab the
- *     resources we require and bitch if anyone beat us to them.
- *     The open() function will actually kick the board off.
- */
-
-static int __init wdtpci_init(void)
-{
-       return pci_register_driver(&wdtpci_driver);
-}
-
-
-module_init(wdtpci_init);
-module_exit(wdtpci_cleanup);
+module_pci_driver(wdtpci_driver);
 
 MODULE_AUTHOR("JP Nollmann, Alan Cox");
 MODULE_DESCRIPTION("Driver for the ICS PCI-WDT500/501 watchdog cards");