MTK9669打开上电开机进待机的IR唤醒功能

发布时间 2023-04-12 15:03:43作者: 天空中的弧线

此patch不是新加一个遥控类型。而是用公版遥控的键值替换成自家的遥控键值。

 

index 9d0967f72cd..3bc93b84d5c 100755
--- a/Domestic_3M_20201106/bootable/bootloader/mboot-mtk/mboot/MstarCore/src/api/msAPI_Power.c
+++ b/Domestic_3M_20201106/bootable/bootloader/mboot-mtk/mboot/MstarCore/src/api/msAPI_Power.c
@@ -381,7 +381,7 @@ void msAPI_Power_PowerDown_EXEC(void)

.u8PmWakeIR =
{ //IR wake-up key define
- IRKEY_POWER, 0x03, IRKEY_INPUT_SOURCE, 0xFF,
+ 0x46, 0x01, IRKEY_INPUT_SOURCE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
@@ -393,7 +393,7 @@ void msAPI_Power_PowerDown_EXEC(void)

.u8PmWakeIR2 =
{ //IR wake-up key define
- IRKEY_POWER, 0x03, 0xFF, 0xFF,
+ 0x46, 0x01, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF
diff --git a/Domestic_3M_20201106/bootable/bootloader/mboot-mtk/mboot/MstarCustomer/MSTAR/include/IR_MSTAR_DTV.h b/Domestic_3M_20201106/bootable/bootloader/mboot-mtk/mboot/MstarCustomer/MSTAR/include/IR_MSTAR_DTV.h
index a2ae2d15370..338cc5250ca 100755
--- a/Domestic_3M_20201106/bootable/bootloader/mboot-mtk/mboot/MstarCustomer/MSTAR/include/IR_MSTAR_DTV.h
+++ b/Domestic_3M_20201106/bootable/bootloader/mboot-mtk/mboot/MstarCustomer/MSTAR/include/IR_MSTAR_DTV.h
@@ -86,8 +86,8 @@
#define IR_CHANNEL_USE_AS_UPDOWN 0
#define IR_VOLUME_USE_AS_LEFTRIGHT 0
// IR Header code define
-#define IR_HEADER_CODE0 0x80 // Custom 0 //0x04
-#define IR_HEADER_CODE1 0x7F // Custom 1 //0xFB
+#define IR_HEADER_CODE0 0x81 //0x80 // Custom 0 //0x04^M
+#define IR_HEADER_CODE1 0x02 //0x7F // Custom 1 //0xFB^M

// IR Timing define
#define IR_HEADER_CODE_TIME 9000 // us
@@ -133,7 +133,7 @@ typedef enum _IrCommandType
IRKEY_VOLUME_MINUS = 0x15,

IRKEY_UP = 0x52,
- IRKEY_POWER = 0x46,
+ IRKEY_POWER = 0x01,^M
IRKEY_EXIT = 0x1B,
IRKEY_MENU = 0x07,
IRKEY_DOWN = 0x13,
@@ -195,7 +195,7 @@ typedef enum _IrCommandType
IRKEY_DASH = IRKEY_DUMY-15,
IRKEY_BACKWARD = 0x02,
IRKEY_FORWARD = 0x1E,
- IRKEY_PLAY = 0x01,
+ IRKEY_PLAY = 0xA1,^M
IRKEY_RECORD = 0x0D,
IRKEY_STOP = 0x11,
IRKEY_PAUSE = 0x1D,
diff --git a/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/mi/mi/platform/m7642/linux/board_cfg/BD_MT166B_10AT/board.ini b/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/mi/mi/platform/m7642/linux/board_cfg/BD_MT166B_10AT/board.ini
index d4b89c433dc..28bcd53b4f9 100755
--- a/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/mi/mi/platform/m7642/linux/board_cfg/BD_MT166B_10AT/board.ini
+++ b/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/mi/mi/platform/m7642/linux/board_cfg/BD_MT166B_10AT/board.ini
@@ -510,7 +510,7 @@ BOARD_IR_1_LOGICAL_TIME_S8_LOW_BOND = -20;

BOARD_IR_POWER_UP_KEY_CODE = \
{\
-0x46,0x03,0xff,0xff,0xff,0xff,0xff,0xff,\
+0x01,0x03,0xff,0xff,0xff,0xff,0xff,0xff,\
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,\
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,\
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,\
diff --git a/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/pm/gen_lib/Source/drv/pm/drvPM.c b/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/pm/gen_lib/Source/drv/pm/drvPM.c
index d7e7a16bc4d..cd8e17c2e44 100755
--- a/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/pm/gen_lib/Source/drv/pm/drvPM.c
+++ b/Domestic_3M_20201106/vendor/mediatek/proprietary_tv/apollo/linux_core/misdk/pm/gen_lib/Source/drv/pm/drvPM.c
@@ -211,6 +211,9 @@ static U8 gu8SyncChecker = 0;
extern U8 u8DigTop;
#endif

+#define PM_FC_WK_HEADCODE 0x8102
+#define PM_FC_WK_KEYCODE 0x01
+
//-------------------------------------------------------------------------------------------------
// Debug Functions
//-------------------------------------------------------------------------------------------------
@@ -858,6 +861,11 @@ static BOOLEAN _MDrv_PM_IR_ParseData_Dynamic(U8 u8IRProtocol,U32 u32IRHeadcode,U
MDrv_PM_SetPowerOnKey(u8PowerKey);
return TRUE;
}
+
+ if((u16IRKeycode == PM_FC_WK_KEYCODE) && (u32IRHeadcode == PM_FC_WK_HEADCODE)){
+ MDrv_PM_SetPowerOnKey(u16Key);
+ return TRUE;
+ }
return FALSE;