Re: OMAP: DSS2: Common IRQ handler for all OMAPs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2011-02-15 at 02:30 -0600, Taneja, Archit wrote:
> Hi,
> 
> On Tuesday 15 February 2011 12:57 PM, Valkeinen, Tomi wrote:
> 
> <snip>
> 
> > I meant something like this:
> >
> > dispc.c:
> >
> > dispc_init()
> > {
> > 	/* did we have a pdev for dispc? if not, this needs to be dss.pdev */
> > 	request_irq(platform_get_irq(dispc.pdev, 0), irq_handler, IRQF_SHARED, "dispc irq", foo);
> > }
> >
> > irq_handler()
> > {
> > 	if (irq_can_be_shared) {
> > 		check if the irq is for us. exit if not;
> > 	}
> >
> > 	handle;
> > }
> >
> > dsi.c:
> >
> > dsi_init()
> > {
> > 	request_irq(platform_get_irq(dsi.pdev, 0), irq_handler, IRQF_SHARED, "dsi irq", foo);
> > }
> >
> > irq_handler()
> > {
> > 	if (irq_can_be_shared) {
> > 		check if the irq is for us. exit if not;
> > 	}
> >
> > 	handle;
> > }
> >
> 
> This approach looks clean, but isn't IRQF_SHARED used the other way 
> around. One irq line and multiple handlers?

That is the case here, isn't it (on omap3)? One interrupt line (the DSS
irq, the same returned both from dsi.pdev and dispc.pdev), and two
handlers, one in dispc and one in dsi? Or what do you mean?

On omap2 there's no dsi code ran, so dispc is the only one requesting
the irq, and thus IRQF_SHARED is extra. In omap4 there are separate irq
lines (dsi.pdev and dispc.pdev return different irqs), and so
IRQF_SHARED is again extra. But I don't see any harm in IRQF_SHARED even
in omap2/4.

 Tomi


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux