2017-04-13 23:49:29

by Dmitry Torokhov

[permalink] [raw]
Subject: [PATCH] Input: ar1021 - do not force raising edge IRQ trigger

We should not be forcing edge triggered interrupt, but rather let platform
decide the kind of trigger it needs to use. Also, the driver is not quite
safe with regard to edge-triggered interrupts as it does not try to kick
the controller after requesting/enabling IRQ.

Signed-off-by: Dmitry Torokhov <[email protected]>
---
drivers/input/touchscreen/ar1021_i2c.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/touchscreen/ar1021_i2c.c b/drivers/input/touchscreen/ar1021_i2c.c
index 6797e123925a..6c3c79b7ff51 100644
--- a/drivers/input/touchscreen/ar1021_i2c.c
+++ b/drivers/input/touchscreen/ar1021_i2c.c
@@ -109,7 +109,7 @@ static int ar1021_i2c_probe(struct i2c_client *client,

error = devm_request_threaded_irq(&client->dev, client->irq,
NULL, ar1021_i2c_irq,
- IRQF_TRIGGER_RISING | IRQF_ONESHOT,
+ IRQF_ONESHOT,
"ar1021_i2c", ar1021);
if (error) {
dev_err(&client->dev,
--
2.12.2.762.g0e3151a226-goog


--
Dmitry


2017-04-14 05:50:34

by Martin Kepplinger

[permalink] [raw]
Subject: Re: [PATCH] Input: ar1021 - do not force raising edge IRQ trigger

On 2017-04-14 01:49, Dmitry Torokhov wrote:
> We should not be forcing edge triggered interrupt, but rather let platform
> decide the kind of trigger it needs to use. Also, the driver is not quite
> safe with regard to edge-triggered interrupts as it does not try to kick
> the controller after requesting/enabling IRQ.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
> ---
> drivers/input/touchscreen/ar1021_i2c.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/input/touchscreen/ar1021_i2c.c b/drivers/input/touchscreen/ar1021_i2c.c
> index 6797e123925a..6c3c79b7ff51 100644
> --- a/drivers/input/touchscreen/ar1021_i2c.c
> +++ b/drivers/input/touchscreen/ar1021_i2c.c
> @@ -109,7 +109,7 @@ static int ar1021_i2c_probe(struct i2c_client *client,
>
> error = devm_request_threaded_irq(&client->dev, client->irq,
> NULL, ar1021_i2c_irq,
> - IRQF_TRIGGER_RISING | IRQF_ONESHOT,
> + IRQF_ONESHOT,
> "ar1021_i2c", ar1021);
> if (error) {
> dev_err(&client->dev,
>

makes sense, if users have to expect that this default can change. it works.

Tested-by: Martin Kepplinger <[email protected]>

martin

2017-04-14 07:33:34

by Christian Gmeiner

[permalink] [raw]
Subject: Re: [PATCH] Input: ar1021 - do not force raising edge IRQ trigger

2017-04-14 1:49 GMT+02:00 Dmitry Torokhov <[email protected]>:
> We should not be forcing edge triggered interrupt, but rather let platform
> decide the kind of trigger it needs to use. Also, the driver is not quite
> safe with regard to edge-triggered interrupts as it does not try to kick
> the controller after requesting/enabling IRQ.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>

Reviewed-By: Christian Gmeiner <[email protected]>

greets
--
Christian Gmeiner, MSc

https://www.youtube.com/user/AloryOFFICIAL
https://soundcloud.com/christian-gmeiner

2017-04-15 06:44:12

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH] Input: ar1021 - do not force raising edge IRQ trigger

On Thu, 13 Apr 2017 16:49:23 -0700, Dmitry Torokhov wrote:
> We should not be forcing edge triggered interrupt, but rather let platform
> decide the kind of trigger it needs to use. Also, the driver is not quite
> safe with regard to edge-triggered interrupts as it does not try to kick
> the controller after requesting/enabling IRQ.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
> ---
> drivers/input/touchscreen/ar1021_i2c.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/input/touchscreen/ar1021_i2c.c b/drivers/input/touchscreen/ar1021_i2c.c
> index 6797e123925a..6c3c79b7ff51 100644
> --- a/drivers/input/touchscreen/ar1021_i2c.c
> +++ b/drivers/input/touchscreen/ar1021_i2c.c
> @@ -109,7 +109,7 @@ static int ar1021_i2c_probe(struct i2c_client *client,
>
> error = devm_request_threaded_irq(&client->dev, client->irq,
> NULL, ar1021_i2c_irq,
> - IRQF_TRIGGER_RISING | IRQF_ONESHOT,
> + IRQF_ONESHOT,
> "ar1021_i2c", ar1021);
> if (error) {
> dev_err(&client->dev,

Acked-by: Jean Delvare <[email protected]>

--
Jean Delvare
SUSE L3 Support