genirq: Implement a generic interrupt chip

H Hartley Sweeten hartleys at visionengravers.com
Mon Apr 18 16:32:55 EDT 2011


On Monday, April 18, 2011 12:44 PM, Thomas Gleixner wrote:
> On Mon, 18 Apr 2011, Thomas Gleixner wrote:
>
>> On Mon, 18 Apr 2011, H Hartley Sweeten wrote:
>>> On Saturday, April 16, 2011 2:14 PM, Thomas Gleixner wrote:
>>>> +void irq_setup_generic_chip(struct irq_chip_generic *gc, u32 msk,
>>>> +			    unsigned int clr, unsigned int set)
>>>> +{
>>>> +	struct irq_chip_type *ct = gc->chip_types;
>>>> +	unsigned int i;
>>>> +
>>>> +	/* Init mask cache */
>>>> +	if (ct->irq_mask == irq_gc_mask_clr_bit ||
>>>> +	    ct->irq_mask == irq_gc_mask_set_bit)
>>> 
>>> struct irq_chip_type does not have a member named 'irq_mask'
>>
>> Found that already. Needs to be ct->chip_types->irq_mask of course.
>
> Gah, my brain is seriously damaged from staring into that
> code. ct->chip.irq_mask of course.

OK. With that fix, I compiled and boot tested these patches on an 
ep93xx based board:

genirq: Implement a generic interrupt chip
vic: Use generic interrupt chip

I do not have CONFIG_PM enabled so I'm not sure about the vic_id++
issue I pointed out earlier in vic: Use generic interrupt chip.

Other than that, for these two patches you can add (if you wish):

Tested-by: H Hartley Sweeten <hsweeten at visionengravers.com>



More information about the linux-arm-kernel mailing list