Commit 8240ef50 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

genirq: Add generic_handle_domain_irq() helper



Provide generic_handle_domain_irq() as a pendent to handle_domain_irq()
for non-root interrupt controllers

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 9e027dd9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -170,6 +170,8 @@ int generic_handle_irq(unsigned int irq);
int __handle_domain_irq(struct irq_domain *domain, unsigned int hwirq,
			bool lookup, struct pt_regs *regs);

int generic_handle_domain_irq(struct irq_domain *domain, unsigned int hwirq);

static inline int handle_domain_irq(struct irq_domain *domain,
				    unsigned int hwirq, struct pt_regs *regs)
{
+18 −1
Original line number Diff line number Diff line
@@ -661,7 +661,24 @@ EXPORT_SYMBOL_GPL(generic_handle_irq);

#ifdef CONFIG_HANDLE_DOMAIN_IRQ
/**
 * __handle_domain_irq - Invoke the handler for a HW irq belonging to a domain
 * generic_handle_domain_irq - Invoke the handler for a HW irq belonging
 *                             to a domain, usually for a non-root interrupt
 *                             controller
 * @domain:	The domain where to perform the lookup
 * @hwirq:	The HW irq number to convert to a logical one
 *
 * Returns:	0 on success, or -EINVAL if conversion has failed
 *
 */
int generic_handle_domain_irq(struct irq_domain *domain, unsigned int hwirq)
{
	return handle_irq_desc(irq_resolve_mapping(domain, hwirq));
}
EXPORT_SYMBOL_GPL(generic_handle_domain_irq);

/**
 * __handle_domain_irq - Invoke the handler for a HW irq belonging to a domain,
 *                       usually for a root interrupt controller
 * @domain:	The domain where to perform the lookup
 * @hwirq:	The HW irq number to convert to a logical one
 * @lookup:	Whether to perform the domain lookup or not