linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jon Hunter <jonathanh@nvidia.com>
To: Paul Walmsley <paul@pwsan.com>,
	Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: "Mike Turquette" <mturquette@linaro.org>,
	"Stephen Boyd" <sboyd@codeaurora.org>,
	linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Shawn Guo" <shawn.guo@linaro.org>,
	"ascha Hauer" <kernel@pengutronix.de>,
	"David Brown" <davidb@codeaurora.org>,
	"Daniel Walker" <dwalker@fifo99.com>,
	"Bryan Huntsman" <bryanh@codeaurora.org>,
	"Tony Lindgren" <tony@atomide.com>,
	"Liviu Dudau" <liviu.dudau@arm.com>,
	"Sudeep Holla" <sudeep.holla@arm.com>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
	"Ralf Baechle" <ralf@linux-mips.org>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Heiko Stuebner" <heiko@sntech.de>,
	"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	"Tomasz Figa" <tomasz.figa@gmail.com>,
	"Barry Song" <baohua@kernel.org>,
	"Viresh Kumar" <viresh.linux@gmail.com>,
	"Emilio López" <emilio@elopez.com.ar>,
	"Maxime Ripard" <maxime.ripard@free-electrons.com>,
	"Peter De Schrijver" <pdeschrijver@nvidia.com>,
	"Prashant Gaikwad" <pgaikwad@nvidia.com>,
	"Stephen Warren" <swarren@wwwdotorg.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Alexandre Courbot" <gnurou@gmail.com>,
	"Tero Kristo" <t-kristo@ti.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Michal Simek" <michal.simek@xilinx.com>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	linux-doc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-mips@linux-mips.org, patches@opensource.wolfsonmicro.com,
	linux-rockchip@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, spear-devel@list.st.com,
	linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-media@vger.kernel.org, rtc-linux@googlegroups.com
Subject: Re: [PATCH v2 1/2] clk: change clk_ops' ->round_rate() prototype
Date: Fri, 5 Jun 2015 09:46:09 +0100	[thread overview]
Message-ID: <557161D1.3040107@nvidia.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1506042258530.12316@utopia.booyaka.com>


On 05/06/15 00:02, Paul Walmsley wrote:
> Hi folks
> 
> just a brief comment on this one:
> 
> On Thu, 30 Apr 2015, Boris Brezillon wrote:
> 
>> Clock rates are stored in an unsigned long field, but ->round_rate()
>> (which returns a rounded rate from a requested one) returns a long
>> value (errors are reported using negative error codes), which can lead
>> to long overflow if the clock rate exceed 2Ghz.
>>
>> Change ->round_rate() prototype to return 0 or an error code, and pass the
>> requested rate as a pointer so that it can be adjusted depending on
>> hardware capabilities.
> 
> ...
> 
>> diff --git a/Documentation/clk.txt b/Documentation/clk.txt
>> index 0e4f90a..fca8b7a 100644
>> --- a/Documentation/clk.txt
>> +++ b/Documentation/clk.txt
>> @@ -68,8 +68,8 @@ the operations defined in clk.h:
>>  		int		(*is_enabled)(struct clk_hw *hw);
>>  		unsigned long	(*recalc_rate)(struct clk_hw *hw,
>>  						unsigned long parent_rate);
>> -		long		(*round_rate)(struct clk_hw *hw,
>> -						unsigned long rate,
>> +		int		(*round_rate)(struct clk_hw *hw,
>> +						unsigned long *rate,
>>  						unsigned long *parent_rate);
>>  		long		(*determine_rate)(struct clk_hw *hw,
>>  						unsigned long rate,
> 
> I'd suggest that we should probably go straight to 64-bit rates.  There 
> are already plenty of clock sources that can generate rates higher than 
> 4GiHz.

An alternative would be to introduce to a frequency "base" the default
could be Hz (for backwards compatibility), but for CPUs we probably only
care about MHz (or may be kHz) and so 32-bits would still suffice. Even
if CPUs cared about Hz they could still use Hz, but in that case they
probably don't care about GHz. Obviously, we don't want to break DT
compatibility but may be the frequency base could be defined in DT and
if it is missing then Hz is assumed. Just a thought ...

Jon

  reply	other threads:[~2015-06-05  8:46 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30 15:30 [PATCH v2 0/2] clk: adapt ->round_rate()/->determine_rate() prototypes Boris Brezillon
2015-04-30 15:30 ` [PATCH v2 1/2] clk: change clk_ops' ->round_rate() prototype Boris Brezillon
2015-05-07  6:39   ` Stephen Boyd
2015-05-07  7:37     ` Boris Brezillon
2015-05-15 15:40       ` Boris Brezillon
2015-05-16 11:14         ` Mikko Perttunen
2015-05-20  1:01           ` Stephen Boyd
2015-06-04 23:02   ` Paul Walmsley
2015-06-05  8:46     ` Jon Hunter [this message]
2015-06-05 11:39       ` Boris Brezillon
2015-06-08  8:46         ` Jon Hunter
2015-06-05 11:38     ` Boris Brezillon
2015-04-30 15:30 ` [PATCH v2 2/2] clk: change clk_ops' ->determine_rate() prototype Boris Brezillon

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=557161D1.3040107@nvidia.com \
    --to=jonathanh@nvidia.com \
    --cc=baohua@kernel.org \
    --cc=boris.brezillon@free-electrons.com \
    --cc=bryanh@codeaurora.org \
    --cc=corbet@lwn.net \
    --cc=davidb@codeaurora.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=dwalker@fifo99.com \
    --cc=emilio@elopez.com.ar \
    --cc=gnurou@gmail.com \
    --cc=heiko@sntech.de \
    --cc=jcmvbkbc@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=liviu.dudau@arm.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=michal.simek@xilinx.com \
    --cc=mturquette@linaro.org \
    --cc=p.zabel@pengutronix.de \
    --cc=patches@opensource.wolfsonmicro.com \
    --cc=paul@pwsan.com \
    --cc=pdeschrijver@nvidia.com \
    --cc=pgaikwad@nvidia.com \
    --cc=ralf@linux-mips.org \
    --cc=rtc-linux@googlegroups.com \
    --cc=s.nawrocki@samsung.com \
    --cc=sboyd@codeaurora.org \
    --cc=shawn.guo@linaro.org \
    --cc=spear-devel@list.st.com \
    --cc=sudeep.holla@arm.com \
    --cc=swarren@wwwdotorg.org \
    --cc=t-kristo@ti.com \
    --cc=thierry.reding@gmail.com \
    --cc=tomasz.figa@gmail.com \
    --cc=tony@atomide.com \
    --cc=ulf.hansson@linaro.org \
    --cc=viresh.linux@gmail.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 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).