Re: [PATCH] gpio: rcar: Request GPIO while enabling interrupt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Fabrizio,

On Fri, Nov 2, 2018 at 8:10 PM Fabrizio Castro
<fabrizio.castro@xxxxxxxxxxxxxx> wrote:
> There are cases when the bootloader configures a pin to work
> as a function rather than GPIO, and other cases when the pin
> is configured as a function at POR.
> This commit makes sure the pin is configured as a GPIO the
> moment we need it to work as an interrupt.
>
> Signed-off-by: Fabrizio Castro <fabrizio.castro@xxxxxxxxxxxxxx>
> ---
> RFC->PATCH:
> * Moved gc->request to the bottom of gpio_rcar_irq_set_type

Thanks for the update!

> --- a/drivers/gpio/gpio-rcar.c
> +++ b/drivers/gpio/gpio-rcar.c
> @@ -147,6 +147,7 @@ static int gpio_rcar_irq_set_type(struct irq_data *d, unsigned int type)
>         struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
>         struct gpio_rcar_priv *p = gpiochip_get_data(gc);
>         unsigned int hwirq = irqd_to_hwirq(d);
> +       int err;
>
>         dev_dbg(&p->pdev->dev, "sense irq = %d, type = %d\n", hwirq, type);
>
> @@ -176,6 +177,13 @@ static int gpio_rcar_irq_set_type(struct irq_data *d, unsigned int type)
>         default:
>                 return -EINVAL;
>         }
> +
> +       err = gc->request(gc, hwirq);

Call gpio_rcar_request() directly?

Where should the matching gpio_rcar_free() be called?

> +       if (err) {
> +               dev_err(&p->pdev->dev, "Can't request GPIO %d from %s\n", hwirq,

%u for unsigned int

> +                       gc->label);
> +               return err;
> +       }
>         return 0;
>  }

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux