Re: [PATCH v4 9/9] mmc: core: Adjust ACMD22 to SDUC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 26/08/24 10:26, Avri Altman wrote:
>>> +     /*
>>> +      * 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_ult_capacity(card))
>>> +             mmc_delay(500);
>>
>> To get here, it should have had to go through:
>>
>>         /* Try to get back to "tran" state */
>>         if (!mmc_host_is_spi(mq->card->host) &&
>>             (err || !mmc_ready_for_data(status)))
>>                 err = mmc_blk_fix_state(mq->card, req);
>>
>> which would mean the card is not indicating "busy".
>> Either that is not working, or it seems like an issue with the card, in which case
>> it could be a card quirk perhaps.
> I was getting here on a setup with micro-to-SD adapter - I guess because of phy errors on one of the early card versions.
> On my other setups, the recovery flow wasn't triggered.
> What was happening is:
> mmc_blk_mq_req_done
> 	mmc_blk_mq_complete_prev_req
> 		mmc_blk_mq_poll_completion
> 			CMD13: 0: 00080900 00000000 00000000 00000000 = READY_FOR_DATA + ERROR
> 			mmc_blk_mq_rw_recovery
> 				mmc_sd_num_wr_blocks - bytes_xfered = 0
> 
> Consulting with our SD system guys, the 500msec must-have write timeout brought up,
> And fixed that.
> Shawn was interested in this as well - see the discussion in V3.

The spec reads like the timeout is for card busy.  If the card is
not indicating busy when it is busy, then that is an issue with
the card.





[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux