From: Shubhrajyoti <shubhrajyoti@ti.com>
To: Rakesh Iyer <riyer@nvidia.com>
Cc: dmitry.torokhov@gmail.com, swarren@nvidia.com,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1] Input: tegra-kbc - enable key interrupt for wakeup
Date: Thu, 19 Jan 2012 11:17:33 +0530 [thread overview]
Message-ID: <4F17AE75.6000605@ti.com> (raw)
In-Reply-To: <1326925981-14723-1-git-send-email-riyer@nvidia.com>
On Thursday 19 January 2012 04:03 AM, Rakesh Iyer wrote:
> Enable keypress interrupt to support wakeup from low power state.
>
> Signed-off-by: Rakesh Iyer <riyer@nvidia.com>
> ---
> drivers/input/keyboard/tegra-kbc.c | 17 +++++++++++++++++
> 1 files changed, 17 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/input/keyboard/tegra-kbc.c b/drivers/input/keyboard/tegra-kbc.c
> index a136e2e..b307a46 100644
> --- a/drivers/input/keyboard/tegra-kbc.c
> +++ b/drivers/input/keyboard/tegra-kbc.c
> @@ -48,6 +48,7 @@
> #define KBC_FIFO_TH_CNT_SHIFT(cnt) (cnt << 14)
> #define KBC_DEBOUNCE_CNT_SHIFT(cnt) (cnt << 4)
> #define KBC_CONTROL_FIFO_CNT_INT_EN (1 << 3)
> +#define KBC_CONTROL_KEYPRESS_INT_EN (1 << 1)
> #define KBC_CONTROL_KBC_EN (1 << 0)
>
> /* KBC Interrupt Register */
> @@ -356,6 +357,18 @@ static void tegra_kbc_set_fifo_interrupt(struct tegra_kbc *kbc, bool enable)
> writel(val, kbc->mmio + KBC_CONTROL_0);
> }
>
> +static void tegra_kbc_set_keypress_interrupt(struct tegra_kbc *kbc, bool enable)
> +{
> + u32 val;
> +
> + val = readl(kbc->mmio + KBC_CONTROL_0);
> + if (enable)
> + val |= KBC_CONTROL_KEYPRESS_INT_EN;
> + else
> + val &= ~KBC_CONTROL_KEYPRESS_INT_EN;
> + writel(val, kbc->mmio + KBC_CONTROL_0);
> +}
> +
> static void tegra_kbc_keypress_timer(unsigned long data)
> {
> struct tegra_kbc *kbc = (struct tegra_kbc *)data;
> @@ -831,6 +844,8 @@ static int tegra_kbc_suspend(struct device *dev)
> msleep(30);
>
> kbc->keypress_caused_wake = false;
> + /* Enable keypress interrupt before going into suspend. */
> + tegra_kbc_set_keypress_interrupt(kbc, true);
> enable_irq(kbc->irq);
> enable_irq_wake(kbc->irq);
> } else {
> @@ -852,6 +867,8 @@ static int tegra_kbc_resume(struct device *dev)
> if (device_may_wakeup(&pdev->dev)) {
> disable_irq_wake(kbc->irq);
> tegra_kbc_setup_wakekeys(kbc, false);
> + /* We will use fifo interrupts for key detection. */
> + tegra_kbc_set_keypress_interrupt(kbc, false);
Why do yo disable on resume why not have it enabled always?
>
> /* Restore the resident time of continuous polling mode. */
> writel(kbc->cp_to_wkup_dly, kbc->mmio + KBC_TO_CNT_0);
next prev parent reply other threads:[~2012-01-19 5:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-18 22:33 [PATCH v1] Input: tegra-kbc - enable key interrupt for wakeup Rakesh Iyer
2012-01-19 5:47 ` Shubhrajyoti [this message]
2012-01-19 18:21 ` Rakesh Iyer
2012-01-24 5:24 ` Datta, Shubhrajyoti
2012-01-24 5:24 ` Datta, Shubhrajyoti
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=4F17AE75.6000605@ti.com \
--to=shubhrajyoti@ti.com \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=riyer@nvidia.com \
--cc=swarren@nvidia.com \
/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.