On Fri, Jul 23, 2010 at 4:15 PM, Stephen Neuendorffer
<[email protected]> wrote:
> Sane architectures don't rely on NO_IRQ.  The device tree code shouldn't
> require it either.

I'm going to sit and think on this for a bit.  I've got the same
problem in MIPS, and I want to use the same solution in both cases.

g.

> ---
>  drivers/of/irq.c       |    4 ++--
>  drivers/of/platform.c  |    4 ++--
>  include/linux/of_irq.h |    6 ++++++
>  3 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
> index 6cfb307..438b761 100644
> --- a/drivers/of/irq.c
> +++ b/drivers/of/irq.c
> @@ -37,7 +37,7 @@ unsigned int irq_of_parse_and_map(struct device_node *dev, 
> int index)
>        struct of_irq oirq;
>
>        if (of_irq_map_one(dev, index, &oirq))
> -               return NO_IRQ;
> +               return OF_NO_IRQ;
>
>        return irq_create_of_mapping(oirq.controller, oirq.specifier,
>                                     oirq.size);
> @@ -337,7 +337,7 @@ int of_irq_to_resource(struct device_node *dev, int 
> index, struct resource *r)
>
>        /* Only dereference the resource if both the
>         * resource and the irq are valid. */
> -       if (r && irq != NO_IRQ) {
> +       if (r && irq != OF_NO_IRQ) {
>                r->start = r->end = irq;
>                r->flags = IORESOURCE_IRQ;
>                r->name = dev->full_name;
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index 9d3d932..cb305ae 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -488,7 +488,7 @@ struct of_device *of_device_alloc(struct device_node *np,
>        /* First count how many resources are needed */
>        while (of_address_to_resource(np, num_reg, &temp_res) == 0)
>                num_reg++;
> -       while (of_irq_to_resource(np, num_irq, &temp_res) != NO_IRQ)
> +       while (of_irq_to_resource(np, num_irq, &temp_res) != OF_NO_IRQ)
>                num_irq++;
>
>        /* Allocate memory for both the struct device and the resource table */
> @@ -508,7 +508,7 @@ struct of_device *of_device_alloc(struct device_node *np,
>                }
>                for (i = 0; i < num_irq; i++, res++) {
>                        rc = of_irq_to_resource(np, i, res);
> -                       WARN_ON(rc == NO_IRQ);
> +                       WARN_ON(rc == OF_NO_IRQ);
>                }
>        }
>
> diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h
> index 5929781..69e8a71 100644
> --- a/include/linux/of_irq.h
> +++ b/include/linux/of_irq.h
> @@ -8,6 +8,12 @@ struct of_irq;
>  #include <linux/ioport.h>
>  #include <linux/of.h>
>
> +#ifdef NO_IRQ
> +#define OF_NO_IRQ NO_IRQ
> +#else
> +#define OF_NO_IRQ 0
> +#endif
> +
>  /*
>  * irq_of_parse_and_map() is used ba all OF enabled platforms; but SPARC
>  * implements it differently.  However, the prototype is the same for all,
> --
> 1.5.6.6
>
>
>
> This email and any attachments are intended for the sole use of the named 
> recipient(s) and contain(s) confidential information that may be proprietary, 
> privileged or copyrighted under applicable law. If you are not the intended 
> recipient, do not read, copy, or forward this email message or any 
> attachments. Delete this email message and any attachments immediately.
>
>
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to