RE: [PATCH 0/3] mmc: also abort tuning with CMD12 for SD

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

 



Hi,
 
> After my hackish RFC patch, here is a small series implementing
> (hopefully) the solution we discussed. It will make
> mmc_send_abort_tuning() also send CMD12 for SD cards which makes more
> SD
> cards work for us. Details are in the patch descriptions.
> 
> Please let me know what you think.
> 
> Thanks, and happy hacking!
I made note of your patch series to our SD (hw) guys, and here is what they say:

"We are ok with host sending CMD12 to abort data transfer when they discover failure with response / incoming data. 
In both SD/eMMC spec, stop transmission command is allowed during data transfer phase ('data' state).
Sometimes, the CMD12 would have been received by card while in 'tran' state. As long host is able to handle the 'illegal command' error indication for this situation, we don't see any other problem. 

Per SD Spec, CMD12 is allowed in 'tran' state only for SDUC card. In non SDUC cards, CMD12 received while in 'tran' state will be treated as illegal command.

However we could not understand how aborting the data transfer is helping host to complete the tuning scheme and have successful read / write operations."

They also think that :
" we believe this hack was added to avoid the data transfer after response crc error...
Receiving CRC error with the tuning pattern would be normal as long as the tuning was not complete."

My 5 cents are, maybe you should try retries > 0 in sd_send_abort_tuning,
If indeed it's a crc while tuning is not complete.

Thanks,
Avri 

> 
> 
> Wolfram Sang (3):
>   mmc: core: add helper to send STOP
>   mmc: core: also abort tuning with CMD12 for SD
>   mmc: core: remove obsolete parameter from mmc_send_abort_tuning
> 
>  drivers/mmc/core/block.c             | 14 +-------------
>  drivers/mmc/core/core.h              |  1 +
>  drivers/mmc/core/mmc.c               |  6 ++++++
>  drivers/mmc/core/mmc_ops.c           | 23 ++++-------------------
>  drivers/mmc/core/mmc_ops.h           | 14 ++++++++++++++
>  drivers/mmc/core/sd.c                |  6 ++++++
>  drivers/mmc/host/renesas_sdhi_core.c |  2 +-
>  drivers/mmc/host/sdhci.c             |  2 +-
>  include/linux/mmc/host.h             |  2 +-
>  9 files changed, 35 insertions(+), 35 deletions(-)
> 
> --
> 2.30.2





[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