diff options
Diffstat (limited to 'drivers/video/sa1100fb.c')
-rw-r--r-- | drivers/video/sa1100fb.c | 15 |
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) | |||
1455 | static int __init sa1100fb_probe(struct platform_device *pdev) | 1454 | static 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 | ||
1507 | failed: | 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); |