カード電源ONフラグの移動に対応(SDKr6048)。

HOTSW終了処理をより安全に。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1421 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2008-05-20 06:04:02 +00:00
parent 1b233ea7d4
commit df127afa02

View File

@ -1866,6 +1866,9 @@ static void FinalizeHotSw(HotSwApliType type)
} }
finalized = TRUE; finalized = TRUE;
// カード挿入検出停止
(void)OS_DisableIrqMask( HOTSW_IF_CARD_DET );
// ポーリングスレッドを消去 // ポーリングスレッドを消去
OS_KillThread( &HotSwThreadData.monitorThread, NULL ); OS_KillThread( &HotSwThreadData.monitorThread, NULL );
@ -1908,7 +1911,7 @@ static void FinalizeHotSw(HotSwApliType type)
} }
// NANDアプリヘッダはコピー済み // NANDアプリヘッダはコピー済み
if(((ROM_Header*)SYSM_APP_ROM_HEADER_BUF)->s.game_card_on){ if(((ROM_Header*)SYSM_APP_ROM_HEADER_BUF)->s.access_control.game_card_on){
McPowerOn(); McPowerOn();
s_cbData.modeType = HOTSW_MODE2; s_cbData.modeType = HOTSW_MODE2;
@ -2060,10 +2063,10 @@ static void SendPxiMessage(HotSwCallBackType type)
static void ClearCardIrq(void) static void ClearCardIrq(void)
{ {
// HotSwで使っている割り込みを無効にする // HotSwで使っている割り込みを無効にする
(void)OS_DisableIrq(); OSIntrMode irq = OS_DisableInterrupts();
(void)OS_SetIrqMask( OS_GetIrqMask() & ~HOTSW_IF_CARD_DET ); (void)OS_DisableIrqMask( HOTSW_IF_CARD_DET );
(void)OS_ResetRequestIrqMask( HOTSW_IF_CARD_DET ); (void)OS_ResetRequestIrqMask( HOTSW_IF_CARD_DET );
(void)OS_EnableIrq(); (void)OS_RestoreInterrupts( irq );
} }