[PATCH 2/3] irqchip: SigmaStar SSD20xD gpi

Marc Zyngier maz at kernel.org
Thu Sep 30 07:11:32 PDT 2021


On Thu, 30 Sep 2021 14:59:24 +0100,
Daniel Palmer <daniel at 0x0f.com> wrote:
> 
> Hi Marc,
> 
> On Thu, 30 Sept 2021 at 22:53, Marc Zyngier <maz at kernel.org> wrote:
> > Somehow, the handler for this interrupt is set to handle_bad_irq(),
> > which probably isn't what you want. You'll have to find out who sets
> > this (there is a comment about that in gpiolib.c, but I haven't had a
> > chance to find where this is coming from).
> >
> > Do you happen to set it in your driver?
> 
> The gpio driver (gpio-msc313.c) sets it during probe:
> 
> gpioirqchip = &gpiochip->irq;
> gpioirqchip->chip = &msc313_gpio_irqchip;
> gpioirqchip->fwnode = of_node_to_fwnode(dev->of_node);
> gpioirqchip->parent_domain = parent_domain;
> gpioirqchip->child_to_parent_hwirq = match_data->child_to_parent_hwirq;
> gpioirqchip->populate_parent_alloc_arg = match_data->populate_parent_fwspec;
> gpioirqchip->handler = handle_bad_irq;
> gpioirqchip->default_type = IRQ_TYPE_NONE;

Right. I have no idea why this is a requirement, and I would normally
set it to whatever is the normal flow handler on this HW, but this
looks like the GPIO subsystem has some expectations here.

I'll let Linus comment on it.

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list