[PATCH 1/5] gpio: omap: convert to use irq_domain_add_simple()
Santosh Shilimkar
santosh.shilimkar at ti.com
Thu Apr 10 10:35:14 PDT 2014
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.martinez at 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.shilimkar at ti.com>
More information about the linux-arm-kernel
mailing list