[PATCH v5 2/2] mmc: dw_mmc: force setup bus if active slots exist

Eddie Cai eddie.cai.linux at gmail.com
Mon Feb 13 18:12:44 PST 2017


Hi

2017-02-13 15:54 GMT+08:00 Jaehoon Chung <jh80.chung at samsung.com>:
> Hi,
>
> On 02/13/2017 03:32 PM, Eddie Cai wrote:
>> Hi Heiko
>>
>> I guess you may lost this patch. We need it to prevent crash when boot
>> up RK3288.
>>
>> 2017-01-13 10:59 GMT+08:00 Shawn Lin <shawn.lin at rock-chips.com>:
>>> From: Ziyuan Xu <xzy.xu at rock-chips.com>
>>>
>>> It's necessary to setup bus if any slots are present.
>>> - update clock after ctrl reset
>>> - if the host has genpd node, we can guarantee the clock is
>>>   available before starting request. Otherwies, the clock register
>>>   is reset once power off the pd, and host can't output the active
>>>   clock during communication.
>
> As i know, this patch was applied. Which kernel do you use?
I just update the kernel and find it applied. Thanks for reminding.
>
> Best Regards,
> Jaehoon Chung
>
>>>
>>> Fixes: e9ed8835e990 ("mmc: dw_mmc: add runtime PM callback")
>>> Fixes: df9bcc2bc0a1 ("mmc: dw_mmc: add missing codes for runtime resume")
>>> cc: <stable at vger.kernel.org>
>>> Reported-by: Randy Li <randy.li at rock-chips.com>
>>> Reported-by: S. Gilles <sgilles at math.umd.edu>
>>> Signed-off-by: Ziyuan Xu <xzy.xu at rock-chips.com>
>>> Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>
>>>
>>> ---
>>>
>>> Changes in v5:
>>> - rebase in order to skip spamming log
>>>
>>> Changes in v4:
>>> - update commit message
>>> - fix SD host rpm resume can't work
>>>
>>> Changes in v3:
>>> - only reset host with active slot.
>>>
>>> Changes in v2:
>>> - update the commit message
>>> - use dw_mci_reset instead of dw_mci_ctrl_reset
>>>
>>>  drivers/mmc/host/dw_mmc.c | 7 ++++---
>>>  1 file changed, 4 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>> index dc58ec3..0914d53 100644
>>> --- a/drivers/mmc/host/dw_mmc.c
>>> +++ b/drivers/mmc/host/dw_mmc.c
>>> @@ -3367,10 +3367,11 @@ int dw_mci_runtime_resume(struct device *dev)
>>>
>>>                 if (!slot)
>>>                         continue;
>>> -               if (slot->mmc->pm_flags & MMC_PM_KEEP_POWER) {
>>> +               if (slot->mmc->pm_flags & MMC_PM_KEEP_POWER)
>>>                         dw_mci_set_ios(slot->mmc, &slot->mmc->ios);
>>> -                       dw_mci_setup_bus(slot, true, true);
>>> -               }
>>> +
>>> +               /* Force setup bus to guarantee available clock output */
>>> +               dw_mci_setup_bus(slot, true, true);
>>>         }
>>>
>>>         /* Now that slots are all setup, we can enable card detect */
>>> --
>>> 1.9.1
>>>
>>>
>>>
>>> _______________________________________________
>>> Linux-rockchip mailing list
>>> Linux-rockchip at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-rockchip
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>



More information about the Linux-rockchip mailing list