Messages in this thread | | | From | Pramod Gurav <> | Date | Thu, 15 Sep 2016 13:29:14 +0530 | Subject | Re: [PATCH v3] mmc: sdhci-msm: Add pm_runtime and system PM support |
| |
On 9 September 2016 at 15:48, Georgi Djakov <georgi.djakov@linaro.org> wrote: > On 09/08/2016 11:02 AM, Adrian Hunter wrote: >> >> On 01/09/16 17:23, Pramod Gurav wrote: >>> >>> Provides runtime PM callbacks to enable and disable clock resources >>> when idle. Also support system PM callbacks to be called during system >>> suspend and resume. >>> >>> Signed-off-by: Pramod Gurav <pramod.gurav@linaro.org> >> >> >> Can we get some Tested/Reviewed/Acked-by from people using this driver? >> > > Hi Pramod, > Thanks for the patch. Unfortunately, my db410c board fails to > boot when i apply it. >
Thanks Georgi for testing the patch. Its my wrong I did not update my kernel and continued fixing comments on old kernel. After spending some time I came to know that below change is causing the issue:
Author: Dong Aisheng <aisheng.dong@nxp.com> Date: Tue Jul 12 15:46:17 2016 +0800
mmc: sdhci: add standard hw auto retuning support
If HW supports SDHCI_TUNING_MODE_3 which is auto retuning, we won't retune during runtime suspend and resume, instead we use Re-tuning Request signaled via SDHCI_INT_RETUNE interrupt to do retuning and hw auto retuning during data transfer to guarantee the signal sample window correction.
This can avoid a mass of repeatedly retuning during small file system data access and improve the performance.
Specially these lines that was added to suspend path:
+ if (host->tuning_mode != SDHCI_TUNING_MODE_3) + mmc_retune_needed(host->mmc);
During sdhci setup in msm driver, the host returns the values to set sdhci auto tuning as supported. Hence host->tuning_mode is set to SDHCI_TUNING_MODE_3 during setup. But some how the auto tuning is not happening. Just to verify my case, I removed the 'if' part in above code and got the FS mounted.
Is there anything else needed in msm sdhci driver so that the auto tuning is taken care of?
> [ 1.778433] mmc0: new HS200 MMC card at address 0001 > [ 1.783115] mmcblk0: mmc0:0001 DS2008 7.28 GiB > [ 1.783337] mmcblk0boot0: mmc0:0001 DS2008 partition 1 4.00 MiB > [ 1.787025] mmcblk0boot1: mmc0:0001 DS2008 partition 2 4.00 MiB > [ 1.792893] mmcblk0rpmb: mmc0:0001 DS2008 partition 3 4.00 MiB > [ 1.802603] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 > [ 2.693631] blk_update_request: I/O error, dev mmcblk0, sector 462880 > [ 2.710381] blk_update_request: I/O error, dev mmcblk0, sector 462880 > [ 2.710443] Buffer I/O error on dev mmcblk0p10, logical block 0, async > page read > [ 2.724827] blk_update_request: I/O error, dev mmcblk0, sector 462881 > [ 2.724853] Buffer I/O error on dev mmcblk0p10, logical block 1, async > page read > ... > > More I/O errors are following and it is unable to mount the rootfs from > the eMMC. When i retried booting, got also the following: > > [ 2.877149] mmcblk0: error -110 sending status command, retrying > [ 2.879408] mmcblk0: error -110 sending status command, retrying > [ 2.884436] mmcblk0: error -110 sending status command, aborting > [ 2.896826] mmc0: cache flush error -110 > > BR, > Georgi
| |