[PATCH] [RFC] Using hierarchy irqdomian to implement MTK intpol.
Joe.C
srv_yingjoe.chen at mediatek.com
Wed Sep 24 19:16:57 PDT 2014
Jiang,
Please consider merge the following 2 changes into your next round.
On Thu, 2014-09-25 at 00:04 +0800, Joe.C wrote:
> diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
> index e285f3a..01e852b 100644
> --- a/kernel/irq/irqdomain.c
> +++ b/kernel/irq/irqdomain.c
> @@ -467,7 +467,7 @@ unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data)
> struct irq_domain *domain;
> irq_hw_number_t hwirq;
> unsigned int type = IRQ_TYPE_NONE;
> - unsigned int virq;
> + int virq;
>
> domain = irq_data->np ? irq_find_host(irq_data->np) : irq_default_domain;
> if (!domain) {
> @@ -493,8 +493,8 @@ unsigned int irq_create_of_mapping(struct of_phandle_args *irq_data)
> else
> #endif
> virq = irq_create_mapping(domain, hwirq);
> - if (!virq)
> - return virq;
> + if (virq <= 0)
> + return 0;
>
> /* Set type if specified and different than the current one */
> if (type != IRQ_TYPE_NONE &&
irq_of_parse_and_map()/of_irq_to_resource() expect
irq_create_of_mapping() to return 0 when fail. Return error code will
cause of_irq_to_resource crash.
> @@ -716,20 +716,20 @@ const struct irq_domain_ops irq_domain_simple_ops = {
> };
> EXPORT_SYMBOL_GPL(irq_domain_simple_ops);
>
> -static int irq_domain_alloc_descs(int virq, unsigned int nr_irqs,
> +static int irq_domain_alloc_descs(int virq, unsigned int cnt,
> irq_hw_number_t hwirq, int node)
> {
> unsigned int hint;
>
> if (virq >= 0) {
> - virq = irq_alloc_descs(virq, virq, nr_irqs, node);
> + virq = irq_alloc_descs(virq, virq, cnt, node);
> } else {
> hint = hwirq % nr_irqs;
> if (hint == 0)
> hint++;
> - virq = irq_alloc_descs_from(hint, nr_irqs, node);
> + virq = irq_alloc_descs_from(hint, cnt, node);
> if (virq <= 0 && hint > 1)
> - virq = irq_alloc_descs_from(1, nr_irqs, node);
> + virq = irq_alloc_descs_from(1, cnt, node);
> }
>
> return virq;
This come from irq_create_mapping(), the original code is using global
nr_irqs. Change to match original behavior.
Joe.C
More information about the linux-arm-kernel
mailing list