HSMCI_ARGR = argument;
HSMCI_CMDR = index | reply_type | BV(HSMCI_CMDR_MAXLAT);
- uint32_t status = HSMCI_SR;
- while (!(status & BV(HSMCI_SR_CMDRDY)))
- {
+ uint32_t status;
+ do {
+ status = HSMCI_SR;
+
if (status & HSMCI_RESP_ERROR_MASK)
return status;
cpu_relax();
- status = HSMCI_SR;
- }
+ } while (!(status & BV(HSMCI_SR_CMDRDY)));
return 0;
}