<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/clk/clk-composite.c, branch docs-4.16</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-4.16</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-4.16'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2016-04-21T21:47:18+00:00</updated>
<entry>
<title>Merge branch 'clk-hw-register' (early part) into clk-next</title>
<updated>2016-04-21T21:47:18+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2016-04-21T21:47:18+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=58657d189a2f626a568308f70a6b34255650c87e'/>
<id>urn:sha1:58657d189a2f626a568308f70a6b34255650c87e</id>
<content type='text'>
* 'clk-hw-register' (early part):
  clk: fixed-rate: Add hw based registration APIs
  clk: gpio: Add hw based registration APIs
  clk: composite: Add hw based registration APIs
  clk: fractional-divider: Add hw based registration APIs
  clk: fixed-factor: Add hw based registration APIs
  clk: mux: Add hw based registration APIs
  clk: gate: Add hw based registration APIs
  clk: divider: Add hw based registration APIs
  clkdev: Add clk_hw based registration APIs
  clk: Add clk_hw OF clk providers
  clk: Add {devm_}clk_hw_{register,unregister}() APIs
  clkdev: Remove clk_register_clkdevs()
</content>
</entry>
<entry>
<title>Merge branch 'clk-composite-unregister' into clk-next</title>
<updated>2016-04-21T21:43:56+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2016-04-21T21:43:56+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e9471c4ecf8a50169216e7232e12b23761ce3d15'/>
<id>urn:sha1:e9471c4ecf8a50169216e7232e12b23761ce3d15</id>
<content type='text'>
* clk-composite-unregister:
  clk: composite: Add unregister function
</content>
</entry>
<entry>
<title>clk: composite: Add unregister function</title>
<updated>2016-04-21T21:43:28+00:00</updated>
<author>
<name>Maxime Ripard</name>
<email>maxime.ripard@free-electrons.com</email>
</author>
<published>2016-03-23T16:38:24+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=92a39d9043ba5ff98adb1c31491f00c7bea5466e'/>
<id>urn:sha1:92a39d9043ba5ff98adb1c31491f00c7bea5466e</id>
<content type='text'>
The composite clock didn't have any unregistration function, which forced
us to use clk_unregister directly on it.

While it was already not great from an API point of view, it also meant
that we were leaking the clk_composite structure allocated in
clk_register_composite.

Add a clk_unregister_composite function to fix this.

Signed-off-by: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>clk: composite: Add hw based registration APIs</title>
<updated>2016-04-19T23:56:28+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2016-02-07T08:20:31+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=49cb392d36397a296dcd51ec57cf83585a89a94a'/>
<id>urn:sha1:49cb392d36397a296dcd51ec57cf83585a89a94a</id>
<content type='text'>
Add registration APIs in the clk composite code to return struct
clk_hw pointers instead of struct clk pointers. This way we hide
the struct clk pointer from providers unless they need to use
consumer facing APIs.

Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>clk: Add clk_composite_set_rate_and_parent</title>
<updated>2016-04-15T22:14:45+00:00</updated>
<author>
<name>Finley Xiao</name>
<email>finley.xiao@rock-chips.com</email>
</author>
<published>2016-04-12T08:43:39+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9e52cec04fd3b9b686f9256151b47fe61f7c28ef'/>
<id>urn:sha1:9e52cec04fd3b9b686f9256151b47fe61f7c28ef</id>
<content type='text'>
When changing the clock-rate, currently a new parent is set first and a
divider adapted thereafter. This may result in the clock-rate overflowing
its target rate for a short time if the new parent has a higher rate than
the old parent.

While this often doesn't produce negative effects, it can affect components
in a voltage-scaling environment, like the GPU on the rk3399 socs, where
the voltage than simply is to low for the temporarily to high clock rate.

For general clock hirarchies this may need more extensive adaptions to
the common clock-framework, but at least for composite clocks having
both parent and rate settings it is easy to create a short-term solution to
make sure the clock-rate does not overflow the target.

Signed-off-by: Finley Xiao &lt;finley.xiao@rock-chips.com&gt;
Reviewed-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h</title>
<updated>2016-01-29T20:59:50+00:00</updated>
<author>
<name>Geliang Tang</name>
<email>geliangtang@163.com</email>
</author>
<published>2016-01-08T15:51:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=5fd9c05c846db98319e75496612da24435cee208'/>
<id>urn:sha1:5fd9c05c846db98319e75496612da24435cee208</id>
<content type='text'>
to_clk_*(_hw) macros have been repeatedly defined in many places.
This patch moves all the to_clk_*(_hw) definitions in the common
clock framework to public header clk-provider.h, and drop the local
definitions.

