Hi Neil, > In the other case where I do let it suspend early (And it never recovers > without the reset line being toggled) I see: > > [ 2170.100982] mmc_wait_for_cmd 52 -> -110 > [ 2170.105407] mmc_wait_for_cmd 52 -> -110 > [ 2170.110260] mmc_wait_for_cmd 0 -> 0 > [ 2170.115509] mmc_wait_for_cmd 8 -> -110 > [ 2170.119842] mmc_wait_for_cmd 5 -> 0 > [ 2170.123901] mmc_wait_for_cmd 5 -> 0 > [ 2170.127929] mmc_wait_for_cmd 3 -> 0 > [ 2170.131958] mmc_wait_for_cmd 7 -> 0 This works when reset line toggling was applied. > [ 2170.135986] mmc_wait_for_cmd 52 -> 0 > [ 2170.140136] mmc_wait_for_cmd 52 -> 0 > [ 2170.144226] mmc_wait_for_cmd 52 -> 0 > [ 2170.148376] mmc_wait_for_cmd 52 -> 0 > [ 2170.152465] mmc_wait_for_cmd 52 -> 0 > > > which is much the same but then one second later: > > [ 2171.166656] mmc_wait_for_cmd 52 -> 0 > [ 2171.170806] mmc_wait_for_cmd 52 -> 0 > [ 2171.175384] mmc_wait_for_cmd 0 -> 0 > [ 2171.180603] mmc_wait_for_cmd 8 -> -110 > [ 2171.185943] mmc_wait_for_cmd 5 -> -110 Here the CMD5 timeout is expected because SD8686 has already been initialized with CMD5,5,3,7. If you are able to skip re-initialization at this point, like what "powered_resume" does, you will probably get SD8686 continue to run. Regards, Bing > [ 2171.190093] libertas_sdio: probe of mmc1:0001:1 failed with error -16 > > > So this answers Bing Zhao's question - it was CMD5 that timed out and caused > the failure. > > If I just get mmc_wait_for_cmd to hide error -110 for cmd 5 it complains > > [ 26.420440] mmc1: host doesn't support card's voltages > > so that isn't a simple solution :-) ��.n��������+%������w��{.n�����{��i��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