Skip to content

Commit

Permalink
Staging: rtl8192su: refactored FirmwareCheckReady
Browse files Browse the repository at this point in the history
replaced if..else if..else by a switch.
this is hopefully easier to read.

plus cosmetics.

Signed-off-by: Florian Schilhabel <florian.c.schilhabel@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Florian Schilhabel authored and Greg Kroah-Hartman committed May 11, 2010
1 parent 199ef62 commit e695b47
Showing 1 changed file with 64 additions and 76 deletions.
140 changes: 64 additions & 76 deletions drivers/staging/rtl8192su/r8192S_firmware.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ bool FirmwareDownloadCode(struct net_device *dev,
}


RT_STATUS FirmwareEnableCPU(struct net_device *dev)
bool FirmwareEnableCPU(struct net_device *dev)
{
RT_STATUS rtStatus = RT_STATUS_SUCCESS;
bool rtStatus = true;
u8 tmpU1b, CPUStatus = 0;
u16 tmpU2b;
u32 iCheckTime = 200;
Expand All @@ -129,8 +129,8 @@ RT_STATUS FirmwareEnableCPU(struct net_device *dev)
udelay(100);
} while (iCheckTime--);
if (!(CPUStatus & IMEM_RDY)) {
RT_TRACE(COMP_ERR, "(%s): failed to enable CPU\n", __func__);
rtStatus = RT_STATUS_FAILURE;
RT_TRACE(COMP_ERR, "%s(): failed to enable CPU", __func__);
rtStatus = false;
}
return rtStatus;
}
Expand Down Expand Up @@ -165,106 +165,87 @@ FirmwareGetNextStatus(FIRMWARE_8192S_STATUS FWCurrentStatus)
return NextFWStatus;
}