Signed-off-by: Geliang Tang &lt;geliangtang@163.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>clk: Convert basic types to clk_hw based provider APIs</title>
<updated>2015-08-24T23:48:48+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-07-31T00:20:57+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=2f508a955a671e095d5c8a629de1c8c32bc420c2'/>
<id>urn:sha1:2f508a955a671e095d5c8a629de1c8c32bc420c2</id>
<content type='text'>
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.

Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>clk: Convert __clk_get_flags() to clk_hw_get_flags()</title>
<updated>2015-08-24T23:48:44+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-06-29T23:56:30+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=98d8a60eccee74165793379f1f8a3b1cef3131c7'/>
<id>urn:sha1:98d8a60eccee74165793379f1f8a3b1cef3131c7</id>
<content type='text'>
Mostly converted with the following snippet:

@@
struct clk_hw *E;
@@

-__clk_get_flags(E-&gt;clk)
+clk_hw_get_flags(E)

Acked-by: Tero Kristo &lt;t-kristo@ti.com&gt;
Cc: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Cc: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Acked-by: Sebastian Hesselbarth &lt;sebastian.hesselbarth@gmail.com&gt;
Cc: Daniel Thompson &lt;daniel.thompson@linaro.org&gt;
Cc: Coquelin &lt;mcoquelin.stm32@gmail.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>clk: Replace __clk_get_num_parents with clk_hw_get_num_parents()</title>
<updated>2015-08-24T23:48:43+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-06-25T23:53:23+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=497295afb5ab070211a9963c80a89bc6fbfd6197'/>
<id>urn:sha1:497295afb5ab070211a9963c80a89bc6fbfd6197</id>
<content type='text'>
Mostly converted with the following semantic patch:

@@
struct clk_hw *E;
@@

-__clk_get_num_parents(E-&gt;clk)
+clk_hw_get_num_parents(E)

Acked-by: Boris Brezillon &lt;boris.brezillon@free-electrons.com&gt;
Cc: Chao Xie &lt;chao.xie@marvell.com&gt;
Cc: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Cc: Javier Martinez Canillas &lt;javier.martinez@collabora.co.uk&gt;
Cc: Tomasz Figa &lt;tomasz.figa@gmail.com&gt;
Cc: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Cc: "Emilio López" &lt;emilio@elopez.com.ar&gt;
Acked-by: Tero Kristo &lt;t-kristo@ti.com&gt;
Cc: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Acked-by: Sylwester Nawrocki &lt;s.nawrocki@samsung.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>clk: fix some determine_rate implementations</title>
<updated>2015-07-28T01:13:32+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@free-electrons.com</email>
</author>
<published>2015-07-09T20:39:38+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=57d866e606ddf2a0cd51f7140cfd8df1fdaa48f6'/>
<id>urn:sha1:57d866e606ddf2a0cd51f7140cfd8df1fdaa48f6</id>
<content type='text'>
Some determine_rate implementations are not returning an error
when they failed to adapt the rate according to the rate request.
Fix them so that they return an error instead of silently
returning 0.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@free-electrons.com&gt;
CC: Jonathan Corbet &lt;corbet@lwn.net&gt;
CC: Tony Lindgren &lt;tony@atomide.com&gt;
CC: Ralf Baechle &lt;ralf@linux-mips.org&gt;
CC: "Emilio López" &lt;emilio@elopez.com.ar&gt;
CC: Maxime Ripard &lt;maxime.ripard@free-electrons.com&gt;
Cc: Tero Kristo &lt;t-kristo@ti.com&gt;
CC: Peter De Schrijver &lt;pdeschrijver@nvidia.com&gt;
CC: Prashant Gaikwad &lt;pgaikwad@nvidia.com&gt;
CC: Stephen Warren &lt;swarren@wwwdotorg.org&gt;
CC: Thierry Reding &lt;thierry.reding@gmail.com&gt;
CC: Alexandre Courbot &lt;gnurou@gmail.com&gt;
CC: linux-doc@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-arm-kernel@lists.infradead.org
CC: linux-omap@vger.kernel.org
CC: linux-mips@linux-mips.org
CC: linux-tegra@vger.kernel.org
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
</entry>
</feed>
