diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h index 4f7017cf6..9d381a6b0 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h @@ -346,6 +346,7 @@ typedef enum { typedef enum { WDT_OTA_STS_INVALID = 0, WDT_OTA_STS_LOADER_DETECTING_FW, + WDT_OTA_STS_LOADER_DETECTING_FW_AUTO, WDT_OTA_STS_UBOOT_UPDATE_FAILED, WDT_OTA_STS_UBOOT_UPDATE_OPEN_FAILED, WDT_OTA_STS_UBOOT_UPDATE_READ_FAILED, @@ -353,6 +354,7 @@ typedef enum { WDT_OTA_STS_UBOOT_UPDATE_UNKNOWN, WDT_OTA_STS_UBOOT_UPDATE_OK, WDT_OTA_STS_LINUX_TRIGGER, + WDT_OTA_STS_LINUX_TRIGGER_AUTO, } WDT_OTA_STS; #define WDT_OTA_MAKEFOURCC(sts) MAKEFOURCC('O','T','A', sts) diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index 6158ab415..2cca748b6 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -4100,8 +4100,13 @@ INT32 PhotoExe_OnNR(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) INT32 PhotoExe_OnFocusEnd(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { extern UIMenuStoreInfo currentInfo; - currentInfo.OtaFlag = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER); - + if((PWR_ON_SETUP == sf_cardv_convert_power_on_mode())) + { + currentInfo.OtaFlag = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER); + } + else { + currentInfo.OtaFlag = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER_AUTO); + } Save_MenuInfo(); return NVTEVT_CONSUME; diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index 74a8cd2c6..3932885fb 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -2194,9 +2194,16 @@ static UINT32 sf_fwupdate(void) #else BOOL sf_ota_trigger(void) { - UINT32 uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER); + UINT32 uiUserData = 0; char cmd[128]={0}; + if((PWR_ON_SETUP == sf_cardv_convert_power_on_mode())) + { + uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER); + } + else { + uiUserData = WDT_OTA_MAKEFOURCC(WDT_OTA_STS_LINUX_TRIGGER_AUTO); + } Ux_PostEvent(NVTEVT_ALGMSG_FOCUSEND, 0); sprintf(cmd, "mem w %x %lx",WDT_REG_ADDR(WDT_DATA_OFS),uiUserData);