43 #define SD_INT_ERROR (MCI_INT_RESP_ERR | MCI_INT_RCRC | MCI_INT_DCRC | \
44 MCI_INT_RTO | MCI_INT_DTO | MCI_INT_HTO | MCI_INT_FRUN | MCI_INT_HLE | \
45 MCI_INT_SBE | MCI_INT_EBE)
156 static uint32_t
prv_get_bits(int32_t start, int32_t end, uint32_t *data)
159 uint32_t i = end >> 5;
160 uint32_t j = start & 0x1f;
162 if (i == (start >> 5)) {
166 v = ((data[i] << (32 - j)) | (data[start >> 5] >> j));
169 return v & ((1 << (end - start + 1)) - 1);
177 int32_t c_size_mult = 0;
192 mult = 1 << (c_size_mult + 2);
279 #if SDIO_BUS_WIDTH > 1
289 #elif SDIO_BUS_WIDTH > 4
290 #error 8-bit mode not supported yet!
329 uint32_t command = 0;
331 g_card_info = pcardinfo;
341 while (state < 100) {
378 if (status & MCI_INT_RTO) {
399 while ((ocr & OCR_ALL_READY) && --tries > 0) {
404 if (ocr & OCR_ALL_READY) {
423 }
while (!(r & OCR_ALL_READY) && --tries > 0);
425 if (r & OCR_ALL_READY) {
503 if (( start_block < 0) || ( (start_block + num_blocks) > g_card_info->
card_info.
blocknr) ) {
520 index = start_block << 9;
526 if (num_blocks == 1) {
550 if (( start_block < 0) || ( (start_block + num_blocks) > g_card_info->
card_info.
blocknr) ) {
570 index = start_block << 9;
577 if (num_blocks == 1) {