All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Wu <josh.wu@atmel.com>
To: Bo Shen <voice.shen@atmel.com>
Cc: dmitry.torokhov@gmail.com, javier.martin@vista-silicon.com,
	khali@linux-fr.org, w.sang@pengutronix.de, jm.lin@atmel.com,
	linux-input@vger.kernel.org
Subject: Re: [RFC] QT1070: change the trigger mode of QT1070
Date: Fri, 11 May 2012 16:07:12 +0800	[thread overview]
Message-ID: <4FACC8B0.4040606@atmel.com> (raw)
In-Reply-To: <1336357653-18663-1-git-send-email-voice.shen@atmel.com>

Hi, Bo

On 5/7/2012 10:27 AM, Bo Shen wrote:

> The default trigger mode of QT1070 is IRQF_TRIGGER_LOW,
> Using TRQF_TRIGGER_FALLING to replace IRQF_TRIGGER_LOW | IRQF_ONESHOT.
>
> Add a workaround for some SOC which can not distinguish the falling
> and rising change on I/O lines.
>
> Signed-off-by: Bo Shen<voice.shen@atmel.com>
> ---
>   drivers/input/keyboard/qt1070.c |   13 ++++++++++---
>   1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/input/keyboard/qt1070.c b/drivers/input/keyboard/qt1070.c
> index 0b7b2f8..1855e3d 100644
> --- a/drivers/input/keyboard/qt1070.c
> +++ b/drivers/input/keyboard/qt1070.c
> @@ -201,10 +201,17 @@ static int __devinit qt1070_probe(struct i2c_client *client,
>   	msleep(QT1070_RESET_TIME);
>
>   	err = request_threaded_irq(client->irq, NULL, qt1070_interrupt,
> -		IRQF_TRIGGER_NONE, client->dev.driver->name, data);
> +		IRQF_TRIGGER_FALLING, client->dev.driver->name, data);
>   	if (err) {
> -		dev_err(&client->dev, "fail to request irq\n");
> -		goto err_free_mem;
> +		/* This is a workaround for some SOC which can not distinguish
> +		 * falling and rising change on I/O lines.
> +		 */
> +		err = request_threaded_irq(client->irq, NULL, qt1070_interrupt,
> +			IRQF_TRIGGER_NONE, client->dev.driver->name, data);

I think here using IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING is better 
than using IRQF_TRIGGER_NONE.
Since for the QT1070 driver it can handle irq interrupt of falling (can 
read valid data from QT1070) or rising (read but no valid data).
But if set to IRQF_TRIGGER_NONE, for some hardware it maybe caused by 
IRQF_TRIGGER_HIGH or IRQF_TRIGGER_LOW. That is not what you expected.

> +		if (err) {
> +			dev_err(&client->dev, "fail to request irq\n");
> +			goto err_free_mem;
> +		}
>   	}
>
>   	/* Register the input device */

Best Regards,
Josh Wu

      parent reply	other threads:[~2012-05-11  8:08 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-07  2:27 [RFC] QT1070: change the trigger mode of QT1070 Bo Shen
2012-05-07  7:04 ` Dmitry Torokhov
2012-05-07  7:09   ` javier Martin
2012-05-08  7:45   ` Shen, Voice
2012-05-11  8:28   ` Josh Wu
2012-05-11  9:13     ` javier Martin
2012-05-11 11:33       ` Josh Wu
2012-05-11 12:47         ` javier Martin
2012-05-14  2:57           ` Bo Shen
2012-05-14  6:59             ` javier Martin
2012-05-14  7:21               ` javier Martin
2012-05-11 16:06       ` Dmitry Torokhov
2012-05-11 16:08     ` Dmitry Torokhov
2012-05-14  2:54       ` Bo Shen
2012-05-11  8:07 ` Josh Wu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FACC8B0.4040606@atmel.com \
    --to=josh.wu@atmel.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=javier.martin@vista-silicon.com \
    --cc=jm.lin@atmel.com \
    --cc=khali@linux-fr.org \
    --cc=linux-input@vger.kernel.org \
    --cc=voice.shen@atmel.com \
    --cc=w.sang@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.