From a12c04e6a12dcc53ccc3811891a49c78ad397030 Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Thu, 30 Sep 2010 20:57:35 +0530 Subject: [arm/tegra] pmc: Overriding only kbc pins during suspend. To enable dpd override of the kbc pins during suspend, it needs to write into dpd override register. By mistake, it was also resetting the other configuration bits. Fixing this issue. bug 739052 Change-Id: I06cf4a7252157418a4789281a79f79946d7f2bdc Reviewed-on: http://git-master/r/7500 Reviewed-by: Aleksandr Frid Reviewed-by: Harry Hong Tested-by: Harry Hong Reviewed-by: Laxman Dewangan Reviewed-by: Bharat Nihalani --- arch/arm/mach-tegra/suspend.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-tegra/suspend.c b/arch/arm/mach-tegra/suspend.c index a721a93dba6e..baa873bc0fc7 100644 --- a/arch/arm/mach-tegra/suspend.c +++ b/arch/arm/mach-tegra/suspend.c @@ -801,6 +801,12 @@ void __init tegra_init_suspend(struct tegra_suspend_platform_data *plat) #ifdef CONFIG_PM void tegra_configure_dpd_kbc(unsigned int kbc_rows, unsigned int kbc_cols) { - writel((kbc_rows & 0xFFFF), pmc + PMC_DPAD_ORIDE); + unsigned long dpd_oride; + + /* Only need to configure the enabled rows */ + dpd_oride = readl(pmc + PMC_DPAD_ORIDE); + dpd_oride &= 0x00300000; + dpd_oride |= (kbc_rows & 0xFFFF); + writel(dpd_oride, pmc + PMC_DPAD_ORIDE); } #endif -- cgit v1.2.3