From f1a27e645bbdba471dec3c044d5dcc6299698c52 Mon Sep 17 00:00:00 2001 From: Bharat Nihalani Date: Fri, 11 Jun 2010 17:17:25 +0530 Subject: 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 Reviewed-by: Varun Wadekar Reviewed-by: Gary King --- .../odm_kit/platform/keyboard/nvodm_keyboard.c | 38 ++++++++++++++++++---- 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'arch/arm') 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; } -- cgit v1.2.3