Re: [PATCH V5 02/15] mmc: core: Enable / disable re-tuning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[...]

>>>> 2) system PM (disable?)
>>>
>>> System pm does mmc_power_off() which calls mmc_set_initial_state()
>>
>> At System PM other commands will be sent to put the card into sleep
>> state. For example CMD5. These commands are invoked prior
>> mmc_power_off() is called.
>
> You can't do *any* commands after CMD5 except CMD0 or another CMD5 to wake up.
>
> So if you want to wake-up from sleep, then you need to hold re-tuning, but
> that is not what is happening at the moment.

So then we need to fix this.

Also, it seems like disabling the re-tuning timer would also be the
proper thing to do, thus we should rather do disable instead of
hold/release.

>
>>
>> In the SDIO case, mmc_power_off() might not even be called at all,
>> since SDIO func drivers might have enabled MMC_PM_KEEP_POWER.
>
> If the card is not going to be re-initialized then disabling is not necessary.

I don't want the re-tuning timer to be running, thus it seems like we
should do disable. Right?

>
>>
>>>
>>>> 3) runtime PM (disable?)
>>>
>>> If the card powers off then mmc_set_initial_state() will called.
>>
>> Again that's too late, since for example the CMD5 might have been sent
>> before this.
>
> CMD5 is only used by _mmc_suspend()
>
> Yes if it were used elsewhere then re-tuning would have to be held, which is
> why I added a comment before mmc_sleep()
>
>         /* If necessary, callers must hold re-tuning */
>         static int mmc_sleep(struct mmc_host *host)
>

I don't follow here. Why would we like to allow a re-tuning to be done
in this part of the system PM phase? It doesn't make sense to me.

>>
>>>
>>> For anything else the card might be doing, the mmc_retune_hold() /
>>> mmc_retune_release() functions are used.
>>>
>>>> 4) reset (?)
>>>
>>> Reset goes through mmc_set_initial_state()
>>
>> In the mmc case, CMD13 is sent prior that. Shouldn't we hold re-tune
>> during that period?
>
> If reset happens, then the next command will fail, whether it is re-tuning
> or CMD13, so no different.

That depends on how each an every host has implemented their tuning mechanism.

CMD13 is more light weight, so I believe we should hold re-tune to
make sure we do the CMD13 and fail quickly.

>
> If reset doesn't happen, then it is no different to normal operations.
>

Kind regards
Uffe
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux