All of lore.kernel.org
 help / color / mirror / Atom feed
From: zhangfei <zhangfei.gao@linaro.org>
To: Arnd Bergmann <arnd@arndb.de>, Chris Ball <cjb@laptop.org>,
	Mike Turquette <mturquette@linaro.org>,
	Rob Herring <robherring2@gmail.com>,
	Jaehoon Chung <jh80.chung@samsung.com>,
	Seungwon Jeon <tgih.jun@samsung.com>,
	Kumar Gala <galak@codeaurora.org>,
	Haojian Zhuang <haojian.zhuang@linaro.org>,
	linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	patches@linaro.org, devicetree@vger.kernel.org,
	Zhigang Wang <brooke.wangzhigang@huawei.com>
Subject: Re: [PATCH 2/3] mmc: dw_mmc: add dw_mmc-k3 for k3 platform
Date: Thu, 02 Jan 2014 10:19:26 +0800	[thread overview]
Message-ID: <52C4CCAE.6070001@linaro.org> (raw)
In-Reply-To: <20131231132003.GR8064@book.gsilab.sittig.org>



On 12/31/2013 09:20 PM, Gerhard Sittig wrote:
> On Sun, Dec 29, 2013 at 22:05 +0100, Arnd Bergmann wrote:
>>
>> On Saturday 28 December 2013, Zhangfei Gao wrote:
>>
>>> +static void dw_mci_k3_set_ios(struct dw_mci *host, struct mmc_ios *ios)
>>> +{
>>> +	struct dw_mci_k3_priv_data *priv = host->priv;
>>> +	u32 rate = priv->clk_table[ios->timing];
>>> +	int ret;
>>
>> [ ... ]
>>
>>> +
>>> +	ret = clk_set_rate(host->ciu_clk, rate);
>>> +	if (ret)
>>> +		dev_warn(host->dev, "failed to set clock rate %uHz\n", rate);
>>> +
>>> +	host->bus_hz = clk_get_rate(host->ciu_clk);
>>> +}
>>
>> Why do you call clk_get_rate() here, shouldn't it always be the same
>> rate that you have just set?
>
> Not necessarily.  What you pass to clk_set_rate() is the
> rate/frequency that you _want_, while what you get from
> clk_get_rate() is the rate you _got_ taking the specific input
> clock rate and the available sets of multipliers/dividers into
> consideration.  Both values should be similar (roughly the same),
> but they need not be identical.  The order of the difference
> depends on the granularity of the hardware dividers or whether
> PLLs are used.
>
> So, re-fetching the resulting rate after setting up a desired
> rate actually better reflects the status-quo for diagnostics or
> for subsequent processing.

Thanks Gerhard for the professional explanation.


WARNING: multiple messages have this Message-ID (diff)
From: zhangfei.gao@linaro.org (zhangfei)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/3] mmc: dw_mmc: add dw_mmc-k3 for k3 platform
Date: Thu, 02 Jan 2014 10:19:26 +0800	[thread overview]
Message-ID: <52C4CCAE.6070001@linaro.org> (raw)
In-Reply-To: <20131231132003.GR8064@book.gsilab.sittig.org>



On 12/31/2013 09:20 PM, Gerhard Sittig wrote:
> On Sun, Dec 29, 2013 at 22:05 +0100, Arnd Bergmann wrote:
>>
>> On Saturday 28 December 2013, Zhangfei Gao wrote:
>>
>>> +static void dw_mci_k3_set_ios(struct dw_mci *host, struct mmc_ios *ios)
>>> +{
>>> +	struct dw_mci_k3_priv_data *priv = host->priv;
>>> +	u32 rate = priv->clk_table[ios->timing];
>>> +	int ret;
>>
>> [ ... ]
>>
>>> +
>>> +	ret = clk_set_rate(host->ciu_clk, rate);
>>> +	if (ret)
>>> +		dev_warn(host->dev, "failed to set clock rate %uHz\n", rate);
>>> +
>>> +	host->bus_hz = clk_get_rate(host->ciu_clk);
>>> +}
>>
>> Why do you call clk_get_rate() here, shouldn't it always be the same
>> rate that you have just set?
>
> Not necessarily.  What you pass to clk_set_rate() is the
> rate/frequency that you _want_, while what you get from
> clk_get_rate() is the rate you _got_ taking the specific input
> clock rate and the available sets of multipliers/dividers into
> consideration.  Both values should be similar (roughly the same),
> but they need not be identical.  The order of the difference
> depends on the granularity of the hardware dividers or whether
> PLLs are used.
>
> So, re-fetching the resulting rate after setting up a desired
> rate actually better reflects the status-quo for diagnostics or
> for subsequent processing.

