mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ワンセグのスリープ時シャットダウン対策。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1080 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
e0a0004d7d
commit
0a4a3e2e1e
@ -12,6 +12,7 @@
|
||||
*---------------------------------------------------------------------------*/
|
||||
#include <twl.h>
|
||||
#include <twl/os/common/format_rom.h>
|
||||
#include <twl/mcu.h>
|
||||
#include <nitro/card/types.h>
|
||||
#include <firm/os/common/system.h>
|
||||
#include <sysmenu.h>
|
||||
@ -24,6 +25,9 @@
|
||||
|
||||
#define DEBUG_MODE
|
||||
|
||||
// カード電源ONからROMヘッダロードまでの期間にスリープに入る時もワンセグ対策する場合
|
||||
//#define HOWSW_DSTV_MORE_IMPORTANT_THAN_DEEP_SLEEP
|
||||
|
||||
// define -------------------------------------------------------------------
|
||||
#define CHATTERING_COUNTER 0x600
|
||||
#define COUNTER_A 0x100
|
||||
@ -35,6 +39,8 @@
|
||||
|
||||
#define SLOT_B_LOCK_BUF HW_CTRDG_LOCK_BUF
|
||||
|
||||
#define HOTSW_DSTV_GAME_CODE 'JSNU'
|
||||
|
||||
#ifdef SDK_ARM9
|
||||
#define reg_HOTSW_EXMEMCNT reg_MI_EXMEMCNT
|
||||
#define HOTSW_EXMEMCNT_SELB_MASK REG_MI_EXMEMCNT_MPB_MASK
|
||||
@ -285,6 +291,9 @@ static HotSwState LoadCardData(void)
|
||||
// カード電源リセット
|
||||
#ifdef SDK_ARM7
|
||||
McPowerOff();
|
||||
#ifdef HOWSW_DSTV_MORE_IMPORTANT_THAN_DEEP_SLEEP
|
||||
MCU_EnableDeepSleepToPowerLine( MCU_PWR_LINE_33, FALSE );
|
||||
#endif
|
||||
McPowerOn();
|
||||
#else // SDK_ARM9
|
||||
// ARM7にPXI経由でカード電源ONをお願い。ONになるまで待つ。
|
||||
@ -313,6 +322,7 @@ static HotSwState LoadCardData(void)
|
||||
|
||||
{
|
||||
SYSMRomEmuInfo *romEmuInfo = (void *)&s_romEmuInfo;
|
||||
BOOL enableDeepSleep = TRUE;
|
||||
|
||||
// バナーリードが完了して、フラグ処理が終わるまでARM9と排他制御する
|
||||
LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
||||
@ -321,6 +331,14 @@ static HotSwState LoadCardData(void)
|
||||
state = s_funcTable[s_cbData.cardType].ReadBootSegment_N(&s_cbData);
|
||||
retval = (retval == HOTSW_SUCCESS) ? state : retval;
|
||||
|
||||
// ワンセグ差込み時はカードバス電源をディープスリープ(PFM)に入れない
|
||||
// (スリープ時シャットダウン対策。カードロード中にスリープしても良いように早目に設定)
|
||||
if ( *(u32*)(s_cbData.pBootSegBuf->rh.s.game_code) == HOTSW_DSTV_GAME_CODE )
|
||||
{
|
||||
enableDeepSleep = FALSE;
|
||||
}
|
||||
MCU_EnableDeepSleepToPowerLine( MCU_PWR_LINE_33, enableDeepSleep );
|
||||
|
||||
// ARM9/7で不整合が発生しないようにRomエミュレーション情報ロードは初回のみ
|
||||
if ( ! SYSMi_GetWork()->flags.hotsw.is1stCardChecked )
|
||||
{
|
||||
@ -1312,6 +1330,9 @@ static void McThread(void *arg)
|
||||
|
||||
isPulledOut = TRUE;
|
||||
|
||||
// ワンセグのスリープ時シャットダウン対策を戻す
|
||||
MCU_EnableDeepSleepToPowerLine( MCU_PWR_LINE_33, TRUE );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user