On Thu, 2014-09-18 at 23:14 +0200, Ulf Hansson wrote: > [...] > > >> > >> In that case, don't forget to enable MMC_CAP2_FULL_PWR_CYCLE. > >> > >> > > >> > if MMC_CAP2_NO_PRESCAN_POWERUP enable, will call mmc_power_off() at start, > >> > then it will check ios.power_mode, but the state is MMC_POWER_OFF and just > >> > return. > >> > >> Uhh, that's right! So, I wonder why we invokes mmc_power_off() from > >> that path at all. > >> > >> Hmm, I think we should change the behavior in mmc_start_host(), like below: > >> 1) Add a "MMC_POWER_UNDEFINED" state which is what the power state > >> should be assigned to at allocation. > >> 2 ) From mmc_start_host(), invoke mmc_power_off() when > >> MMC_CAP2_NO_PRESCAN_POWERUP and MMC_CAP2_FULL_PWR_CYCLE is set. > >> > >> Would that work? > > Yes. I have confirmed this by following changes. The MMC_POWER_UNDEFINED > > designation in mmc_start_host() will eventually cause a power-off > > operation. > > > > But I wonder if we need to additionally check MMC_CAP2_FULL_PWR_CYCLE > > before calling mmc_power_off()? > > The intent from my side was to keep the current behaviour for those > that already used MMC_CAP2_NO_PRESCAN_POWERUP, but it's s not a big > deal. > I checked the log and found the commit that invokes mmc_power_off(): a08b17be8b984a7c51cd5a480cd977363df353f9 0d3e3350d5871c53464be4c92d57198744247005 (https://www.mail-archive.com/linux-mmc@xxxxxxxxxxxxxxx/msg19638.html ) The proposed change might bring back some delay since invoking mmc_power_off() in mmc_start_host() is more than NOP now and triggers real power-off and re-init in sdhci. Will this be OK? > So, let's try your proposal, thus don't check MMC_CAP2_FULL_PWR_CYCLE. > > Can you repost new version of your patches and please split them up on > core and host separately. > > Kind regards > Uffe > > ------Please consider the environment before printing this e-mail. -- Best regards, Roger Tseng ��.n��������+%������w��{.n�����{��i��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