Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1349823

Re: [PATCH 2/2] mmc: dw_mmc: add resets support to dw_mci_parse_dt()

From Shawn Lin <shawn.lin@rock-chips.com>
Newsgroups linux.kernel
Subject Re: [PATCH 2/2] mmc: dw_mmc: add resets support to dw_mci_parse_dt()
Date 2016-03-04 04:50 +0100
Message-ID <r8OUx-F5-1@gated-at.bofh.it> (permalink)
References <r8qpc-89F-25@gated-at.bofh.it> <r8qpc-89F-23@gated-at.bofh.it> <r8qSe-7S-11@gated-at.bofh.it> <r8OBc-wF-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


在 2016/3/4 11:27, zhangfei 写道:
>
>
> On 03/03/2016 10:00 AM, Shawn Lin wrote:
>> Hi Guodong,
>>
>> On 2016/3/3 9:33, Guodong Xu wrote:
>>> With this, user can add a 'resets' property into dw_mmc dts
>>> node, and when driver probe and parse_dt, it will call
>>> reset APIs to reset dw_mmc host controller.
>>>
>>> Please also refer to Documentation/devicetree/bindings/reset/reset.txt
>>
>> I have no hard objection for this patch, but I'd rather not add it
>> unless we actually need it. Could you elaborate more about any futher
>> actions you will take if it's applied(i.e: deal with some unrecoverable
>> broken case)?  If we just reset the controller while probing, actually I
>> can't find any problems without it based on tons of my reboot test.
>
> mmc register maybe abnormal state, if mmc is used in uefi, like boot
> from emmc.
> So we need reset mmc register when kernel boot up, instead of assuming
> mmc is in clean state.
> Next step is adding reset node in dts for drivers/mmc/host/dw_mmc-k3.c
> as reset driver is already there.

Fair enough. Thanks for explaining.

>
>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>> index 242f9a0..d3a7376 100644
>>> --- a/drivers/mmc/host/dw_mmc.c
>>> +++ b/drivers/mmc/host/dw_mmc.c
>>> @@ -2878,6 +2878,13 @@ static struct dw_mci_board
>>> *dw_mci_parse_dt(struct dw_mci *host)
>>>       if (!pdata)
>>>           return ERR_PTR(-ENOMEM);
>>>
>>> +    /* find reset controller when exist */
>>> +    pdata->rstc = devm_reset_control_get_optional(dev, NULL);
>>> +    if (IS_ERR(pdata->rstc))
>>> +        pdata->rstc = NULL;
>>> +    else
>>> +        reset_control_deassert(pdata->rstc);
>>> +
>>
>> if the PTR_ERR(pdata->rstc) is -EPROBE_DEFER, should we defer probing
>> the driver?
> Yes, good catch.
>
> Thanks
>
>
>


-- 
Best Regards
Shawn Lin

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH 2/2] mmc: dw_mmc: add resets support to dw_mci_parse_dt() Guodong Xu <guodong.xu@linaro.org> - 2016-03-03 02:40 +0100
  Re: [PATCH 2/2] mmc: dw_mmc: add resets support to dw_mci_parse_dt() Shawn Lin <shawn.lin@rock-chips.com> - 2016-03-03 03:10 +0100
    Re: [PATCH 2/2] mmc: dw_mmc: add resets support to dw_mci_parse_dt() zhangfei <zhangfei.gao@linaro.org> - 2016-03-04 04:30 +0100
      Re: [PATCH 2/2] mmc: dw_mmc: add resets support to dw_mci_parse_dt() Shawn Lin <shawn.lin@rock-chips.com> - 2016-03-04 04:50 +0100

csiph-web