aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/watchdog/s3c2410_wdt.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-10-23 18:56:26 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-23 18:56:26 -0400
commit6d03a68e6d5528630955452ec4b768dbde0dc00c (patch)
tree56e843eec067ddba67fc098196b17e22c56d302f /drivers/char/watchdog/s3c2410_wdt.c
parent0c0e4668e0e65dd1404e8cf066d147235f95561d (diff)
parentcbf40d3f04c2c76a58f1183bb4a9a82fefb842e3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: (33 commits) [WATCHDOG] remove experimental on iTCO_wdt.c [WATCHDOG] Atmel AT91RM9200 rename. [WATCHDOG] includes for sample watchdog program. [WATCHDOG] watchdog/iTCO_wdt: fix bug related to gcc uninit warning [WATCHDOG] add ich8 support to iTCO_wdt.c (patch 2) [WATCHDOG] add ich8 support to iTCO_wdt.c [WATCHDOG] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c [WATCHDOG] w83697hf/hg WDT driver - Kconfig patch [WATCHDOG] w83697hf/hg WDT driver - autodetect patch [WATCHDOG] w83697hf/hg WDT driver - patch 16 [WATCHDOG] w83697hf/hg WDT driver - patch 15 [WATCHDOG] w83697hf/hg WDT driver - patch 14 [WATCHDOG] w83697hf/hg WDT driver - patch 13 [WATCHDOG] w83697hf/hg WDT driver - patch 12 [WATCHDOG] w83697hf/hg WDT driver - patch 11 [WATCHDOG] w83697hf/hg WDT driver - patch 10 [WATCHDOG] w83697hf/hg WDT driver - patch 9 [WATCHDOG] w83697hf/hg WDT driver - patch 8 [WATCHDOG] w83697hf/hg WDT driver - patch 7 [WATCHDOG] w83697hf/hg WDT driver - patch 6 ...
Diffstat (limited to 'drivers/char/watchdog/s3c2410_wdt.c')
-rw-r--r--drivers/char/watchdog/s3c2410_wdt.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/char/watchdog/s3c2410_wdt.c b/drivers/char/watchdog/s3c2410_wdt.c
index 68b1ca976d53..18cb050c3862 100644
--- a/drivers/char/watchdog/s3c2410_wdt.c
+++ b/drivers/char/watchdog/s3c2410_wdt.c
@@ -380,18 +380,21 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
380 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 380 res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
381 if (res == NULL) { 381 if (res == NULL) {
382 printk(KERN_INFO PFX "failed to get irq resource\n"); 382 printk(KERN_INFO PFX "failed to get irq resource\n");
383 iounmap(wdt_base);
383 return -ENOENT; 384 return -ENOENT;
384 } 385 }
385 386
386 ret = request_irq(res->start, s3c2410wdt_irq, 0, pdev->name, pdev); 387 ret = request_irq(res->start, s3c2410wdt_irq, 0, pdev->name, pdev);
387 if (ret != 0) { 388 if (ret != 0) {
388 printk(KERN_INFO PFX "failed to install irq (%d)\n", ret); 389 printk(KERN_INFO PFX "failed to install irq (%d)\n", ret);
390 iounmap(wdt_base);
389 return ret; 391 return ret;
390 } 392 }
391 393
392 wdt_clock = clk_get(&pdev->dev, "watchdog"); 394 wdt_clock = clk_get(&pdev->dev, "watchdog");
393 if (wdt_clock == NULL) { 395 if (wdt_clock == NULL) {
394 printk(KERN_INFO PFX "failed to find watchdog clock source\n"); 396 printk(KERN_INFO PFX "failed to find watchdog clock source\n");
397 iounmap(wdt_base);
395 return -ENOENT; 398 return -ENOENT;
396 } 399 }
397 400
@@ -415,6 +418,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
415 if (ret) { 418 if (ret) {
416 printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n", 419 printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",
417 WATCHDOG_MINOR, ret); 420 WATCHDOG_MINOR, ret);
421 iounmap(wdt_base);
418 return ret; 422 return ret;
419 } 423 }
420 424
@@ -451,6 +455,7 @@ static int s3c2410wdt_remove(struct platform_device *dev)
451 wdt_clock = NULL; 455 wdt_clock = NULL;
452 } 456 }
453 457
458 iounmap(wdt_base);
454 misc_deregister(&s3c2410wdt_miscdev); 459 misc_deregister(&s3c2410wdt_miscdev);
455 return 0; 460 return 0;
456} 461}