提交 d9405057 编写于 作者: L Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog

* master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
  [WATCHDOG] pcwd_usb.c generic HID include file
  [WATCHDOG] watchdog miscdevice patch
  [WATCHDOG] rm9k_wdt: fix interrupt handler arguments
  [WATCHDOG] rm9k_wdt: fix compilation
...@@ -203,9 +203,9 @@ static int __init at91wdt_probe(struct platform_device *pdev) ...@@ -203,9 +203,9 @@ static int __init at91wdt_probe(struct platform_device *pdev)
{ {
int res; int res;
if (at91wdt_miscdev.dev) if (at91wdt_miscdev.parent)
return -EBUSY; return -EBUSY;
at91wdt_miscdev.dev = &pdev->dev; at91wdt_miscdev.parent = &pdev->dev;
res = misc_register(&at91wdt_miscdev); res = misc_register(&at91wdt_miscdev);
if (res) if (res)
...@@ -221,7 +221,7 @@ static int __exit at91wdt_remove(struct platform_device *pdev) ...@@ -221,7 +221,7 @@ static int __exit at91wdt_remove(struct platform_device *pdev)
res = misc_deregister(&at91wdt_miscdev); res = misc_deregister(&at91wdt_miscdev);
if (!res) if (!res)
at91wdt_miscdev.dev = NULL; at91wdt_miscdev.parent = NULL;
return res; return res;
} }
......
...@@ -347,7 +347,7 @@ static int __devinit mpcore_wdt_probe(struct platform_device *dev) ...@@ -347,7 +347,7 @@ static int __devinit mpcore_wdt_probe(struct platform_device *dev)
goto err_free; goto err_free;
} }
mpcore_wdt_miscdev.dev = &dev->dev; mpcore_wdt_miscdev.parent = &dev->dev;
ret = misc_register(&mpcore_wdt_miscdev); ret = misc_register(&mpcore_wdt_miscdev);
if (ret) { if (ret) {
dev_printk(KERN_ERR, _dev, "cannot register miscdev on minor=%d (err=%d)\n", dev_printk(KERN_ERR, _dev, "cannot register miscdev on minor=%d (err=%d)\n",
......
...@@ -290,7 +290,7 @@ static int __init omap_wdt_probe(struct platform_device *pdev) ...@@ -290,7 +290,7 @@ static int __init omap_wdt_probe(struct platform_device *pdev)
omap_wdt_disable(); omap_wdt_disable();
omap_wdt_adjust_timeout(timer_margin); omap_wdt_adjust_timeout(timer_margin);
omap_wdt_miscdev.dev = &pdev->dev; omap_wdt_miscdev.parent = &pdev->dev;
ret = misc_register(&omap_wdt_miscdev); ret = misc_register(&omap_wdt_miscdev);
if (ret) if (ret)
goto fail; goto fail;
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <linux/usb.h> #include <linux/usb.h>
#include <linux/mutex.h> #include <linux/mutex.h>
#include <linux/hid.h> /* For HID_REQ_SET_REPORT & HID_DT_REPORT */
#ifdef CONFIG_USB_DEBUG #ifdef CONFIG_USB_DEBUG
...@@ -109,10 +110,6 @@ MODULE_DEVICE_TABLE (usb, usb_pcwd_table); ...@@ -109,10 +110,6 @@ MODULE_DEVICE_TABLE (usb, usb_pcwd_table);
#define CMD_ENABLE_WATCHDOG 0x30 /* Enable / Disable Watchdog */ #define CMD_ENABLE_WATCHDOG 0x30 /* Enable / Disable Watchdog */
#define CMD_DISABLE_WATCHDOG CMD_ENABLE_WATCHDOG #define CMD_DISABLE_WATCHDOG CMD_ENABLE_WATCHDOG
/* Some defines that I like to be somewhere else like include/linux/usb_hid.h */
#define HID_REQ_SET_REPORT 0x09
#define HID_DT_REPORT (USB_TYPE_CLASS | 0x02)
/* We can only use 1 card due to the /dev/watchdog restriction */ /* We can only use 1 card due to the /dev/watchdog restriction */
static int cards_found; static int cards_found;
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
/* Function prototypes */ /* Function prototypes */
static irqreturn_t wdt_gpi_irqhdl(int, void *, struct pt_regs *); static irqreturn_t wdt_gpi_irqhdl(int, void *);
static void wdt_gpi_start(void); static void wdt_gpi_start(void);
static void wdt_gpi_stop(void); static void wdt_gpi_stop(void);
static void wdt_gpi_set_timeout(unsigned int); static void wdt_gpi_set_timeout(unsigned int);
...@@ -94,8 +94,28 @@ module_param(nowayout, bool, 0444); ...@@ -94,8 +94,28 @@ module_param(nowayout, bool, 0444);
MODULE_PARM_DESC(nowayout, "Watchdog cannot be disabled once started"); MODULE_PARM_DESC(nowayout, "Watchdog cannot be disabled once started");
/* Kernel interfaces */
static struct file_operations fops = {
.owner = THIS_MODULE,
.open = wdt_gpi_open,
.release = wdt_gpi_release,
.write = wdt_gpi_write,
.unlocked_ioctl = wdt_gpi_ioctl,
};
static struct miscdevice miscdev = {
.minor = WATCHDOG_MINOR,
.name = wdt_gpi_name,
.fops = &fops,
};
static struct notifier_block wdt_gpi_shutdown = {
.notifier_call = wdt_gpi_notify,
};
/* Interrupt handler */ /* Interrupt handler */
static irqreturn_t wdt_gpi_irqhdl(int irq, void *ctxt, struct pt_regs *regs) static irqreturn_t wdt_gpi_irqhdl(int irq, void *ctxt)
{ {
if (!unlikely(__raw_readl(wd_regs + 0x0008) & 0x1)) if (!unlikely(__raw_readl(wd_regs + 0x0008) & 0x1))
return IRQ_NONE; return IRQ_NONE;
...@@ -312,26 +332,6 @@ wdt_gpi_notify(struct notifier_block *this, unsigned long code, void *unused) ...@@ -312,26 +332,6 @@ wdt_gpi_notify(struct notifier_block *this, unsigned long code, void *unused)
} }
/* Kernel interfaces */
static struct file_operations fops = {
.owner = THIS_MODULE,
.open = wdt_gpi_open,
.release = wdt_gpi_release,
.write = wdt_gpi_write,
.unlocked_ioctl = wdt_gpi_ioctl,
};
static struct miscdevice miscdev = {
.minor = WATCHDOG_MINOR,
.name = wdt_gpi_name,
.fops = &fops,
};
static struct notifier_block wdt_gpi_shutdown = {
.notifier_call = wdt_gpi_notify,
};
/* Init & exit procedures */ /* Init & exit procedures */
static const struct resource * static const struct resource *
wdt_gpi_get_resource(struct platform_device *pdv, const char *name, wdt_gpi_get_resource(struct platform_device *pdv, const char *name,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册