====> project: bootloader/uboot-repo/bl33/v2015 diff --git a/arch/arm/cpu/armv8/g12a/firmware/scp_task/scp_remote.c b/arch/arm/cpu/armv8/g12a/firmware/scp_task/scp_remote.c index dcf5604612..4db1d78122 100644 --- a/arch/arm/cpu/armv8/g12a/firmware/scp_task/scp_remote.c +++ b/arch/arm/cpu/armv8/g12a/firmware/scp_task/scp_remote.c @@ -30,6 +30,9 @@ typedef struct remote_pwrkeys { remote_pwrkeys_t pwr_keys_list; unsigned int usr_pwr_key = 0x956a7f80; // map 'info' to 'netflix' ; mode 1 unsigned int usr_pwr_key_1 = 0x596aa0f5; // map 'info' to 'netflix' ; mode 2 +//unsigned int usr_pwr_key_2 = 0x96697f80; // map 'info' to 'ott_key' ; mode 1 +unsigned int usr_pwr_key_2 = 0x946b7f80; // map 'info' to 'bplay_key' ; mode 1 +unsigned int usr_pwr_key_3 = 0x496ba0f5; // map 'info' to 'bplay_key' ; mode 2 //24M static const reg_remote RDECODEMODE_NEC[] = { {AO_MF_IR_DEC_LDR_ACTIVE, 500 << 16 | 400 << 0}, @@ -320,6 +323,9 @@ static int remote_detect_key(void) if (((power_key & IR_POWER_KEY_MASK) == usr_pwr_key) || ((power_key & IR_POWER_KEY_MASK) == usr_pwr_key_1)) return 2; + if (((power_key & IR_POWER_KEY_MASK) == usr_pwr_key_2) || + ((power_key & IR_POWER_KEY_MASK) == usr_pwr_key_3)) + return 3; } #ifdef CONFIG_COMPAT_IR diff --git a/arch/arm/cpu/armv8/g12a/firmware/scp_task/suspend.h b/arch/arm/cpu/armv8/g12a/firmware/scp_task/suspend.h index 7d924322f4..29ab5a1b0d 100644 --- a/arch/arm/cpu/armv8/g12a/firmware/scp_task/suspend.h +++ b/arch/arm/cpu/armv8/g12a/firmware/scp_task/suspend.h @@ -25,6 +25,7 @@ typedef unsigned int uint32_t; #define ETH_PMT_WAKEUP 10 #define CECB_WAKEUP 11 #define ETH_PHY_GPIO 12 +#define REMOTE_CUS_WAKEUP1 13 /* wake up source*/ #define UDEFINED_WAKEUP_SRC (1<<0) #define CHARGING_WAKEUP_SRC (1<<1) diff --git a/board/amlogic/g12a_u212_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/g12a_u212_v1/firmware/scp_task/pwr_ctrl.c index b45171c407..15d33a92d2 100644 --- a/board/amlogic/g12a_u212_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/g12a_u212_v1/firmware/scp_task/pwr_ctrl.c @@ -164,6 +164,8 @@ static unsigned int detect_key(unsigned int suspend_from) exit_reason = REMOTE_WAKEUP; if (ret == 2) exit_reason = REMOTE_CUS_WAKEUP; + if (ret == 3) + exit_reason = REMOTE_CUS_WAKEUP1; } if (irq[IRQ_VRTC] == IRQ_VRTC_NUM) { ====> project: common diff --git a/arch/arm64/configs/meson64_defconfig b/arch/arm64/configs/meson64_defconfig index cb77e543ee8f..e21a8f3f48f8 100644 --- a/arch/arm64/configs/meson64_defconfig +++ b/arch/arm64/configs/meson64_defconfig @@ -656,7 +656,6 @@ CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y CONFIG_LOCKUP_DETECTOR=y # CONFIG_DETECT_HUNG_TASK is not set diff --git a/include/linux/amlogic/pm.h b/include/linux/amlogic/pm.h index 0d644ac6d5a0..d7873a90365a 100644 --- a/include/linux/amlogic/pm.h +++ b/include/linux/amlogic/pm.h @@ -30,6 +30,7 @@ #define AUTO_WAKEUP 7 #define CEC_WAKEUP 8 #define REMOTE_CUS_WAKEUP 9 +#define REMOTE_CUS_WAKEUP1 13 #define ETH_PHY_WAKEUP 10 extern unsigned int get_resume_method(void); extern unsigned int is_pm_freeze_mode(void); ====> project: frameworks/base diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index e94f36ca3a5f..abe5b8ccf354 100755 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3898,6 +3898,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { SystemProperties.set("sys.stb.passive.on.reason", "power_key"); else if (keyCode == KeyEvent.KEYCODE_SKB_FUNC_57) SystemProperties.set("sys.stb.passive.on.reason", "netflix_key"); + else if (keyCode == KeyEvent.KEYCODE_SKB_FUNC_58) + SystemProperties.set("sys.stb.passive.on.reason", "bplay_key"); } } } ====> project: frameworks/native diff --git a/services/inputflinger/reader/mapper/KeyboardInputMapper.cpp b/services/inputflinger/reader/mapper/KeyboardInputMapper.cpp index fd9d0417af..2ebca43c57 100644 --- a/services/inputflinger/reader/mapper/KeyboardInputMapper.cpp +++ b/services/inputflinger/reader/mapper/KeyboardInputMapper.cpp @@ -343,7 +343,7 @@ void KeyboardInputMapper::processKey(nsecs_t when, nsecs_t readTime, bool down, // TODO: Use the input device configuration to control this behavior more finely. if (down && getDeviceContext().isExternal() && !mParameters.doNotWakeByDefault && !isMediaKey(keyCode)) { - if ((keyCode == AKEYCODE_POWER) || (keyCode == AKEYCODE_SKB_FUNC_57)) { //Power Key or Netflix key + if ((keyCode == AKEYCODE_POWER) || (keyCode == AKEYCODE_SKB_FUNC_57) || (keyCode == AKEYCODE_SKB_FUNC_58) ) { //Power Key or Netflix key or bplay_key policyFlags |= POLICY_FLAG_WAKE; ALOGI("Wakeup keycode:%d", keyCode); } ====> project: vendor/foxconn diff --git a/prebuilts/module/remote.ko b/prebuilts/module/remote.ko index 4004c3c..8cd1c35 100644 Binary files a/prebuilts/module/remote.ko and b/prebuilts/module/remote.ko differ ====> project: vendor/foxconn/srcs diff --git a/drivers/remote/remote_meson.c b/drivers/remote/remote_meson.c index 6c3ef53..4298379 100644 --- a/drivers/remote/remote_meson.c +++ b/drivers/remote/remote_meson.c @@ -733,6 +733,14 @@ static int remote_resume(struct device *dev) input_event(chip->r_dev->input_device, EV_KEY, 466, 0); input_sync(chip->r_dev->input_device); } + + if (get_resume_method() == REMOTE_CUS_WAKEUP1) { + dev_info(dev, "remote resume from REMOTE_CUS_WAKEUP1\n"); + input_event(chip->r_dev->input_device, EV_KEY, 467, 1); + input_sync(chip->r_dev->input_device); + input_event(chip->r_dev->input_device, EV_KEY, 467, 0); + input_sync(chip->r_dev->input_device); + } #endif //Jim, irq_set_affinity(chip->irqno, cpumask_of(chip->irq_cpumask));