From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762948AbdJRI6t (ORCPT ); Wed, 18 Oct 2017 04:58:49 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:36076 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753642AbdJRI6q (ORCPT ); Wed, 18 Oct 2017 04:58:46 -0400 Subject: Re: [PATCH 3/3] irq/irq_sim: implement irq_sim_irq2offset() To: Bartosz Golaszewski , Thomas Gleixner , Jonathan Cameron , Lars-Peter Clausen Cc: linux-kernel@vger.kernel.org References: <20171005124446.26265-1-brgl@bgdev.pl> <20171005124446.26265-4-brgl@bgdev.pl> From: Marc Zyngier Organization: ARM Ltd Message-ID: Date: Wed, 18 Oct 2017 09:58:37 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171005124446.26265-4-brgl@bgdev.pl> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/10/17 13:44, Bartosz Golaszewski wrote: > Add a routine allowing to retrieve the offset corresponding with an > allocated interrupt number from an irq_sim object. > > Signed-off-by: Bartosz Golaszewski > --- > include/linux/irq_sim.h | 1 + > kernel/irq/irq_sim.c | 15 +++++++++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/include/linux/irq_sim.h b/include/linux/irq_sim.h > index 246f593face8..e9768ca81e3e 100644 > --- a/include/linux/irq_sim.h > +++ b/include/linux/irq_sim.h > @@ -41,5 +41,6 @@ void irq_sim_fini(struct irq_sim *sim); > void irq_sim_fire(struct irq_sim *sim, unsigned int offset); > int irq_sim_irqnum(struct irq_sim *sim, unsigned int offset); > int irq_sim_baseirq(struct irq_sim *sim); > +unsigned int irq_sim_irq2offset(struct irq_sim *sim, int irq); > > #endif /* _LINUX_IRQ_SIM_H */ > diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c > index 1be10d0e295f..9a9a1bc8853c 100644 > --- a/kernel/irq/irq_sim.c > +++ b/kernel/irq/irq_sim.c > @@ -174,3 +174,18 @@ int irq_sim_baseirq(struct irq_sim *sim) > return irq_sim_irqnum(sim, 0); > } > EXPORT_SYMBOL_GPL(irq_sim_baseirq); > + > +/** > + * irq_sim_irq2offset - Get the offset of an allocated interrupt. > + * > + * @sim: The interrupt simulator object. > + * irq: Allocated interrupt number. > + * > + * Perform a reverse lookup for the interrupt number and return its offset in > + * the array allocated by sim_irq. > + */ > +unsigned int irq_sim_irq2offset(struct irq_sim *sim, int irq) > +{ > + return irq - sim->irq_base; > +} > +EXPORT_SYMBOL_GPL(irq_sim_irq2offset); > How is that useful in a random driver? The irq base and the offset are things that should be internal to an irqchip. Maybe you could explain the context you want to use this in. Thanks, M. -- Jazz is not dead. It just smells funny...