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


Groups > linux.kernel > #1496175

Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed

From Adrian Hunter <adrian.hunter@intel.com>
Newsgroups linux.kernel
Subject Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed
Date 2016-10-06 08:20 +0200
Message-ID <spac9-4HW-3@gated-at.bofh.it> (permalink)
References (1 earlier) <skFgC-8uY-11@gated-at.bofh.it> <soZqp-5hM-7@gated-at.bofh.it> <sp0FP-6Ex-21@gated-at.bofh.it> <sp1Vf-7vk-3@gated-at.bofh.it> <sp5Pc-1zX-7@gated-at.bofh.it>
Organization Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki

Show all headers | View raw


On 06/10/16 04:34, Shawn Lin wrote:
> On 2016/10/6 5:22, Julia Cartwright wrote:
>> On Wed, Oct 05, 2016 at 03:03:44PM -0500, Rob Herring wrote:
>>> On Wed, Oct 5, 2016 at 1:33 PM, Ulf Hansson <ulf.hansson@linaro.org> wrote:
>>>> On 23 September 2016 at 22:01, Zach Brown <zach.brown@ni.com> wrote:
>>>>> Certain board configurations can make highspeed malfunction due to
>>>>> timing issues. In these cases a way is needed to force the controller
>>>>> and card into standard speed even if they otherwise appear to be capable
>>>>> of highspeed.
>>>>>
>>>>> The sd-broken-highspeed property will let the sdhci driver know that
>>>>> highspeed will not work.
>>>>>
>>>>> Signed-off-by: Zach Brown <zach.brown@ni.com>
>>>>> ---
>>>>>  Documentation/devicetree/bindings/mmc/mmc.txt | 2 ++
>>>>>  1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt
>>>>> b/Documentation/devicetree/bindings/mmc/mmc.txt
>>>>> index 8a37782..59332ea 100644
>>>>> --- a/Documentation/devicetree/bindings/mmc/mmc.txt
>>>>> +++ b/Documentation/devicetree/bindings/mmc/mmc.txt
>>>>> @@ -52,6 +52,8 @@ Optional properties:
>>>>>  - no-sdio: controller is limited to send sdio cmd during initialization
>>>>>  - no-sd: controller is limited to send sd cmd during initialization
>>>>>  - no-mmc: controller is limited to send mmc cmd during initialization
>>>>> +- sd-broken-highspeed: Highspeed is broken, even if the controller and
>>>>> card
>>>>> +  themselves claim they support highspeed.
>>>>
>>>> Regarding a broken card, that is managed via the card quirks and not in DT.
>>>>
>>>> If this is about a controller limitation, we already have the option
>>>> to describe what it supports, so we don't need an option to tell what
>>>> it *not* supports.
>>>>
>>>> For example "cap-sd-highspeed" tells whether the controller supports
>>>> SD high-speed, please use that instead.
>>>
>>> If a controller has a capability register and it lies (perhaps the
>>> board has limitations that the SoC does not), then you may need to
>>> disable a feature.
>>
>> That's precisely the case here.  This is a board-level problem, not a
>> card or controller problem.  As Zach mentioned in the cover letter, the
>> trace length between controller and card on some of our boards is too
>> long to meet high-speed timings, even though both card and controller
>> advertise it.
> 
> IIRC, I saw the same problem while using sdhci to bring up a
> industrial board for vehicle. The trace length is so long that
> I have to limit the max-frequency to make it works properly when
> running at hishspeed.
> 
> So could you try to limit the max-frequency in your DT to see
> if it could work for you? I guess it should work as once reducing
> the frequency, the timing per cycle will be large enough to meet
> the spec. At least that helped me solve my problem.
> 
> For further consideration, I deployed a mechanism called "tuning for
> non UHS or non-hs200/400" for my donwstream tree at that time. The basic
> concept is to ask devices to send ext_csd(or send status for SD case)
> *repeatedly*. Some hosts, i.e. sdhci-of-arasan or dw_mmc-rockchip, can
> manually set rx delay via some clock unit registers to capture the
> working sample window and select the middle point of the longest good
> phase region. The same for retune. But it is a little complicated, and
> could only be applicable to the hosts who could adjust the rx delay
> manually when claiming the caps of MMC_CAPS_CAN_TUNING_FOR_HS, whatever
> the name is...
> 
> I don't know if it is worth to add this, and I don't know if it's
> a legit way. Anyway, I just share my thought(experience) for you and
> linux-mmc to think more about how to deal with the case you meet rather
> than sacrificing the performence by removing highspeed or reducing
> frequency..
> 

As Shawn points out, using max-frequency is a possibility. Did you consider
that?

There are 2 high speed caps:
	cap-sd-highspeed
	cap-mmc-highspeed

Yet patch in 2, the effect of sd-broken-highspeed is to suppress highspeed
for both SD and MMC.  Should it then be called just broken-highspeed?

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


Thread

[RFC 0/2] Add device tree property and quirk for supporting sdhci Zach Brown <zach.brown@ni.com> - 2016-09-23 22:30 +0200
  [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Zach Brown <zach.brown@ni.com> - 2016-09-23 22:30 +0200
    Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Rob Herring <robh@kernel.org> - 2016-10-03 19:40 +0200
    Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Ulf Hansson <ulf.hansson@linaro.org> - 2016-10-05 20:50 +0200
      Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Rob Herring <robh+dt@kernel.org> - 2016-10-05 22:10 +0200
        Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Julia Cartwright <julia@ni.com> - 2016-10-05 23:30 +0200
          Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Shawn Lin <shawn.lin@rock-chips.com> - 2016-10-06 03:40 +0200
            Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Adrian Hunter <adrian.hunter@intel.com> - 2016-10-06 08:20 +0200
        Re: [RFC 1/2] sdhci: Add device tree property sd-broken-highspeed Ulf Hansson <ulf.hansson@linaro.org> - 2016-10-06 10:10 +0200

csiph-web