[Description]
目前版本上按键唤醒系统的功能默认是打电话状态下才有(除了powerkey),若要實現任意一個按鍵在系統深度睡眠後還可以喚醒,需要做一些修改,以home key為例,詳細如下:
[Solution]
1.确认唤醒源均已包含了WAKE_SRC_KP
1.确认唤醒源均已包含了WAKE_SRC_KP
mediatek\platform\mt6589\kernel\core\ mt_spm_sleep.c
#define WAKE_SRC_FOR_SUSPEND \
(WAKE_SRC_KP | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | WAKE_SRC_CCIF_MD1 | \
WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | WAKE_SRC_PWRAP | \
WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)
#define WAKE_SRC_FOR_DPIDLE \
(WAKE_SRC_KP | WAKE_SRC_GPT | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | \
WAKE_SRC_CCIF_MD1 | WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | \
WAKE_SRC_USB1_PDN | WAKE_SRC_USB0_PDN | WAKE_SRC_AFE | \
WAKE_SRC_PWRAP | WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)
2. \mediatek\config\hedy89_we_jb2\mtk-kpd.kl
增加 key 102 HOME WAKE
#define WAKE_SRC_FOR_SUSPEND \
(WAKE_SRC_KP | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | WAKE_SRC_CCIF_MD1 | \
WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | WAKE_SRC_PWRAP | \
WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)
#define WAKE_SRC_FOR_DPIDLE \
(WAKE_SRC_KP | WAKE_SRC_GPT | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | \
WAKE_SRC_CCIF_MD1 | WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | \
WAKE_SRC_USB1_PDN | WAKE_SRC_USB0_PDN | WAKE_SRC_AFE | \
WAKE_SRC_PWRAP | WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)
2. \mediatek\config\hedy89_we_jb2\mtk-kpd.kl
增加 key 102 HOME WAKE
3、\alps\mediatek\kernel\drivers\keypad\kpd.c:
註釋掉//#define MTK_KP_WAKESOURCE
4、Android Framework有屏蔽部分特殊按鍵,
在alps/frameworks/base/policy/src/com/android/internal/policy/impl
下的
PhoneWindowManager.java
文件中
isWakeKeyWhenScreenOff()看是否有對應的keycode(如例子homekey),若有,請刪除.
这样修改后待机电流會稍微增大,请知悉.