Re: [PATCH v2] gpio: interrupt consistency check for OF GPIO IRQs

Andreas Larsson
2013-08-26T11:29:07Z

On 2013-08-26 12:56, Lars Poeschel wrote:
> Hi Andreas!
>
> On Thursday 22 August 2013 at 15:16:18, Andreas Larsson wrote:
>> On 2013-08-21 15:38, Lars Poeschel wrote:
>>> +static void of_gpio_scan_irq_lines(const struct device_node *const
>>> node, + struct device_node *const gcn,
>>> + struct irq_domain *const irq_domain,
>>> + const u32 intsize,
>>> + const struct gpio_chip * const gc,
>>> + bool request)
>>> +{
>>> + struct device_node *child;
>>> + struct device_node *irq_parent;
>>> + const __be32 *intspec;
>>> + u32 intlen;
>>> + int ret;
>>> + int i;
>>> + irq_hw_number_t hwirq;
>>> + unsigned int type;
>>> +
>>> + if (node == NULL)
>>> + return;
>>> +
>>> + for_each_child_of_node(node, child) {
>>> + of_gpio_scan_irq_lines(child, gcn, irq_domain, intsize, gc,
>>> + request);
>>> + /* Check if we have an IRQ parent, else continue */
>>> + irq_parent = of_irq_find_parent(child);
>>
>> Hi!
>>
>> This call to of_irq_find_parent breaks gpiolib-of for SPARC due to the
>> fact that the function is undefined when !defined(CONFIG_OF_IRQ) &&
>> defined(CONFIG_OF).
>>
>> Defining the empty of_irq_find_parent in include/linux/of_irq.h when
>> !defined(CONFIG_OF_IRQ) instead of the current case when
>> !defined(CONFIG_OF) would solve the immediate compilation problem.
>
> Is this a bug and should be fixed ?

Well, at least as soon as anyone tries to use in a context that does not
exclude SPARC it creates a bug, so I would say so. There is no reason
for SPARC to fall between the chairs. This is the first case I am aware
of that triggers this.

Cheers,
Andreas