Re: [PATCH] au1200fb: fix hardcoded IRQ
From: Manuel Lauss <hidden>
Date: 2011-06-14 08:23:42
Hi Paul, On Tue, Jun 14, 2011 at 9:10 AM, Paul Mundt [off-list ref] wrote:
On Sun, Jun 12, 2011 at 07:15:29PM +0200, Manuel Lauss wrote:quoted
Use the IRQ provided by platform resource information. Required for Au1300 support. Signed-off-by: Manuel Lauss <redacted> --- applies on top of the other 3 au1200fb patches sent earlier. drivers/video/au1200fb.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)diff --git a/drivers/video/au1200fb.c b/drivers/video/au1200fb.c index e018373..e6d3478 100644 --- a/drivers/video/au1200fb.c +++ b/drivers/video/au1200fb.c@@ -1631,7 +1631,7 @@ static int __devinit au1200fb_drv_probe(struct platform_device *dev)struct au1200fb_device *fbdev; struct fb_info *fbi = NULL; unsigned long page; - int bpp, plane, ret; + int bpp, plane, ret, irq; /* shut gcc up */ ret = 0;@@ -1707,10 +1707,12 @@ static int __devinit au1200fb_drv_probe(struct platform_device *dev)} /* Now hook interrupt too */ - if ((ret = request_irq(AU1200_LCD_INT, au1200fb_handle_irq, - IRQF_DISABLED | IRQF_SHARED, "lcd", (void *)dev)) < 0) { + irq = platform_get_irq(dev, 0); + ret = request_irq(irq, au1200fb_handle_irq, + IRQF_DISABLED | IRQF_SHARED, "lcd", (void *)dev); + if (ret) { print_err("fail to request interrupt line %d (err: %d)", - AU1200_LCD_INT, ret); + irq, ret); goto failed; }A minor nit, but if you're passing along IRQ information via the platform data already you could take that a step further and also fetch the IRQ flags. This would at least allow you to avoid an unconditional IRQF_SHARED.
That IRQF_SHARED is required because the out-of-tree mpeg decoder
driver attaches to this irq as well. I'll incorporate it in the rewrite though.
Thanks!
Manuel Lauss