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); |
