diff options
author | Bharat Nihalani <bnihalani@nvidia.com> | 2010-06-11 17:17:25 +0530 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-06-15 15:39:15 -0700 |
commit | f1a27e645bbdba471dec3c044d5dcc6299698c52 (patch) | |
tree | 01ba7eb2ee9fe1f6fe9fa74b81ba381cca371f42 /arch/arm | |
parent | c3cda98348e9d9ffa0af9d55ff71adc43f50b84d (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.c | 38 |
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; } |