On 17 August 2015 at 14:01, Chaotian Jing <chaotian.jing@xxxxxxxxxxxx> wrote: > Hi Ulf, > Thanks, please see my comment: > On Mon, 2015-08-17 at 13:31 +0200, Ulf Hansson wrote: >> On 12 August 2015 at 10:24, Chaotian Jing <chaotian.jing@xxxxxxxxxxxx> wrote: >> > Schedule a workqueue to do tuning when CRC error >> > Call mmc_hw_reset to re-init card when data timeout >> >> Thanks to Adrian Hunter, the mmc core already supports re-tuning for >> the above scenarios through the mmc_retune_*() APIs. >> >> SDHCI driver has already adopted to use that feature, you should do >> that for the mtk-sd driver as well. >> >> Kind regards >> Uffe >> > I also noticed that the mmc core already supports re-tuning, but it is > not suitable for our host. > For EMMC, the CMD21 only support HS200/HS400 mode, for SD card, CMD19 > only support SDR50/SDR104 mode, but in our host, even 50Mhz clock > frequency may also occur CRC error, Cannot find a parameter that can > cover all SD cards which running at 50Mhz, even 25Mhz, will occur CRC > error for stress test, DDR50 mode is worse. I don't follow. You may run for example HS200 in lower speed, nothing will prevent tuning and re-tuning from happen for these scenarios. Or you are talking about other speed modes than HS200/400 and SDR50/104? If so, which speed modes are these? BTW, there are currently a patch being discussed which is about adding tuning for DDR mode. Please have look. http://www.spinics.net/lists/arm-kernel/msg438434.html Regarding re-tuning on CRC errors, that's already supported by the mmc core. More precisely when a host driver returns -EILSEQ for a request. > By the way,there are too many tune parameters need try for response, > read data, write crc status CRC error, these parameters are > multidimensional, it is hard to find a best parameter, and, try > thousands of parameters will take long time. As I see, it's your responsibility from the host driver to propagate the proper error code towards the mmc core. If you encounter an error that you want to trigger a retune, just return -EILSEQ. Moreover, if you see a need to extend the tuning/re-tuning support in the mmc core to suit your need - I am definitely open to look into that. More importantly, I don't want to see host specific hacks trying to deal with this. Kind regards Uffe -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html