summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorBharat Nihalani <bnihalani@nvidia.com>2010-06-11 17:17:25 +0530
committerGary King <gking@nvidia.com>2010-06-15 15:39:15 -0700
commitf1a27e645bbdba471dec3c044d5dcc6299698c52 (patch)
tree01ba7eb2ee9fe1f6fe9fa74b81ba381cca371f42 /arch/arm
parentc3cda98348e9d9ffa0af9d55ff71adc43f50b84d (diff)
nvec-keyboard: move suspend-resume code to odm
Moved NvEc calls from nvec-keyboard driver to keyboard odm kit where all the remaining communication with NvEc resides. Change-Id: I12c528a7b54a02ccef5129d022934da3476e0fcf Reviewed-on: http://git-master/r/2471 Tested-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-tegra/odm_kit/platform/keyboard/nvodm_keyboard.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/odm_kit/platform/keyboard/nvodm_keyboard.c b/arch/arm/mach-tegra/odm_kit/platform/keyboard/nvodm_keyboard.c
index 86ba9cbc6083..81051933f4e0 100644
--- a/arch/arm/mach-tegra/odm_kit/platform/keyboard/nvodm_keyboard.c
+++ b/arch/arm/mach-tegra/odm_kit/platform/keyboard/nvodm_keyboard.c
@@ -47,18 +47,15 @@
#define NVODM_PRINTF(x)
#endif
-// wake from keyboard disabled for now
+// wake from keyboard
#define WAKE_FROM_KEYBOARD 1
-/* command main category */
-#define EC_KBC_COMMAND 0x5
+// enable/disable keyboard scanning in suspend
+#define KEYBOARD_SCANNING_DISABLED_IN_SUSPEND 0
/* number of LEDS on the keyboard */
enum {NUM_OF_LEDS = 3};
-/* Keyboard specific sub-commands */
-#define KBD_RESET_COMMAND 0xFF
-
/* Special Scan Code set 1 codes */
#define SC1_LSHIFT (0x2A)
#define SC1_RSHIFT (0x36)
@@ -468,6 +465,35 @@ NvBool NvOdmKeyboardToggleLights(NvU32 LedId)
NvBool NvOdmKeyboardPowerHandler(NvBool PowerDown)
{
+#if KEYBOARD_SCANNING_DISABLED_IN_SUSPEND
+ NvEcRequest Request = {0};
+ NvEcResponse Response = {0};
+ NvError err = NvError_Success;
+
+ /* disable keyboard scanning */
+ Request.PacketType = NvEcPacketType_Request;
+ Request.RequestType = NvEcRequestResponseType_Keyboard;
+ if (PowerDown)
+ Request.RequestSubtype =
+ (NvEcRequestResponseSubtype)NvEcKeyboardSubtype_Disable;
+ else
+ Request.RequestSubtype =
+ (NvEcRequestResponseSubtype)NvEcKeyboardSubtype_Enable;
+ Request.NumPayloadBytes = 0;
+
+ err = NvEcSendRequest(s_NvEcHandle, &Request, &Response,
+ sizeof(Request),
+ sizeof(Response));
+ if (err != NvError_Success) {
+ NvOsDebugPrintf("%s: scanning enable/disable request send fail\n", __func__);
+ return NV_FALSE;
+ }
+
+ if (Response.Status != NvEcStatus_Success) {
+ NvOsDebugPrintf("%s: scanning could not be enabled/disabled\n", __func__);
+ return NV_FALSE;
+ }
+#endif
return NV_TRUE;
}