On Sunday 06 April 2014 10:58 AM, Javier Martinez Canillas wrote:
> The GPIO OMAP driver supports different OMAP SoC families and
> not all of them have the needed support to use the linear IRQ
> domain mapping like OMAP1 that use the legacy domain mapping.
> 
> But this special check is not necessary since the simple IRQ
> domain mapping is able to handle both cases. Having a zero
> IRQ offset will be interpreted as a linear domain case while
> a non-zero value will be interpreted as a legacy domain case.
> 
> Signed-off-by: Javier Martinez Canillas <javier.marti...@collabora.co.uk>
> ---
>  drivers/gpio/gpio-omap.c | 15 ++++-----------
>  1 file changed, 4 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
> index 19b886c..3ee9b8d 100644
> --- a/drivers/gpio/gpio-omap.c
> +++ b/drivers/gpio/gpio-omap.c
> @@ -1138,9 +1138,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
>       const struct omap_gpio_platform_data *pdata;
>       struct resource *res;
>       struct gpio_bank *bank;
> -#ifdef CONFIG_ARCH_OMAP1
> -     int irq_base;
> -#endif
> +     int irq_base = 0;
>  
>       match = of_match_device(of_match_ptr(omap_gpio_match), dev);
>  
> @@ -1185,21 +1183,16 @@ static int omap_gpio_probe(struct platform_device 
> *pdev)
>  #ifdef CONFIG_ARCH_OMAP1
>       /*
>        * REVISIT: Once we have OMAP1 supporting SPARSE_IRQ, we can drop
> -      * irq_alloc_descs() and irq_domain_add_legacy() and just use a
> -      * linear IRQ domain mapping for all OMAP platforms.
> +      * irq_alloc_descs() since a base IRQ offset will no longer be needed.
>        */
>       irq_base = irq_alloc_descs(-1, 0, bank->width, 0);
>       if (irq_base < 0) {
>               dev_err(dev, "Couldn't allocate IRQ numbers\n");
>               return -ENODEV;
>       }
> -
> -     bank->domain = irq_domain_add_legacy(node, bank->width, irq_base,
> -                                          0, &irq_domain_simple_ops, NULL);
> -#else
> -     bank->domain = irq_domain_add_linear(node, bank->width,
> -                                          &irq_domain_simple_ops, NULL);
>  #endif
> +     bank->domain = irq_domain_add_simple(node, bank->width, irq_base,
> +                                          &irq_domain_simple_ops, NULL);
>       if (!bank->domain) {
>               dev_err(dev, "Couldn't register an IRQ domain\n");
>               return -ENODEV;
> 
Looks good.
Acked-by: Santosh Shilimkar <santosh.shilim...@ti.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to