X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Faruba-2.6%2Ffiles%2Fdrivers%2Fchar%2Fwatchdog%2Fwdt_merlot.c;fp=target%2Flinux%2Faruba-2.6%2Ffiles%2Fdrivers%2Fchar%2Fwatchdog%2Fwdt_merlot.c;h=0000000000000000000000000000000000000000;hb=364a834a368b12fa72c0eed9ab9d15a55cc95aa5;hp=ef5e52aa04f1bb7a6c8b6f1abe822593c3cbfe57;hpb=c600a0e3192f039070fd20f0644b21b5c7a4ada9;p=openwrt%2Fsvn-archive%2Farchive.git diff --git a/target/linux/aruba-2.6/files/drivers/char/watchdog/wdt_merlot.c b/target/linux/aruba-2.6/files/drivers/char/watchdog/wdt_merlot.c deleted file mode 100644 index ef5e52aa04..0000000000 --- a/target/linux/aruba-2.6/files/drivers/char/watchdog/wdt_merlot.c +++ /dev/null @@ -1,112 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -extern unsigned long mips_machtype; - -static unsigned long wdt_is_open; -static struct timer_list wdt_timer; - -static void wdt_merlot_refresh(void) -{ - volatile __u32 *wdt; - switch (mips_machtype) { - case MACH_ARUBA_AP70: - wdt = (__u32 *) 0xb8030034; - *wdt = 0x10000000; - break; - default: - wdt = (__u32 *) 0xbc00300c; - *wdt = 0x40000000; - break; - } -} - -static void wdt_merlot_timer_fn(unsigned long data) -{ - wdt_merlot_refresh(); - if (!test_bit(1, &wdt_is_open)) - mod_timer(&wdt_timer, jiffies + HZ); -} - -static int wdt_merlot_setup_timer(void) -{ - - init_timer(&wdt_timer); - wdt_timer.function = wdt_merlot_timer_fn; - wdt_timer.data = 0; - wdt_timer.expires = jiffies + HZ; - add_timer(&wdt_timer); - return 0; -} - -static int wdt_open(struct inode *inode, struct file *file) -{ - if (test_and_set_bit(0, &wdt_is_open)) - return -EBUSY; - set_bit(1, &wdt_is_open); - return nonseekable_open(inode, file); -} - -static ssize_t wdt_write(struct file *file, const char __user * buf, size_t count, loff_t * ppos) -{ - if (count) /* something was written */ - wdt_merlot_refresh(); - return count; -} - -static int wdt_release(struct inode *inode, struct file *file) -{ - clear_bit(0, &wdt_is_open); - return 0; -} - -static struct file_operations wdt_fops = { - .owner = THIS_MODULE, - .llseek = no_llseek, - .write = wdt_write, - .open = wdt_open, - .release = wdt_release, -}; - -static struct miscdevice wdt_miscdev = { - .minor = WATCHDOG_MINOR, - .name = "watchdog", - .fops = &wdt_fops, -}; - -static void __exit wdt_exit(void) -{ - misc_deregister(&wdt_miscdev); -} - -static int __init wdt_init(void) -{ - int ret; - ret = misc_register(&wdt_miscdev); - if (ret) { - printk(KERN_ERR - "wdt: cannot register miscdev on minor=%d (err=%d)\n", - WATCHDOG_MINOR, ret); - misc_deregister(&wdt_miscdev); - goto out; - } - printk("wdt: registered with refresh\n"); - wdt_merlot_refresh(); - wdt_merlot_setup_timer(); - out: - return ret; -} - -module_init(wdt_init); -module_exit(wdt_exit);