Hi, Thanks for having a look. > Hi Avri, > > 在 2024/8/14 15:29, Avri Altman 写道: > > @@ -948,13 +949,20 @@ static int mmc_sd_num_wr_blocks(struct mmc_card > *card, u32 *written_blocks) > > int err; > > u32 result; > > __be32 *blocks; > > - > > + u8 resp_sz; > > struct mmc_request mrq = {}; > > struct mmc_command cmd = {}; > > struct mmc_data data = {}; > > - > > struct scatterlist sg; > > > > + /* > > + * SD cards, specifically high volume cards, expect to be allowed with the > > + * full 500msec busy period post write. Otherwise, they may not indicate > > + * correctly the number of bytes written. > > + */ > > + if (mmc_card_is_sduc(card->host)) > > + mmc_delay(500); > > Could you kindly point me to the right section of SD spec which states > this 500ms before ACMD22 ? Is it the write busy time? Yes. I encountered it while testing SDUC: If there are some phy errors (probably caused because the micro-to-SD adapter I was using), The first get-status response contains an error bit, and the recovery flow is entered immediately. Thus, violating the min 500msec allotted to the card write. > > And as you mentioned high volume cards, I am curious if 1TB sandisk > MircoSDXC need 500ms delay as well? Theoretically should be applied to all cards. But since this code is there since forever, and no issue observed thus far - I preferred limiting this to ultra capacity cards only. Thanks, Avri