2020-10-29 10:03:07

by Kent Gibson

[permalink] [raw]
Subject: [PATCH] gpiolib: cdev: add GPIO_V2_LINE_FLAG_EDGE_BOTH and use it in edge_irq_thread()

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 <[email protected]>
Signed-off-by: Kent Gibson <[email protected]>
---
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


2020-10-30 14:58:59

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] gpiolib: cdev: add GPIO_V2_LINE_FLAG_EDGE_BOTH and use it in edge_irq_thread()

On Thu, Oct 29, 2020 at 9:48 AM Kent Gibson <[email protected]> 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 <[email protected]>
> Signed-off-by: Kent Gibson <[email protected]>
> ---
> 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