summaryrefslogtreecommitdiff
path: root/wilink_6_1/Txn/SdioBusDrv.c
diff options
context:
space:
mode:
Diffstat (limited to 'wilink_6_1/Txn/SdioBusDrv.c')
-rw-r--r--wilink_6_1/Txn/SdioBusDrv.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/wilink_6_1/Txn/SdioBusDrv.c b/wilink_6_1/Txn/SdioBusDrv.c
index 9264e7e..87da8f5 100644
--- a/wilink_6_1/Txn/SdioBusDrv.c
+++ b/wilink_6_1/Txn/SdioBusDrv.c
@@ -470,6 +470,19 @@ static void busDrv_SendTxnParts (TBusDrvObj *pBusDrv)
pTxnPart->uLength,
TXN_PARAM_GET_DIRECTION(pTxn),
pTxnPart->bMore);
+
+ /* If first write failed try once again (may happen once upon chip wakeup) */
+ if (eStatus == TXN_STATUS_ERROR)
+ {
+ /* Overwrite the function id with function 0 - for ELP register !!!! */
+ eStatus = sdioAdapt_TransactBytes (TXN_FUNC_ID_CTRL,
+ pTxnPart->uHwAddr,
+ pTxnPart->pHostAddr,
+ pTxnPart->uLength,
+ TXN_PARAM_GET_DIRECTION(pTxn),
+ pTxnPart->bMore);
+ TRACE0(pBusDrv->hReport, REPORT_SEVERITY_WARNING, "busDrv_SendTxnParts: SDIO Single-Step transaction failed once so try again");
+ }
}
else
{