[PATCH 15/54] ARM: ep93xx: irq_data conversion.
Ryan Mallon
ryan at bluewatersys.com
Tue Nov 30 19:26:38 EST 2010
On 12/01/2010 01:19 PM, Lennert Buytenhek wrote:
> On Wed, Dec 01, 2010 at 08:33:25AM +1300, Ryan Mallon wrote:
>
>>> -static int ep93xx_gpio_irq_type(unsigned int irq, unsigned int type)
>>> +static int ep93xx_gpio_irq_type(struct irq_data *d, unsigned int type)
>>> {
>>> - struct irq_desc *desc = irq_desc + irq;
>>> - const int gpio = irq_to_gpio(irq);
>>> + struct irq_desc *desc = irq_desc + d->irq;
>>
>> Is this still correct? I haven't followed much of the irq_data
>> discussion, but this post (https://patchwork.kernel.org/patch/230221/)
>> says that with sparse irq converting irq number to irq_desc is now a
>> radix tree lookup.
>>
>> I get the impression from the above email that we should be avoiding
>> using irq_desc directly in these functions?
>
> You are correct in that this construct is no longer valid with
> CONFIG_SPARSE_IRQ. It should be using irq_to_desc() instead, or
> actually, it should not be looking at the irq_desc here at all.
>
> What ep93xx wants to achieve should be possible to achieve by just
> calling set_irq_handler() instead of frobbing fields in the irq_desc
> directly -- that would work, right?
I think set_irq_handler should be okay. The other way would be to use
irq_to_desc for the lookup.
~Ryan
--
Bluewater Systems Ltd - ARM Technology Solution Centre
Ryan Mallon 5 Amuri Park, 404 Barbadoes St
ryan at bluewatersys.com PO Box 13 889, Christchurch 8013
http://www.bluewatersys.com New Zealand
Phone: +64 3 3779127 Freecall: Australia 1800 148 751
Fax: +64 3 3779135 USA 1800 261 2934
More information about the linux-arm-kernel
mailing list