Re: [PATCH] gpiolib: cdev: add GPIO_V2_LINE_FLAG_EDGE_BOTH and use it in edge_irq_thread()
From: Bartosz Golaszewski
Date: Fri Oct 30 2020 - 10:54:09 EST
On Thu, Oct 29, 2020 at 9:48 AM Kent Gibson <warthog618@xxxxxxxxx> wrote:
>
> Add GPIO_V2_LINE_FLAG_EDGE_BOTH macro and use it in edge_irq_thread() to
> improve readability of edge handling cases.
>
> Suggested-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
> Signed-off-by: Kent Gibson <warthog618@xxxxxxxxx>
> ---
> drivers/gpio/gpiolib-cdev.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c
> index ea787eb3810d..5eb4435afa64 100644
> --- a/drivers/gpio/gpiolib-cdev.c
> +++ b/drivers/gpio/gpiolib-cdev.c
> @@ -510,6 +510,8 @@ struct linereq {
> (GPIO_V2_LINE_FLAG_EDGE_RISING | \
> GPIO_V2_LINE_FLAG_EDGE_FALLING)
>
> +#define GPIO_V2_LINE_FLAG_EDGE_BOTH GPIO_V2_LINE_EDGE_FLAGS
> +
> #define GPIO_V2_LINE_VALID_FLAGS \
> (GPIO_V2_LINE_FLAG_ACTIVE_LOW | \
> GPIO_V2_LINE_DIRECTION_FLAGS | \
> @@ -569,8 +571,7 @@ static irqreturn_t edge_irq_thread(int irq, void *p)
> line->timestamp_ns = 0;
>
> eflags = READ_ONCE(line->eflags);
> - if (eflags == (GPIO_V2_LINE_FLAG_EDGE_RISING |
> - GPIO_V2_LINE_FLAG_EDGE_FALLING)) {
> + if (eflags == GPIO_V2_LINE_FLAG_EDGE_BOTH) {
> int level = gpiod_get_value_cansleep(line->desc);
>
> if (level)
> --
> 2.29.0
>
Applied, thanks!
Bartosz