Message ID | 1379510692-32435-2-git-send-email-treding@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Sep 18, 2013 at 8:24 AM, Thierry Reding <thierry.reding@gmail.com> wrote: > The of_irq_to_resource() helper that is used to implement of_irq_count() > tries to resolve interrupts and in fact creates a mapping for resolved > interrupts. That's pretty heavy lifting for something that claims to > just return the number of interrupts requested by a given device node. > > Instead, use the more lightweight of_irq_map_one(), which, despite the > name, doesn't create an actual mapping. Perhaps a better name would be > of_irq_translate_one(). > > Signed-off-by: Thierry Reding <treding@nvidia.com> Acked-by: Rob Herring <rob.herring@calxeda.com> > --- > drivers/of/irq.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/of/irq.c b/drivers/of/irq.c > index 1752988..5f44388 100644 > --- a/drivers/of/irq.c > +++ b/drivers/of/irq.c > @@ -368,9 +368,10 @@ EXPORT_SYMBOL_GPL(of_irq_to_resource); > */ > int of_irq_count(struct device_node *dev) > { > + struct of_irq irq; > int nr = 0; > > - while (of_irq_to_resource(dev, nr, NULL)) > + while (of_irq_map_one(dev, nr, &irq) == 0) > nr++; > > return nr; > -- > 1.8.4 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Sun, 22 Sep 2013 16:19:27 -0500, Rob Herring <robherring2@gmail.com> wrote: > On Wed, Sep 18, 2013 at 8:24 AM, Thierry Reding > <thierry.reding@gmail.com> wrote: > > The of_irq_to_resource() helper that is used to implement of_irq_count() > > tries to resolve interrupts and in fact creates a mapping for resolved > > interrupts. That's pretty heavy lifting for something that claims to > > just return the number of interrupts requested by a given device node. > > > > Instead, use the more lightweight of_irq_map_one(), which, despite the > > name, doesn't create an actual mapping. Perhaps a better name would be > > of_irq_translate_one(). > > > > Signed-off-by: Thierry Reding <treding@nvidia.com> > > Acked-by: Rob Herring <rob.herring@calxeda.com> Applied (and fixed to match the of_irq_map_one --> of_irq_parse_one rename that I'm going to merge in v3.13). g. > > > --- > > drivers/of/irq.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/of/irq.c b/drivers/of/irq.c > > index 1752988..5f44388 100644 > > --- a/drivers/of/irq.c > > +++ b/drivers/of/irq.c > > @@ -368,9 +368,10 @@ EXPORT_SYMBOL_GPL(of_irq_to_resource); > > */ > > int of_irq_count(struct device_node *dev) > > { > > + struct of_irq irq; > > int nr = 0; > > > > - while (of_irq_to_resource(dev, nr, NULL)) > > + while (of_irq_map_one(dev, nr, &irq) == 0) > > nr++; > > > > return nr; > > -- > > 1.8.4 > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Sun, 22 Sep 2013 16:19:27 -0500, Rob Herring <robherring2@gmail.com> wrote: > On Wed, Sep 18, 2013 at 8:24 AM, Thierry Reding > <thierry.reding@gmail.com> wrote: > > The of_irq_to_resource() helper that is used to implement of_irq_count() > > tries to resolve interrupts and in fact creates a mapping for resolved > > interrupts. That's pretty heavy lifting for something that claims to > > just return the number of interrupts requested by a given device node. > > > > Instead, use the more lightweight of_irq_map_one(), which, despite the > > name, doesn't create an actual mapping. Perhaps a better name would be > > of_irq_translate_one(). > > > > Signed-off-by: Thierry Reding <treding@nvidia.com> > > Acked-by: Rob Herring <rob.herring@calxeda.com> Applied, thanks. g. > > > --- > > drivers/of/irq.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/of/irq.c b/drivers/of/irq.c > > index 1752988..5f44388 100644 > > --- a/drivers/of/irq.c > > +++ b/drivers/of/irq.c > > @@ -368,9 +368,10 @@ EXPORT_SYMBOL_GPL(of_irq_to_resource); > > */ > > int of_irq_count(struct device_node *dev) > > { > > + struct of_irq irq; > > int nr = 0; > > > > - while (of_irq_to_resource(dev, nr, NULL)) > > + while (of_irq_map_one(dev, nr, &irq) == 0) > > nr++; > > > > return nr; > > -- > > 1.8.4 > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff --git a/drivers/of/irq.c b/drivers/of/irq.c index 1752988..5f44388 100644 --- a/drivers/of/irq.c +++ b/drivers/of/irq.c @@ -368,9 +368,10 @@ EXPORT_SYMBOL_GPL(of_irq_to_resource); */ int of_irq_count(struct device_node *dev) { + struct of_irq irq; int nr = 0; - while (of_irq_to_resource(dev, nr, NULL)) + while (of_irq_map_one(dev, nr, &irq) == 0) nr++; return nr;
The of_irq_to_resource() helper that is used to implement of_irq_count() tries to resolve interrupts and in fact creates a mapping for resolved interrupts. That's pretty heavy lifting for something that claims to just return the number of interrupts requested by a given device node. Instead, use the more lightweight of_irq_map_one(), which, despite the name, doesn't create an actual mapping. Perhaps a better name would be of_irq_translate_one(). Signed-off-by: Thierry Reding <treding@nvidia.com> --- drivers/of/irq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)