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: Marc Zyngier <maz@kernel.org>
This commit is contained in:
Marc Zyngier 2021-05-12 13:45:52 +01:00
parent 9e027dd979
commit 8240ef50d4
2 changed files with 20 additions and 1 deletions

View File

@ -170,6 +170,8 @@ int generic_handle_irq(unsigned int irq);
int __handle_domain_irq(struct irq_domain *domain, unsigned int hwirq, int __handle_domain_irq(struct irq_domain *domain, unsigned int hwirq,
bool lookup, struct pt_regs *regs); 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, static inline int handle_domain_irq(struct irq_domain *domain,
unsigned int hwirq, struct pt_regs *regs) unsigned int hwirq, struct pt_regs *regs)
{ {

View File

@ -661,7 +661,24 @@ EXPORT_SYMBOL_GPL(generic_handle_irq);
#ifdef CONFIG_HANDLE_DOMAIN_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 * @domain: The domain where to perform the lookup
* @hwirq: The HW irq number to convert to a logical one * @hwirq: The HW irq number to convert to a logical one
* @lookup: Whether to perform the domain lookup or not * @lookup: Whether to perform the domain lookup or not