[PATCH 1/1] of/irq: store IRQ trigger/level in struct resource flags
Javier Martinez Canillas
javier.martinez at collabora.co.uk
Thu Jun 6 18:47:55 EST 2013
On 06/06/2013 01:34 AM, Grant Likely wrote:
> On Fri, 5 Apr 2013 09:48:08 +0200, Javier Martinez Canillas <javier.martinez at collabora.co.uk> wrote:
> [...]
>> irq_of_parse_and_map() calls to irq_create_of_mapping() which calls to
>> the correct xlate function handler according to "#interrupt-cells"
>> (irq_domain_xlate_onecell or irq_domain_xlate_twocell) and to
>> irq_set_irq_type() to set the IRQ type.
>>
>> But the type is never returned so it can't be saved on the IRQ struct
>> resource flags member.
>>
>> This means that drivers that need the IRQ type/level flags defined in
>> the DT won't be able to get it.
>>
>> Signed-off-by: Javier Martinez Canillas <javier.martinez at collabora.co.uk>
> [...]
>> diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h
>> index 535cecf..98aec57 100644
>> --- a/include/linux/of_irq.h
>> +++ b/include/linux/of_irq.h
>> @@ -66,6 +66,10 @@ extern int of_irq_map_one(struct device_node *device, int index,
>> extern unsigned int irq_create_of_mapping(struct device_node *controller,
>> const u32 *intspec,
>> unsigned int intsize);
>> +extern unsigned int irq_create_of_mapping_type(struct device_node *controller,
>> + const u32 *intspec,
>> + unsigned int intsize,
>> + unsigned int *otype);
Hi Grant, thanks a lot for your feedback.
>
> I count 11 users of irq_create_of_mapping(). That's a managable number
> to update.
Yes, but since of_irq_to_resource() doesn't call irq_create_of_mapping()
directly but it does though irq_of_parse_and_map(), then this function signature
has to be modified too.
I'm counting 223 users of irq_of_parse_and_map() so the change is not that small
anymore. Another approach is to call of_irq_map_one() and
irq_create_of_mapping() directly from of_irq_to_resource() instead of using
irq_of_parse_and_map() but I don't like that...
> Instead of creating a new function, please modify the
> existing one and split it off into a separate patch.
But that won't break git bisect-ability? or do you mean to first just change the
functions signatures by adding an argument and update its users and then in a
separate patch do the actual change to the functions to store the IRQ?
> Otherwise the patch looks fine to me.
>
> g.
>
Best regards,
Javier
More information about the devicetree-discuss
mailing list