Re: [PATCH v5] input: tegra-kbc - Add tegra keyboard driver
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2011-01-18 05:13:37
Also in:
lkml
Subsystem:
input (keyboard, mouse, joystick, touchscreen) drivers, tegra kbc driver, the rest · Maintainers:
Dmitry Torokhov, Laxman Dewangan, Linus Torvalds
On Mon, Jan 17, 2011 at 09:12:16PM -0800, Dmitry Torokhov wrote:
On Thu, Jan 13, 2011 at 10:27:28AM -0800, riyer@nvidia.com wrote:quoted
From: Rakesh Iyer <redacted> This patch adds support for the internal matrix keyboard controller for Nvidia Tegra platforms. Signed-off-by: Rakesh Iyer <redacted> --- Changes Done - Wrap the users field check within the mutex. Remove the KBC_MAX_KEYS define and use existing KBC_MAX_KEY. Patch v4 was named incorrectly as PATCH 1/1, so skipping ahead to PATCH v5.As I said, we should tty to reused definitions from matrix_keypad for matrix keypads. Does the following still work for you?
And if it does then could you please try this one as well? Thanks. -- Dmitry Input: tegra-kbc - convert to dev_pm_ops From: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Dmitry Torokhov <redacted> --- drivers/input/keyboard/tegra-kbc.c | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/input/keyboard/tegra-kbc.c b/drivers/input/keyboard/tegra-kbc.c
index a6ec3fc..c3c0c65 100644
--- a/drivers/input/keyboard/tegra-kbc.c
+++ b/drivers/input/keyboard/tegra-kbc.c@@ -658,9 +658,10 @@ static int __devexit tegra_kbc_remove(struct platform_device *pdev) return 0; } -#ifdef CONFIG_PM -static int tegra_kbc_suspend(struct platform_device *pdev, pm_message_t state) +#ifdef CONFIG_PM_SLEEP +static int tegra_kbc_suspend(struct device *dev) { + struct platform_device *pdev = to_platform_device(dev); struct tegra_kbc *kbc = platform_get_drvdata(pdev); if (device_may_wakeup(&pdev->dev)) {
@@ -679,8 +680,9 @@ static int tegra_kbc_suspend(struct platform_device *pdev, pm_message_t state) return 0; } -static int tegra_kbc_resume(struct platform_device *pdev) +static int tegra_kbc_resume(struct device *dev) { + struct platform_device *pdev = to_platform_device(dev); struct tegra_kbc *kbc = platform_get_drvdata(pdev); int err = 0;
@@ -698,17 +700,16 @@ static int tegra_kbc_resume(struct platform_device *pdev) } #endif +static SIMPLE_DEV_PM_OPS(tegra_kbc_pm_ops, tegra_kbc_suspend, tegra_kbc_resume); + static struct platform_driver tegra_kbc_driver = { .probe = tegra_kbc_probe, .remove = __devexit_p(tegra_kbc_remove), -#ifdef CONFIG_PM - .suspend = tegra_kbc_suspend, - .resume = tegra_kbc_resume, -#endif .driver = { .name = "tegra-kbc", .owner = THIS_MODULE, - } + .pm = &tegra_kbc_pm_ops, + }, }; static void __exit tegra_kbc_exit(void)