Index: firmware/target/arm/as3525/sd-as3525v2.c =================================================================== --- firmware/target/arm/as3525/sd-as3525v2.c (revision 29621) +++ firmware/target/arm/as3525/sd-as3525v2.c (working copy) @@ -423,7 +423,7 @@ /*b10 */ | ((cmd == SD_WRITE_MULTIPLE_BLOCK) ? CMD_RW_BIT: 0) /*b11 | CMD_TRANSMODE_BIT unused */ /*b12 | CMD_SENT_AUTO_STOP_BIT unused */ - /*b13 */ | (TRANSFER_CMD ? CMD_WAIT_PRV_DAT_BIT: 0) + /*b13 */ | ((cmd != SD_STOP_TRANSMISSION) ? CMD_WAIT_PRV_DAT_BIT: 0) /*b14 | CMD_ABRT_CMD_BIT unused */ /*b15 | CMD_SEND_INIT_BIT unused */ /*b20:16 */ | card_no @@ -550,22 +550,16 @@ { /* Attempt to switch cards to HS timings, non HS cards just ignore this */ /* CMD7 w/rca: Select card to put it in TRAN state */ - if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_NO_RESP, NULL)) + if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_RESP, &response)) return -7; if(sd_wait_for_tran_state(drive)) return -8; /* CMD6 */ - if(!send_cmd(drive, SD_SWITCH_FUNC, 0x80fffff1, MCI_NO_RESP, NULL)) + if(!send_cmd(drive, SD_SWITCH_FUNC, 0x80fffff1, MCI_RESP, &response)) return -9; - /* This delay is a bit of a hack, but seems to fix card detection - problems with some SD cards (particularly 16 GB and bigger cards). - Preferably we should handle this properly instead of using a delay, - see also FS#11870. */ - udelay(100000); - /* We need to go back to STBY state now so we can read csd */ /* CMD7 w/rca=0: Deselect card to put it in STBY state */ if(!send_cmd(drive, SD_DESELECT_CARD, 0, MCI_NO_RESP, NULL))