]> err.no Git - linux-2.6/blobdiff - drivers/watchdog/davinci_wdt.c
ALSA: wm8750: add missing VREF output
[linux-2.6] / drivers / watchdog / davinci_wdt.c
index 19db5302ba6efffa7fde8b3077361d514fc9ecdd..2e1360286732c8e3ca10ea93c25721e4ead43560 100644 (file)
 #include <linux/bitops.h>
 #include <linux/platform_device.h>
 #include <linux/spinlock.h>
-
-#include <asm/hardware.h>
-#include <asm/uaccess.h>
-#include <asm/io.h>
+#include <linux/uaccess.h>
+#include <linux/io.h>
+#include <mach/hardware.h>
 
 #define MODULE_NAME "DAVINCI-WDT: "
 
@@ -61,7 +60,7 @@
 
 static int heartbeat = DEFAULT_HEARTBEAT;
 
-static spinlock_t io_lock;
+static DEFINE_SPINLOCK(io_lock);
 static unsigned long wdt_status;
 #define WDT_IN_USE        0
 #define WDT_OK_TO_CLOSE   1
@@ -143,9 +142,8 @@ static struct watchdog_info ident = {
        .identity = "DaVinci Watchdog",
 };
 
-static int
-davinci_wdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
-                 unsigned long arg)
+static long davinci_wdt_ioctl(struct file *file,
+                                       unsigned int cmd, unsigned long arg)
 {
        int ret = -ENOTTY;
 
@@ -160,14 +158,14 @@ davinci_wdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
                ret = put_user(0, (int *)arg);
                break;
 
-       case WDIOC_GETTIMEOUT:
-               ret = put_user(heartbeat, (int *)arg);
-               break;
-
        case WDIOC_KEEPALIVE:
                wdt_service();
                ret = 0;
                break;
+
+       case WDIOC_GETTIMEOUT:
+               ret = put_user(heartbeat, (int *)arg);
+               break;
        }
        return ret;
 }
@@ -184,7 +182,7 @@ static const struct file_operations davinci_wdt_fops = {
        .owner = THIS_MODULE,
        .llseek = no_llseek,
        .write = davinci_wdt_write,
-       .ioctl = davinci_wdt_ioctl,
+       .unlocked_ioctl = davinci_wdt_ioctl,
        .open = davinci_wdt_open,
        .release = davinci_wdt_release,
 };
@@ -200,8 +198,6 @@ static int davinci_wdt_probe(struct platform_device *pdev)
        int ret = 0, size;
        struct resource *res;
 
-       spin_lock_init(&io_lock);
-
        if (heartbeat < 1 || heartbeat > MAX_HEARTBEAT)
                heartbeat = DEFAULT_HEARTBEAT;
 
@@ -250,6 +246,7 @@ static int davinci_wdt_remove(struct platform_device *pdev)
 static struct platform_driver platform_wdt_driver = {
        .driver = {
                .name = "watchdog",
+               .owner  = THIS_MODULE,
        },
        .probe = davinci_wdt_probe,
        .remove = davinci_wdt_remove,
@@ -262,7 +259,7 @@ static int __init davinci_wdt_init(void)
 
 static void __exit davinci_wdt_exit(void)
 {
-       return platform_driver_unregister(&platform_wdt_driver);
+       platform_driver_unregister(&platform_wdt_driver);
 }
 
 module_init(davinci_wdt_init);
@@ -279,3 +276,4 @@ MODULE_PARM_DESC(heartbeat,
 
 MODULE_LICENSE("GPL");
 MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
+MODULE_ALIAS("platform:watchdog");