Thanks Gerhard for the professional explanation.

  reply	other threads:[~2014-01-02  2:19 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-28 14:34 [PATCH v6 0/3] mmc: dw_mmc: add dw_mmc-k3 Zhangfei Gao
2013-12-28 14:34 ` Zhangfei Gao
2013-12-28 14:34 ` [PATCH 1/3] mmc: dw_mmc: use slot-gpio to handle cd pin Zhangfei Gao
2013-12-28 14:34   ` Zhangfei Gao
2013-12-28 14:34 ` [PATCH 2/3] mmc: dw_mmc: add dw_mmc-k3 for k3 platform Zhangfei Gao
2013-12-28 14:34   ` Zhangfei Gao
2013-12-29 21:05   ` Arnd Bergmann
2013-12-29 21:05     ` Arnd Bergmann
2013-12-29 23:55     ` Jaehoon Chung
2013-12-29 23:55       ` Jaehoon Chung
2013-12-30  2:32       ` Zhangfei Gao
2013-12-30  2:32         ` Zhangfei Gao
2013-12-30 17:19         ` zhangfei
2013-12-30 17:19           ` zhangfei
2013-12-30 20:27           ` Arnd Bergmann
2013-12-30 20:27             ` Arnd Bergmann
2013-12-31  4:43             ` zhangfei
2013-12-31  4:43               ` zhangfei
2013-12-31 13:20     ` Gerhard Sittig
2013-12-31 13:20       ` Gerhard Sittig
2014-01-02  2:19       ` zhangfei [this message]
2014-01-02  2:19         ` zhangfei
2014-01-02  3:07   ` Zhangfei Gao
2014-01-02  3:07     ` Zhangfei Gao
2013-12-28 14:34 ` [PATCH 3/3] clk: hisilicon: add hi3620_mmc_clks Zhangfei Gao
2013-12-28 14:34   ` Zhangfei Gao
  -- strict thread matches above, loose matches on Subject: below --
2014-01-09 14:35 [PATCH v7 0/3] mmc: dw_mmc: add dw_mmc-k3 Zhangfei Gao
     [not found] ` <1389278112-7099-1-git-send-email-zhangfei.gao-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-01-09 14:35   ` [PATCH 2/3] mmc: dw_mmc: add dw_mmc-k3 for k3 platform Zhangfei Gao
2014-01-09 14:35     ` Zhangfei Gao
2014-01-09 14:45     ` Arnd Bergmann
2014-01-09 14:45       ` Arnd Bergmann
2014-01-10 13:39     ` Seungwon Jeon
2014-01-10 13:39       ` Seungwon Jeon
2014-01-10 14:12       ` zhangfei
2014-01-10 14:12         ` zhangfei
2014-01-13  2:09         ` Seungwon Jeon
2014-01-13  2:09           ` Seungwon Jeon
2014-01-13  2:37           ` zhangfei
2014-01-13  2:37             ` zhangfei
2014-01-13  5:32             ` Seungwon Jeon
2014-01-13  5:32               ` Seungwon Jeon
2014-01-13  8:30               ` zhangfei
2014-01-13  8:30                 ` zhangfei
2014-01-14  9:38                 ` Seungwon Jeon
2014-01-14  9:38                   ` Seungwon Jeon
2014-01-14  9:47                   ` zhangfei
2014-01-14  9:47                     ` zhangfei
2013-12-14  2:12 [PATCH v5 0/3] mmc: dw_mmc: add dw_mmc-k3 Zhangfei Gao
2013-12-14  2:12 ` [PATCH 2/3] mmc: dw_mmc: add dw_mmc-k3 for k3 platform Zhangfei Gao
2013-12-14  2:12   ` Zhangfei Gao
2013-12-16  3:50   ` Seungwon Jeon
2013-12-16  3:50     ` Seungwon Jeon
2013-12-16  5:05     ` zhangfei
2013-12-16  5:05       ` zhangfei
2013-12-16  7:29       ` Seungwon Jeon
2013-12-16  7:29         ` Seungwon Jeon
2013-12-16  8:08         ` zhangfei
2013-12-16  8:08           ` zhangfei
2013-12-16  9:18           ` Seungwon Jeon
2013-12-16  9:18             ` Seungwon Jeon
2013-12-16 11:07             ` zhangfei
2013-12-16 11:07               ` zhangfei
2013-12-16 13:12   ` Zhangfei Gao
2013-12-16 13:12     ` Zhangfei Gao
2013-12-20  2:31     ` zhangfei
2013-12-20  2:31       ` zhangfei
2013-12-26  4:33     ` Jaehoon Chung
2013-12-26  4:33       ` Jaehoon Chung
2013-12-27  6:13       ` zhangfei
2013-12-27  6:13         ` zhangfei
2013-12-11 14:02 [PATCH v4 0/3] mmc: dw_mmc: add dw_mmc-k3 Zhangfei Gao
2013-12-11 14:02 ` [PATCH 2/3] mmc: dw_mmc: add dw_mmc-k3 for k3 platform Zhangfei Gao
2013-12-11 14:02   ` Zhangfei Gao
2013-12-11 14:49   ` Arnd Bergmann
2013-12-11 14:49     ` Arnd Bergmann
2013-12-11 15:36     ` zhangfei
2013-12-11 15:36       ` zhangfei
2013-12-11 15:53       ` zhangfei
2013-12-11 15:53         ` zhangfei
2013-12-11 20:12       ` Arnd Bergmann
2013-12-11 20:12         ` Arnd Bergmann
     [not found]         ` <201312112112.52746.arnd-r2nGTMty4D4@public.gmane.org>
2013-12-12 13:27           ` zhangfei
2013-12-12 13:27             ` zhangfei
2013-12-12 14:13             ` Zhangfei Gao
2013-12-12 14:13               ` Zhangfei Gao
2013-12-12 20:40             ` Arnd Bergmann
2013-12-12 20:40               ` Arnd Bergmann
2013-12-13  2:57               ` zhangfei
2013-12-13  2:57                 ` zhangfei

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=52C4CCAE.6070001@linaro.org \
    --to=zhangfei.gao@linaro.org \
    --cc=arnd@arndb.de \
    --cc=brooke.wangzhigang@huawei.com \
    --cc=cjb@laptop.org \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=haojian.zhuang@linaro.org \
    --cc=jh80.chung@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=mturquette@linaro.org \
    --cc=patches@linaro.org \
    --cc=robherring2@gmail.com \
    --cc=tgih.jun@samsung.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.