bool
FirmwareCheckReady(struct net_device *dev, u8 LoadFWStatus)
bool FirmwareCheckReady(struct net_device *dev, u8 LoadFWStatus)
{
struct r8192_priv *priv = ieee80211_priv(dev);
RT_STATUS rtStatus = RT_STATUS_SUCCESS;
rt_firmware *pFirmware = priv->pFirmware;
int PollingCnt = 1000;
//u8 tmpU1b, CPUStatus = 0;
u8 CPUStatus = 0;
u32 tmpU4b;
//bool bOrgIMREnable;

RT_TRACE(COMP_FIRMWARE, "--->FirmwareCheckReady(): LoadStaus(%d),", LoadFWStatus);
struct r8192_priv *priv = ieee80211_priv(dev);
bool rtStatus = true;
rt_firmware *pFirmware = priv->pFirmware;
int PollingCnt = 1000;
u8 CPUStatus = 0;
u32 tmpU4b;

pFirmware->FWStatus = (FIRMWARE_8192S_STATUS)LoadFWStatus;
if( LoadFWStatus == FW_STATUS_LOAD_IMEM)
{
do
{//Polling IMEM code done.
switch (LoadFWStatus) {
case FW_STATUS_LOAD_IMEM:
do { /* Polling IMEM code done. */
CPUStatus = read_nic_byte(dev, TCR);
if(CPUStatus& IMEM_CODE_DONE)
break;

udelay(5);
}while(PollingCnt--);
if(!(CPUStatus & IMEM_CHK_RPT) || PollingCnt <= 0)
{
} while (PollingCnt--);
if (!(CPUStatus & IMEM_CHK_RPT) || PollingCnt <= 0) {
RT_TRACE(COMP_ERR, "FW_STATUS_LOAD_IMEM FAIL CPU, Status=%x\r\n", CPUStatus);
return false;
goto FirmwareCheckReadyFail;
}
}
else if( LoadFWStatus == FW_STATUS_LOAD_EMEM)
{//Check Put Code OK and Turn On CPU
do
{//Polling EMEM code done.
break;
case FW_STATUS_LOAD_EMEM: /* Check Put Code OK and Turn On CPU */
do { /* Polling EMEM code done. */
CPUStatus = read_nic_byte(dev, TCR);
if(CPUStatus& EMEM_CODE_DONE)
break;

udelay(5);
}while(PollingCnt--);
if(!(CPUStatus & EMEM_CHK_RPT))
{
} while (PollingCnt--);
if (!(CPUStatus & EMEM_CHK_RPT)) {
RT_TRACE(COMP_ERR, "FW_STATUS_LOAD_EMEM FAIL CPU, Status=%x\r\n", CPUStatus);
return false;
goto FirmwareCheckReadyFail;
}

// Turn On CPU
rtStatus = FirmwareEnableCPU(dev);
if(rtStatus != RT_STATUS_SUCCESS)
{
RT_TRACE(COMP_ERR, "Enable CPU fail ! \n" );
return false;
/* Turn On CPU */
if (FirmwareEnableCPU(dev) != true) {
RT_TRACE(COMP_ERR, "%s(): failed to enable CPU",
__func__);
goto FirmwareCheckReadyFail;
}
}
else if( LoadFWStatus == FW_STATUS_LOAD_DMEM)
{
do
{//Polling DMEM code done
break;
case FW_STATUS_LOAD_DMEM:
do { /* Polling DMEM code done */
CPUStatus = read_nic_byte(dev, TCR);
if(CPUStatus& DMEM_CODE_DONE)
break;

udelay(5);
}while(PollingCnt--);
} while (PollingCnt--);

if(!(CPUStatus & DMEM_CODE_DONE))
{
if (!(CPUStatus & DMEM_CODE_DONE)) {
RT_TRACE(COMP_ERR, "Polling DMEM code done fail ! CPUStatus(%#x)\n", CPUStatus);
return false;
goto FirmwareCheckReadyFail;
}

RT_TRACE(COMP_FIRMWARE, "DMEM code download success, CPUStatus(%#x)\n", CPUStatus);
RT_TRACE(COMP_FIRMWARE, "%s(): DMEM code download success, "
"CPUStatus(%#x)",
__func__, CPUStatus);

// PollingCnt = 100; // Set polling cycle to 10ms.
PollingCnt = 10000; // Set polling cycle to 10ms.
PollingCnt = 10000; /* Set polling cycle to 10ms. */

do
{//Polling Load Firmware ready
do { /* Polling Load Firmware ready */
CPUStatus = read_nic_byte(dev, TCR);
if(CPUStatus & FWRDY)
break;

udelay(100);
}while(PollingCnt--);
} while (PollingCnt--);

RT_TRACE(COMP_FIRMWARE, "Polling Load Firmware ready, CPUStatus(%x)\n", CPUStatus);
RT_TRACE(COMP_FIRMWARE, "%s(): polling load firmware ready, "
"CPUStatus(%x)",
__func__, CPUStatus);

//if(!(CPUStatus & LOAD_FW_READY))
//if((CPUStatus & LOAD_FW_READY) != 0xff)
if((CPUStatus & LOAD_FW_READY) != LOAD_FW_READY)
{
RT_TRACE(COMP_ERR, "Polling Load Firmware ready fail ! CPUStatus(%x)\n", CPUStatus);
return false;
if ((CPUStatus & LOAD_FW_READY) != LOAD_FW_READY) {
RT_TRACE(COMP_ERR, "Polling Load Firmware ready failed "
"CPUStatus(%x)\n", CPUStatus);
goto FirmwareCheckReadyFail;
}

//
// <Roger_Notes> USB interface will update reserved followings parameters later!!
// 2008.08.28.
//
/*
* USB interface will update
* reserved followings parameters later
*/

//
// <Roger_Notes> If right here, we can set TCR/RCR to desired value
Expand All @@ -277,16 +258,23 @@ FirmwareCheckReady(struct net_device *dev, u8 LoadFWStatus)
write_nic_dword(dev, RCR,
(tmpU4b|RCR_APPFCS|RCR_APP_ICV|RCR_APP_MIC));

RT_TRACE(COMP_FIRMWARE, "FirmwareCheckReady(): Current RCR settings(%#x)\n", tmpU4b);


RT_TRACE(COMP_FIRMWARE, "%s(): Current RCR settings(%#x)",
__func__, tmpU4b);
// Set to normal mode.
write_nic_byte(dev, LBKMD_SEL, LBK_NORMAL);

break;
default:
break;
}
RT_TRACE(COMP_FIRMWARE, "%s(): LoadFWStatus(%d), success",
__func__, LoadFWStatus);
return rtStatus;

RT_TRACE(COMP_FIRMWARE, "<---FirmwareCheckReady(): LoadFWStatus(%d), rtStatus(%x)\n", LoadFWStatus, rtStatus);
return (rtStatus == RT_STATUS_SUCCESS) ? true:false;
FirmwareCheckReadyFail:
rtStatus = false;
RT_TRACE(COMP_FIRMWARE, "%s(): LoadFWStatus(%d), failed",
__func__, LoadFWStatus);
return rtStatus;
}

//
Expand Down

0 comments on commit e695b47

Please sign in to comment.