From: Hans de Goede <hdegoede@redhat.com>
To: maxime.ripard@free-electrons.com, Jean-Francois Moine <moinejf@free.fr>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
Chen-Yu Tsai <wens@csie.org>,
linux-arm-kernel@lists.infradead.org, linux-mmc@vger.kernel.org,
linux-sunxi@googlegroups.com
Subject: Re: [linux-sunxi] Re: [PATCH 2/3] mmc: sunxi: Set the 'New Timing' register for 8 bits DDR transfers
Date: Sat, 30 Jul 2016 12:19:03 +0200 [thread overview]
Message-ID: <9414aab0-ac2b-01c2-e16b-8f7394ea7b68@redhat.com> (raw)
In-Reply-To: <20160729191730.GG6215@lukather>
Hi,
On 29-07-16 21:17, Maxime Ripard wrote:
> On Thu, Jul 21, 2016 at 11:26:55AM +0200, Jean-Francois Moine wrote:
>> On Thu, 21 Jul 2016 10:56:15 +0200
>> Maxime Ripard <maxime.ripard@free-electrons.com> wrote:
>>
>>> On Wed, Jul 20, 2016 at 08:16:28PM +0200, Jean-Francois Moine wrote:
>>>> The 'new timing mode' with 8 bits DDR works correctly when the NewTiming
>>>> register is set.
>>>
>>> What does that mode brings to the table?
>>
>> From my tests, the eMMC of the Banana Pi M3 (A83T) cannot work when the
>> new mode is not used.
>>
>>>>
>>>> Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
>>>> ---
>>>> Note about the 'new timing mode'.
>>>>
>>>> This patch assumes that, when the new mode is used, the clock driver
>>>> sets the mode select in the MMC clock and multiplies the clock rate
>>>> by 2:
>>>> - MMC side:
>>>> - with a timing 8 bits DDR at 50MHz, the MMC driver calls
>>>> clk_set_rate() with a rate 50*2 = 100MHz,
>>>> - clock side:
>>>> - the clock driver sets the hardware MMC clock to 100*2 = 200MHz,
>>>> - setting the 'mode select' of the hardware MMC clock divides the
>>>> rate by 2,
>>>> - MMC side:
>>>> - setting the MMC clock divider register to 1 divides the rate by 2.
>>>> So, the final rate is 50MHz.
>>>
>>> What happens if you actually want to set it to 100MHz?
>>
>> There is no SDXC_CLK_100M in the mainline driver, and 100MHz is asked
>> only for 8 bits DDR at 50MHz.
>
> You're missing the point.
>
> clk_set_rate is supposed to apply a rate as close as possible as
> requested, there's no reason why you would request a rate twice as
> high as need.
On all SoCs which support it, requesting DDR-8bit needs a twice as high
clock as the mmc base clock (due to the DDR).
If you look at the current code you will see that what actually happens
is that we pass twice as high clock as the mmc-subsys asks for to
clk_set_rate and set the controllers *internal* divider to 2 (instead of
the usual 1), this is not new and not introduced by Jean-Francois' patch.
All Jean-Francois' patch adds is the setting of the new SDXC_REG_NTSR
reg msb bit when we do this. Note no changes to the clock rate calculations
are made. If this fixes the eMMC on A83T boards this seems like a good
patch to me, but IMHO we should only write the SDXC_REG_NTSR on the A83t
and not everywhere as Jean-Francois' patch does.
Jean-Francois, can you submit a v2 of your patch and make the writing of
SDXC_REG_NTSR depend on a new sun8i-a83t-mmc compatible ?
Also you should probably drop the bits about the clock stuff from the
commit message as that just seems to confuse people.
Regards,
Hans
next prev parent reply other threads:[~2016-07-30 10:19 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-21 6:28 [PATCH 0/3] mmc: sunxi: Changes in the host driver Jean-Francois Moine
[not found] ` <cover.1469082481.git.moinejf-GANU6spQydw@public.gmane.org>
2016-07-20 18:01 ` [PATCH 1/3] mmc: sunxi: Check the value returned by clk_round_rate Jean-Francois Moine
[not found] ` <c2231f3df66cf77e4fb9051f7b0c27ea69b8e63d.1469082481.git.moinejf-GANU6spQydw@public.gmane.org>
2016-07-21 8:49 ` Maxime Ripard
2016-07-20 18:16 ` [PATCH 2/3] mmc: sunxi: Set the 'New Timing' register for 8 bits DDR transfers Jean-Francois Moine
[not found] ` <bc7b767cad6db159a44c4b98d5b1f3eb53c26bd3.1469082481.git.moinejf-GANU6spQydw@public.gmane.org>
2016-07-21 8:56 ` Maxime Ripard
2016-07-21 9:26 ` Jean-Francois Moine
[not found] ` <20160721112655.941b1dad04f7a5b94d4172c1-GANU6spQydw@public.gmane.org>
2016-07-29 19:17 ` Maxime Ripard
2016-07-30 5:18 ` Jean-Francois Moine
2016-07-30 10:19 ` Hans de Goede [this message]
[not found] ` <9414aab0-ac2b-01c2-e16b-8f7394ea7b68-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-08-01 13:52 ` Jean-Francois Moine
[not found] ` <20160801155246.b7b3c7f0f582394b4c25f6dc-GANU6spQydw@public.gmane.org>
2016-08-02 8:37 ` Hans de Goede
2016-07-29 19:36 ` Maxime Ripard
2016-07-30 5:20 ` Jean-Francois Moine
2016-07-20 18:28 ` [PATCH 3/3] mmc: sunxi: Add support to the Allwinner A83T Jean-Francois Moine
2016-07-21 8:58 ` Maxime Ripard
2016-07-21 9:18 ` Jean-Francois Moine
[not found] ` <20160721111851.133a3f16d6e9de1ee45b3654-GANU6spQydw@public.gmane.org>
2016-07-22 19:00 ` Jean-Francois Moine
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9414aab0-ac2b-01c2-e16b-8f7394ea7b68@redhat.com \
--to=hdegoede@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-sunxi@googlegroups.com \
--cc=maxime.ripard@free-electrons.com \
--cc=moinejf@free.fr \
--cc=ulf.hansson@linaro.org \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).