aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/sa1100fb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/sa1100fb.c')
-rw-r--r--drivers/video/sa1100fb.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c
index 2ea1354e439f..087e58689e4c 100644
--- a/drivers/video/sa1100fb.c
+++ b/drivers/video/sa1100fb.c
@@ -178,7 +178,6 @@
178 178
179#include <asm/hardware.h> 179#include <asm/hardware.h>
180#include <asm/io.h> 180#include <asm/io.h>
181#include <asm/irq.h>
182#include <asm/mach-types.h> 181#include <asm/mach-types.h>
183#include <asm/uaccess.h> 182#include <asm/uaccess.h>
184#include <asm/arch/assabet.h> 183#include <asm/arch/assabet.h>
@@ -1455,7 +1454,11 @@ static struct sa1100fb_info * __init sa1100fb_init_fbinfo(struct device *dev)
1455static int __init sa1100fb_probe(struct platform_device *pdev) 1454static int __init sa1100fb_probe(struct platform_device *pdev)
1456{ 1455{
1457 struct sa1100fb_info *fbi; 1456 struct sa1100fb_info *fbi;
1458 int ret; 1457 int ret, irq;
1458
1459 irq = platform_get_irq(pdev, 0);
1460 if (irq <= 0)
1461 return -EINVAL;
1459 1462
1460 if (!request_mem_region(0xb0100000, 0x10000, "LCD")) 1463 if (!request_mem_region(0xb0100000, 0x10000, "LCD"))
1461 return -EBUSY; 1464 return -EBUSY;
@@ -1470,7 +1473,7 @@ static int __init sa1100fb_probe(struct platform_device *pdev)
1470 if (ret) 1473 if (ret)
1471 goto failed; 1474 goto failed;
1472 1475
1473 ret = request_irq(IRQ_LCD, sa1100fb_handle_irq, SA_INTERRUPT, 1476 ret = request_irq(irq, sa1100fb_handle_irq, SA_INTERRUPT,
1474 "LCD", fbi); 1477 "LCD", fbi);
1475 if (ret) { 1478 if (ret) {
1476 printk(KERN_ERR "sa1100fb: request_irq failed: %d\n", ret); 1479 printk(KERN_ERR "sa1100fb: request_irq failed: %d\n", ret);
@@ -1492,7 +1495,7 @@ static int __init sa1100fb_probe(struct platform_device *pdev)
1492 1495
1493 ret = register_framebuffer(&fbi->fb); 1496 ret = register_framebuffer(&fbi->fb);
1494 if (ret < 0) 1497 if (ret < 0)
1495 goto failed; 1498 goto err_free_irq;
1496 1499
1497#ifdef CONFIG_CPU_FREQ 1500#ifdef CONFIG_CPU_FREQ
1498 fbi->freq_transition.notifier_call = sa1100fb_freq_transition; 1501 fbi->freq_transition.notifier_call = sa1100fb_freq_transition;
@@ -1504,7 +1507,9 @@ static int __init sa1100fb_probe(struct platform_device *pdev)
1504 /* This driver cannot be unloaded at the moment */ 1507 /* This driver cannot be unloaded at the moment */
1505 return 0; 1508 return 0;
1506 1509
1507failed: 1510 err_free_irq:
1511 free_irq(irq, fbi);
1512 failed:
1508 platform_set_drvdata(pdev, NULL); 1513 platform_set_drvdata(pdev, NULL);
1509 kfree(fbi); 1514 kfree(fbi);
1510 release_mem_region(0xb0100000, 0x10000); 1515 release_mem_region(0xb0100000, 0x10000);