[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5ec51559d8b4cd3b8e80943788b52926@www.loen.fr>
Date: Wed, 20 Nov 2019 10:38:59 +0000
From: Marc Zyngier <maz@...nel.org>
To: Yash Shah <yash.shah@...ive.com>
Cc: <linus.walleij@...aro.org>, <bgolaszewski@...libre.com>,
<robh+dt@...nel.org>, <mark.rutland@....com>, <palmer@...belt.com>,
"Paul Walmsley ( Sifive)" <paul.walmsley@...ive.com>,
<aou@...s.berkeley.edu>, <tglx@...utronix.de>,
<jason@...edaemon.net>, <bmeng.cn@...il.com>,
<atish.patra@....com>, Sagar Kadam <sagar.kadam@...ive.com>,
<linux-gpio@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-riscv@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
Sachin Ghadi <sachin.ghadi@...ive.com>
Subject: Re: [PATCH v2 1/5] genirq: introduce irq_domain_translate_onecell
On 2019-11-20 06:59, Yash Shah wrote:
> Add a new function irq_domain_translate_onecell() that is to be used
> as
> the translate function in struct irq_domain_ops for the v2 IRQ API.
>
> Signed-off-by: Yash Shah <yash.shah@...ive.com>
> ---
> include/linux/irqdomain.h | 5 +++++
> kernel/irq/irqdomain.c | 20 ++++++++++++++++++++
> 2 files changed, 25 insertions(+)
>
> diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
> index 583e7ab..cad9eb8 100644
> --- a/include/linux/irqdomain.h
> +++ b/include/linux/irqdomain.h
> @@ -426,6 +426,11 @@ int irq_domain_translate_twocell(struct
> irq_domain *d,
> unsigned long *out_hwirq,
> unsigned int *out_type);
>
> +int irq_domain_translate_onecell(struct irq_domain *d,
> + struct irq_fwspec *fwspec,
> + unsigned long *out_hwirq,
> + unsigned int *out_type);
> +
> /* IPI functions */
> int irq_reserve_ipi(struct irq_domain *domain, const struct cpumask
> *dest);
> int irq_destroy_ipi(unsigned int irq, const struct cpumask *dest);
> diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
> index 132672b..6972a48 100644
> --- a/kernel/irq/irqdomain.c
> +++ b/kernel/irq/irqdomain.c
> @@ -987,6 +987,26 @@ const struct irq_domain_ops
> irq_domain_simple_ops = {
> EXPORT_SYMBOL_GPL(irq_domain_simple_ops);
>
> /**
> + * irq_domain_translate_onecell() - Generic translate for direct one
> cell
> + * bindings
> + *
> + * Device Tree IRQ specifier translation function which works with
> one cell
nit: the whole point of the 'new' translate function is that they are
firmware-agnostic. Just drop the DT reference here.
> + * bindings where the cell values map directly to the hwirq number.
> + */
> +int irq_domain_translate_onecell(struct irq_domain *d,
> + struct irq_fwspec *fwspec,
> + unsigned long *out_hwirq,
> + unsigned int *out_type)
> +{
> + if (WARN_ON(fwspec->param_count < 1))
> + return -EINVAL;
> + *out_hwirq = fwspec->param[0];
> + *out_type = IRQ_TYPE_NONE;
> + return 0;
> +}
> +EXPORT_SYMBOL_GPL(irq_domain_translate_onecell);
> +
> +/**
> * irq_domain_translate_twocell() - Generic translate for direct two
> cell
> * bindings
> *
Can you please also update (potentially in a separate patch) the
potential
users of this? I mentioned the nvic driver last time...
Thanks,
M.
--
Jazz is not dead. It just smells funny...
Powered by blists - more mailing lists