//----- Erase_D_PhyOneBlock() ------------------------------------------ int Erase_D_PhyOneBlock(struct us_data *us) { //SSFDCTYPE_T aa = (SSFDCTYPE_T ) &Ssfdc; //ADDRESS_T bb = (ADDRESS_T) &Media; if (Ssfdc_D_EraseBlock(us)) { ErrCode = ERR_HwError; MediaChange=ERROR; return(ERROR); } if (Ssfdc_D_CheckStatus()) { ErrCode = ERR_WriteFault; return(ERROR); } return(SMSUCCESS); }
int Erase_D_PhyOneBlock(struct us_data *us) { if (Ssfdc_D_EraseBlock(us)) { ErrCode = ERR_HwError; MediaChange=ERROR; return(ERROR); } if (Ssfdc_D_CheckStatus()) { ErrCode = ERR_WriteFault; return(ERROR); } return(SMSUCCESS); }
//SmartMedia Physical Sector Data Copy Subroutine //----- Copy_D_PhyOneSect() -------------------------------------------- int Copy_D_PhyOneSect(struct us_data *us) { int i; DWORD err, retry; //SSFDCTYPE_T aa = (SSFDCTYPE_T ) &Ssfdc; //ADDRESS_T bb = (ADDRESS_T) &Media; /* pr_info("Copy_D_PhyOneSect --- Secotr = %x\n", Media.Sector); */ if (ReadBlock!=NO_ASSIGN) { Media.PhyBlock=ReadBlock; for(retry=0; retry<2; retry++) { if (retry!=0) { Ssfdc_D_Reset(us); if (Ssfdc_D_ReadCisSect(us,WorkBuf,WorkRedund)) { ErrCode = ERR_HwError; MediaChange=ERROR; return(ERROR); } if (Check_D_CISdata(WorkBuf,WorkRedund)) { ErrCode = ERR_HwError; MediaChange=ERROR; return(ERROR); } } if (Ssfdc_D_ReadSect(us,WorkBuf,WorkRedund)) { ErrCode = ERR_HwError; MediaChange=ERROR; return(ERROR); } if (Check_D_DataStatus(WorkRedund)) { err=ERROR; break; } if (!Check_D_ReadError(WorkRedund)) { err=SMSUCCESS; break; } if (!Check_D_Correct(WorkBuf,WorkRedund)) { err=SMSUCCESS; break; } err=ERROR; SectCopyMode=REQ_FAIL; } } else { err=SMSUCCESS; for(i=0; i<SECTSIZE; i++) WorkBuf[i]=DUMMY_DATA; Clr_D_RedundantData(WorkRedund); } Set_D_LogBlockAddr(WorkRedund); if (err==ERROR) { Set_D_RightECC(WorkRedund); Set_D_DataStaus(WorkRedund); } Media.PhyBlock=WriteBlock; if (Ssfdc_D_WriteSectForCopy(us, WorkBuf, WorkRedund)) { ErrCode = ERR_HwError; MediaChange=ERROR; return(ERROR); } if (Ssfdc_D_CheckStatus()) { ErrCode = ERR_WriteFault; return(ERROR); } Media.PhyBlock=ReadBlock; return(SMSUCCESS); }