[PATCH] mmc: dw_mmc: update clock after ctrl reset in runtime resume
Jaehoon Chung
jh80.chung at samsung.com
Wed Jan 4 00:28:10 PST 2017
On 01/03/2017 03:59 PM, Shawn Lin wrote:
> Hi Ziyuan,
>
> On 2017/1/3 14:46, Ziyuan Xu wrote:
>> Immediately after reset, issue the command which sets
>> update_clock_register_only bit, the card clock will restart.
>>
>> MMC_PM_KEEP_POWER is disabled for SD card and eMMC slots, so that they
>> have no chance to invoke dw_mci_setup_bus for update clock behaviour.
>> Let's consummate it.
>>
>> Fixes: e9ed883 ("mmc: dw_mmc: add runtime PM callback")
>> Reported-by: Randy Li <randy.li at rock-chips.com>
>> Signed-off-by: Ziyuan Xu <xzy.xu at rock-chips.com>
>> ---
>> drivers/mmc/host/dw_mmc.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index b44306b..71715b4 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -3357,6 +3357,8 @@ int dw_mci_runtime_resume(struct device *dev)
>> if (slot->mmc->pm_flags & MMC_PM_KEEP_POWER) {
>> dw_mci_set_ios(slot->mmc, &slot->mmc->ios);
>> dw_mci_setup_bus(slot, true);
>> + } else {
>> + mci_send_cmd(slot, SDMMC_CMD_UPD_CLK, 0);
>> }
>> }
>
> Thanks for sending this, but I think the better fix we talked about
> offlist may be...
>
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -3324,7 +3324,7 @@ int dw_mci_runtime_resume(struct device *dev)
> if (ret)
> goto err;
>
> - if (!dw_mci_ctrl_reset(host, SDMMC_CTRL_ALL_RESET_FLAGS)) {
> + if (!dw_mci_reset(host)) {
> clk_disable_unprepare(host->ciu_clk);
> ret = -ENODEV;
> goto err;
>
>
> otherwise there still some unhandled cases once the reset is failure.
I think Shawn's suggestion is more better..After applied Shawn's suggestion, Is the problem disappeared?
If then, could you resend the patch as Shawn's?
I don't test yet with exynos..after testing, i will also share.
Best Regards,
Jaehoon Chung
>
>>
>>
>
>
More information about the Linux-rockchip
mailing list