From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jaehoon Chung Subject: Re: [PATCH v2 2/2] mmc: core: fall back host->f_init if failing to init mmc card after resume Date: Tue, 02 Aug 2016 19:47:32 +0900 Message-ID: <57A07A44.9000400@samsung.com> References: <1468979860-28712-1-git-send-email-shawn.lin@rock-chips.com> <1468979860-28712-2-git-send-email-shawn.lin@rock-chips.com> <98cd6af4-3296-9020-aeae-802f797f0631@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="gbk" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <98cd6af4-3296-9020-aeae-802f797f0631-TNX95d0MmH7DzftRWevZcw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+glpar-linux-rockchip=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: Shawn Lin , Ulf Hansson Cc: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Doug Anderson , linux-mmc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Adrian Hunter , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-mmc@vger.kernel.org SGkgU2hhd24sCgpPbiAwOC8wMi8yMDE2IDA2OjA3IFBNLCBTaGF3biBMaW4gd3JvdGU6Cj4gSGkg VWxmLAo+IAo+INTaIDIwMTYvNy8yMCA5OjU3LCBTaGF3biBMaW4g0LS1wDoKPj4gV2Ugb2JzZXJ2 ZWQgdGhlIGZhaWx1cmUgb2YgaW5pdGlhbGl6aW5nIGNhcmQgYWZ0ZXIgcmVzdW1lCj4+IGFjY2lk ZW50YWxseS4gSXQncyBoYXJkIHRvIHJlcHJvZHVjZSBidXQgd2UgZGlkIGdldCByZXBvcnQgZnJv bQo+PiB0aGUgc3VzcGVuZC9yZXN1bWUgdGVzdCBvZiBvdXIgUkszMzk5IG1wIHRlc3QgZmFybSAu IFVuZm9ydHVuYXRlbHksCj4+IHdlIHN0aWxsIGZhaWwgdG8gZmlndXJlIG91dCB3aGF0IHdhcyBn b2luZyB3cm9uZyBhdCB0aGF0IHRpbWUuCj4+IEFsc28gd2UgY2FuJ3QgYWNoaWV2ZSBpdCBieSBy ZXRyeWluZyB0aGUgaG9zdC0+Zl9pbml0IHdpdGhvdXQgZmFsbGluZwo+PiBiYWNrIGl0LiBCdXQg dGhpcyBwYXRjaCB3aWxsIHNvbHZlIHRoZSBwcm9ibGVtIGFzIHdlIGNvdWxkIGFkZCBzb21lIGxv Zwo+PiB0aGVyZSBhbmQgc2VlIHRoYXQgd2UgcmVzdW1lIHRoZSBtbWMgY2FyZCBzdWNjZXNzZnVs bHkgYWZ0ZXIgZmFsbGluZwo+PiBiYWNrIHRoZSBob3N0LT5mX2luaXQuIFRoZXJlIGlzIG5vIG9i dmlvdXMgc2lkZSBlZmZlY3QgZm91bmQsIHNvIGl0IHNlZW1zCj4+IHRoaXMgcGF0Y2ggd2lsbCBp bXByb3ZlIHRoZSBzdGFiaWxpdHkuCj4+Cj4+IFsgICA5My40MDUwODVdIG1tYzE6IHVuZXhwZWN0 ZWQgc3RhdHVzIDB4ODAwOTAwIGFmdGVyIHN3aXRjaAo+PiBbICAgOTMuNDA4NDc0XSBtbWMxOiBz d2l0Y2ggdG8gYnVzIHdpZHRoIDEgZmFpbGVkCj4+IFsgICA5My40MDg0ODJdIG1tYzE6IG1tY19z ZWxlY3RfaHMyMDAgZmFpbGVkLCBlcnJvciAtMTEwCj4+IFsgICA5My40MDg0OTJdIG1tYzE6IGVy cm9yIC0xMTAgZHVyaW5nIHJlc3VtZSAoY2FyZCB3YXMgcmVtb3ZlZD8pCj4+IFsgICA5My40MDg3 MDVdIFBNOiByZXN1bWUgb2YgZGV2aWNlcyBjb21wbGV0ZSBhZnRlciAyMTMuNDUzIG1zZWNzCj4+ CgpTdGF0dXMgMHg4MDA5MDAgaXMgQ09NX0NSQ19FUlJPUi4uaXQgc2VlbXMgdGhhdCBDUkMgY2hl Y2sgZmFpbHMuCkJ1dCBpIGRvbid0IGtub3cgd2hhdCBpcyByZWxhdGVkIHdpdGggImZhbGwgYmFj ayBob3N0LT5mX2luaXQiLgoKSSBkb24ndCBoYXZlIGEga25vd2xlZGdlIG9mIHJvY2tjaGlwLi4u CmJ1dCBpbiBteSBleHBlcmllbmNlLCB0aGVyZSBhcmUgc29tZSBjYXNlcywgbm90IG1tYyBjb3Jl IHByb2JsZW0uLgoKMS4gRXh5bm9zIGlzIHVzaW5nIHRoZSBncGlvIGFzIGNsay9jbWQvZGF0YSBs aW5lLi5hbmQgZ3BpbyBoYXMgdGhlIGRyaXZlciBzdHJlbmd0aCB2YWx1ZS4KSWYgZHJpdmVyIHN0 cmVuZ3RoIGlzIGNoYW5nZWQgYWZ0ZXIgcmVzdW1pbmcsIGl0J3MgcG9zc2libGUgdG8gb2NjdXIg dGhlIGVycm9yLgoKMi4gQW5kIGdsaXRjaCBmb3IgSS9PIGxpbmUuLnRoaXMgbG9vcCBoYXMgdGhl IGRlbGF5Li5KdXN0IGRlbGF5PyAKClNvIHlvdSBjYW4gY2hlY2sgdGhlIG90aGVyIHByb2JsZW0u Li4gOikKCkF0IEJvb3RpbmcgdGltZSwgZl9pbml0IGNhbiB1c2UgNDAwSy4uYnV0IGFmdGVyIHJl c3VtaW5nLi5mX2luaXQgbmVlZCB0byB1c2UgMTAwSy4uaG1tLi5zdHJhbmdlLi4KCkJlc3QgUmVn YXJkcywKSmFlaG9vbiBDaHVuZwoKPiAKPiBBbnkgY29tbWVudHMgZm9yIHRoaXMgcGF0Y2g/IDop Cj4gCj4+IFNpZ25lZC1vZmYtYnk6IFNoYXduIExpbiA8c2hhd24ubGluQHJvY2stY2hpcHMuY29t Pgo+Pgo+PiAtLS0KPj4KPj4gQ2hhbmdlcyBpbiB2MjoKPj4gLSByZW1vdmUgbW1jX3Bvd2VyX29m Zgo+PiAtIHRha2UgZl9taW4gaW50byBjb25zaWRlcmF0aW9uCj4+Cj4+ICBkcml2ZXJzL21tYy9j b3JlL21tYy5jIHwgMTkgKysrKysrKysrKysrKysrKystLQo+PiAgMSBmaWxlIGNoYW5nZWQsIDE3 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L21tYy9jb3JlL21tYy5jIGIvZHJpdmVycy9tbWMvY29yZS9tbWMuYwo+PiBpbmRleCA0MDNiOTdi Li5hMjg5MWMxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL21tYy9jb3JlL21tYy5jCj4+ICsrKyBi L2RyaXZlcnMvbW1jL2NvcmUvbW1jLmMKPj4gQEAgLTE5NDUsNiArMTk0NSw3IEBAIHN0YXRpYyBp bnQgbW1jX3N1c3BlbmQoc3RydWN0IG1tY19ob3N0ICpob3N0KQo+PiAgc3RhdGljIGludCBfbW1j X3Jlc3VtZShzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpCj4+ICB7Cj4+ICAgICAgaW50IGVyciA9IDA7 Cj4+ICsgICAgaW50IGk7Cj4+Cj4+ICAgICAgQlVHX09OKCFob3N0KTsKPj4gICAgICBCVUdfT04o IWhvc3QtPmNhcmQpOwo+PiBAQCAtMTk1NCw4ICsxOTU1LDIyIEBAIHN0YXRpYyBpbnQgX21tY19y ZXN1bWUoc3RydWN0IG1tY19ob3N0ICpob3N0KQo+PiAgICAgIGlmICghbW1jX2NhcmRfc3VzcGVu ZGVkKGhvc3QtPmNhcmQpKQo+PiAgICAgICAgICBnb3RvIG91dDsKPj4KPj4gLSAgICBtbWNfcG93 ZXJfdXAoaG9zdCwgaG9zdC0+Y2FyZC0+b2NyKTsKPj4gLSAgICBlcnIgPSBtbWNfaW5pdF9jYXJk KGhvc3QsIGhvc3QtPmNhcmQtPm9jciwgaG9zdC0+Y2FyZCk7Cj4+ICsgICAgLyoKPj4gKyAgICAg KiBMZXQncyB0cnkgdG8gZmFsbGJhY2sgdGhlIGhvc3QtPmZfaW5pdAo+PiArICAgICAqIGlmIGZh aWxpbmcgdG8gaW5pdCBtbWMgY2FyZCBhZnRlciByZXN1bWUuCj4+ICsgICAgICovCj4+ICsgICAg Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZnJlcXMpOyBpKyspIHsKPj4gKyAgICAgICAgaWYg KGhvc3QtPmZfaW5pdCA8IG1heChmcmVxc1tpXSwgaG9zdC0+Zl9taW4pKQo+PiArICAgICAgICAg ICAgY29udGludWU7Cj4+ICsgICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAgIGhvc3QtPmZfaW5p dCA9IG1heChmcmVxc1tpXSwgaG9zdC0+Zl9taW4pOwo+PiArCj4+ICsgICAgICAgIG1tY19wb3dl cl91cChob3N0LCBob3N0LT5jYXJkLT5vY3IpOwo+PiArICAgICAgICBlcnIgPSBtbWNfaW5pdF9j YXJkKGhvc3QsIGhvc3QtPmNhcmQtPm9jciwgaG9zdC0+Y2FyZCk7Cj4+ICsgICAgICAgIGlmICgh ZXJyKQo+PiArICAgICAgICAgICAgYnJlYWs7Cj4+ICsgICAgfQo+PiArCj4+ICAgICAgbW1jX2Nh cmRfY2xyX3N1c3BlbmRlZChob3N0LT5jYXJkKTsKPj4KPj4gIG91dDoKPj4KPiAKPiAKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hp cCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752065AbcHBKsd (ORCPT ); Tue, 2 Aug 2016 06:48:33 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:58307 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751795AbcHBKsW (ORCPT ); Tue, 2 Aug 2016 06:48:22 -0400 MIME-version: 1.0 Content-type: text/plain; charset=gbk X-AuditID: cbfee68e-f79cb6d000006cfe-d9-57a07a446ea0 Content-transfer-encoding: 8BIT Message-id: <57A07A44.9000400@samsung.com> Date: Tue, 02 Aug 2016 19:47:32 +0900 From: Jaehoon Chung User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Shawn Lin , Ulf Hansson Cc: Adrian Hunter , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Anderson , linux-rockchip@lists.infradead.org Subject: Re: [PATCH v2 2/2] mmc: core: fall back host->f_init if failing to init mmc card after resume References: <1468979860-28712-1-git-send-email-shawn.lin@rock-chips.com> <1468979860-28712-2-git-send-email-shawn.lin@rock-chips.com> <98cd6af4-3296-9020-aeae-802f797f0631@rock-chips.com> In-reply-to: <98cd6af4-3296-9020-aeae-802f797f0631@rock-chips.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOIsWRmVeSWpSXmKPExsWyRsSkUNelakG4weI3ghYnn6xhszi77CCb xeVdc9gsjvzvZ7T49OA/s8WdJ+tZLY6vDXdg95jdcJHFY/Gel0wed67tYfPYvKTe4++s/Swe nzfJBbBFcdmkpOZklqUW6dslcGU8v7qYseCyZMX1k7OZGhgfCncxcnJICJhITHmzhQXCFpO4 cG89WxcjF4eQwApGif0NjSwwRa9OL4RKzGKUWHz0GitIgldAUOLH5HtARRwczALyEkcuZYOE mQVUJbZ9vcMCUf+AUWLjzI1sEPVaEo+WrWEEsVmAil7//wQ2h01AR2L7t+NMILaoQJjEg3V7 weIiAn4SW3dsBVvMLLCZUWLXgqlgCWGBDIlfP64wQWyYzCQx//dqdpAEp4CTxLXp+1hBEhIC 99glZvY+YYdYJyDxbfIhsFMlBGQlNh1ghnhNUuLgihssExjFZiF5aBbCQ7OQPLSAkXkVo2hq QXJBcVJ6kZFecWJucWleul5yfu4mRmD8nf73rG8H480D1ocYBTgYlXh4NR7MDxdiTSwrrsw9 xGgKdMREZinR5HxglOeVxBsamxlZmJqYGhuZW5opifMmSP0MFhJITyxJzU5NLUgtii8qzUkt PsTIxMEp1cCoHzmpaMvHPzwLWENe2C6LyFAyKFcw3/1i+YF/7/+7xO3cpOskO/NaToa8dfrd XXLBYZcsJ7dsnn1heYGchfGmh69vt+Uem715RYzku1Nn7zsU17WemeyY4Xd2KvuxRZpqQgbz u7b2HPq+ae68Omb/gLu2W2Q3XNd0LQo81fjRqO/9zUsZWht+KbEUZyQaajEXFScCAN11j0u6 AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsVy+t9jQV2XqgXhBsvmc1ucfLKGzeLssoNs Fpd3zWGzOPK/n9Hi04P/zBZ3nqxntTi+NtyB3WN2w0UWj8V7XjJ53Lm2h81j85J6j7+z9rN4 fN4kF8AW1cBok5GamJJapJCal5yfkpmXbqvkHRzvHG9qZmCoa2hpYa6kkJeYm2qr5OIToOuW mQN0ipJCWWJOKVAoILG4WEnfDtOE0BA3XQuYxghd35AguB4jAzSQsIYx4/nVxYwFlyUrrp+c zdTA+FC4i5GTQ0LAROLV6YVsELaYxIV764FsLg4hgVmMEouPXmMFSfAKCEr8mHyPpYuRg4NZ QF7iyKVskDCzgKrEtq93WCDqHzBKbJy5kQ2iXkvi0bI1jCA2C1DR6/+fwOawCehIbP92nAnE FhUIk3iwbi9YXETAT2Lrjq1gi5kFNjNK7FowFSwhLJAh8evHFSaIDZOZJOb/Xs0OkuAUcJK4 Nn0f6wRGoDsRDpyFcOAsJAcuYGRexSiRWpBcUJyUnmuUl1quV5yYW1yal66XnJ+7iREc48+k dzAe3uV+iFGAg1GJh7fj5fxwIdbEsuLK3EOMEhzMSiK8TZULwoV4UxIrq1KL8uOLSnNSiw8x mgJ9OJFZSjQ5H5h+8kriDY1NzIwsjcwNLYyMzZXEeR//XxcmJJCeWJKanZpakFoE08fEwSnV wJhbtlKg/JlV+b5dTwS5mVUFuae1mmqcL3uztubmTs+Wn58kQ79ldoouf/s3Yk867/3JQfYy lx4dWOo+jcsksuTzBpH5GWscy00fsTfFR/1Y/LCs4qBTd+73lhN+knvltj7Mm/RD5d5T8/6z YZzs53816Z27fqn224XdfvGpt6/I5q38n99v91GJpTgj0VCLuag4EQBA2+fVBwMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Shawn, On 08/02/2016 06:07 PM, Shawn Lin wrote: > Hi Ulf, > > ÔÚ 2016/7/20 9:57, Shawn Lin дµÀ: >> We observed the failure of initializing card after resume >> accidentally. It's hard to reproduce but we did get report from >> the suspend/resume test of our RK3399 mp test farm . Unfortunately, >> we still fail to figure out what was going wrong at that time. >> Also we can't achieve it by retrying the host->f_init without falling >> back it. But this patch will solve the problem as we could add some log >> there and see that we resume the mmc card successfully after falling >> back the host->f_init. There is no obvious side effect found, so it seems >> this patch will improve the stability. >> >> [ 93.405085] mmc1: unexpected status 0x800900 after switch >> [ 93.408474] mmc1: switch to bus width 1 failed >> [ 93.408482] mmc1: mmc_select_hs200 failed, error -110 >> [ 93.408492] mmc1: error -110 during resume (card was removed?) >> [ 93.408705] PM: resume of devices complete after 213.453 msecs >> Status 0x800900 is COM_CRC_ERROR..it seems that CRC check fails. But i don't know what is related with "fall back host->f_init". I don't have a knowledge of rockchip... but in my experience, there are some cases, not mmc core problem.. 1. Exynos is using the gpio as clk/cmd/data line..and gpio has the driver strength value. If driver strength is changed after resuming, it's possible to occur the error. 2. And glitch for I/O line..this loop has the delay..Just delay? So you can check the other problem... :) At Booting time, f_init can use 400K..but after resuming..f_init need to use 100K..hmm..strange.. Best Regards, Jaehoon Chung > > Any comments for this patch? :) > >> Signed-off-by: Shawn Lin >> >> --- >> >> Changes in v2: >> - remove mmc_power_off >> - take f_min into consideration >> >> drivers/mmc/core/mmc.c | 19 +++++++++++++++++-- >> 1 file changed, 17 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c >> index 403b97b..a2891c1 100644 >> --- a/drivers/mmc/core/mmc.c >> +++ b/drivers/mmc/core/mmc.c >> @@ -1945,6 +1945,7 @@ static int mmc_suspend(struct mmc_host *host) >> static int _mmc_resume(struct mmc_host *host) >> { >> int err = 0; >> + int i; >> >> BUG_ON(!host); >> BUG_ON(!host->card); >> @@ -1954,8 +1955,22 @@ static int _mmc_resume(struct mmc_host *host) >> if (!mmc_card_suspended(host->card)) >> goto out; >> >> - mmc_power_up(host, host->card->ocr); >> - err = mmc_init_card(host, host->card->ocr, host->card); >> + /* >> + * Let's try to fallback the host->f_init >> + * if failing to init mmc card after resume. >> + */ >> + for (i = 0; i < ARRAY_SIZE(freqs); i++) { >> + if (host->f_init < max(freqs[i], host->f_min)) >> + continue; >> + else >> + host->f_init = max(freqs[i], host->f_min); >> + >> + mmc_power_up(host, host->card->ocr); >> + err = mmc_init_card(host, host->card->ocr, host->card); >> + if (!err) >> + break; >> + } >> + >> mmc_card_clr_suspended(host->card); >> >> out: >> > >