rem: static s32 __retry(u32 chn)
add: static s32 __retry(s32 chn)
context: static s32 __retry(u32 chn){	u32 len;	card_block *card = NULL;	if(chn<EXI_CHANNEL_0 || chn>=EXI_CHANNEL_2) return CARD_ERROR_NOCARD;	card = &cardmap[chn];#ifdef _CARD_DEBUG	printf("__retry(%d)\n",chn);#endif	if(EXI_Select(chn,EXI_DEVICE_0,EXI_SPEED16MHZ)==0) {		EXI_Unlock(chn);		return CARD_ERROR_NOCARD;	}	__setuptimeout(card);	if(EXI_ImmEx(chn,card->cmd,card->cmd_len,EXI_WRITE)==0) {		EXI_Deselect(chn);		EXI_Unlock(chn);		return CARD_ERROR_NOCARD;	}		if(card->cmd[0]==0x52) {		if(EXI_ImmEx(chn,card->workarea+CARD_READSIZE,card->latency,EXI_WRITE)==0) {			EXI_Deselect(chn);			EXI_Unlock(chn);			return CARD_ERROR_NOCARD;		}	}	if(card->cmd_mode==-1) {		EXI_Deselect(chn);		EXI_Unlock(chn);		return CARD_ERROR_READY;	}	len = 128;	if(card->cmd[0]==0x52) len  = CARD_READSIZE;	if(EXI_Dma(chn,card->cmd_usr_buf,len,card->cmd_mode,__card_txhandler)==0) {		EXI_Deselect(chn);		EXI_Unlock(chn);		return CARD_ERROR_NOCARD;	}	return CARD_ERROR_READY;}