From 6dd153b7ea126db67cf33136f27711dad612e35e Mon Sep 17 00:00:00 2001 From: kamikawa Date: Wed, 25 Jun 2008 11:46:20 +0000 Subject: [PATCH] =?UTF-8?q?LCFG=5FReadTWLSettings=E3=81=AE=E5=86=85?= =?UTF-8?q?=E9=83=A8=E3=81=A7TWL=E8=A8=AD=E5=AE=9A=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=81=8C=E3=83=AA=E3=82=AB=E3=83=90=E3=83=AA?= =?UTF-8?q?=E7=94=9F=E6=88=90=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84=E4=BB=95?= =?UTF-8?q?=E6=A7=98=E3=81=AB=E5=A4=89=E6=9B=B4=E3=81=95=E3=82=8C=E3=81=9F?= =?UTF-8?q?=E3=81=AE=E3=81=AB=E4=BC=B4=E3=81=84=E3=80=81LCFG=5FRecoveryTWL?= =?UTF-8?q?Settings=E3=81=A7=E6=98=8E=E7=A4=BA=E7=9A=84=E3=81=AB=E3=83=AA?= =?UTF-8?q?=E3=82=AB=E3=83=90=E3=83=AA=E7=94=9F=E6=88=90=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1704 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/systemMenu_tools/HWInfoWriter/ARM9/src/hwi.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/build/systemMenu_tools/HWInfoWriter/ARM9/src/hwi.c b/build/systemMenu_tools/HWInfoWriter/ARM9/src/hwi.c index bd508b01..cae60174 100644 --- a/build/systemMenu_tools/HWInfoWriter/ARM9/src/hwi.c +++ b/build/systemMenu_tools/HWInfoWriter/ARM9/src/hwi.c @@ -139,12 +139,11 @@ static BOOL ReadTWLSettings( void ) BOOL result; if( pBuffer ) { result = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer ); - // Readに失敗した場合 LCFG_ReadTWLSettings 内部でファイルがリカバリ生成されるが - // 返り値は FALSE となるためもう一度リードを試みる + // Readに失敗した場合ファイルのリカバリ生成を試みる if (!result) { OS_TPrintf( "TSD read failed. Retry onece more.\n" ); - result = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer ); + result = LCFG_RecoveryTWLSettings(); } spFree( pBuffer ); } @@ -307,8 +306,13 @@ BOOL HWI_ModifyLanguage( u8 region ) if( pBuffer ) { if (!LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer )) { - result = FALSE; - OS_TPrintf("Fail! LCFG_WriteTWLSettings()\n"); + // NANDをフォーマットした直後でTWL設定ファイルが存在しない場合は書き込みに失敗するため + // TWL設定ファイルをリカバリ生成して再チャレンジする + if (!LCFG_RecoveryTWLSettings() && !LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer )) + { + result = FALSE; + OS_TPrintf("Fail! LCFG_WriteTWLSettings()\n"); + } } spFree( pBuffer ); }