<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/clk/tegra, branch linux-4.3.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>clk: tegra: dfll: Properly protect OPP list</title>
<updated>2015-09-16T22:16:03+00:00</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2015-09-10T13:55:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e1595d89ae8180e0d3815cc75336ac3484de0aa0'/>
<id>e1595d89ae8180e0d3815cc75336ac3484de0aa0</id>
<content type='text'>
The OPP list needs to be protected against concurrent accesses. Using
simple RCU read locks does the trick and gets rid of the following
lockdep warning:

	===============================
	[ INFO: suspicious RCU usage. ]
	4.2.0-next-20150908 #1 Not tainted
	-------------------------------
	drivers/base/power/opp.c:460 Missing rcu_read_lock() or dev_opp_list_lock protection!

	other info that might help us debug this:

	rcu_scheduler_active = 1, debug_locks = 0
	4 locks held by kworker/u8:0/6:
	 #0:  ("%s""deferwq"){++++.+}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #1:  (deferred_probe_work){+.+.+.}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #2:  (&amp;dev-&gt;mutex){......}, at: [&lt;c03b8194&gt;] __device_attach+0x20/0x118
	 #3:  (prepare_lock){+.+...}, at: [&lt;c054bc08&gt;] clk_prepare_lock+0x10/0xf8

	stack backtrace:
	CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1
	Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
	Workqueue: deferwq deferred_probe_work_func
	[&lt;c001802c&gt;] (unwind_backtrace) from [&lt;c00135a4&gt;] (show_stack+0x10/0x14)
	[&lt;c00135a4&gt;] (show_stack) from [&lt;c02a8418&gt;] (dump_stack+0x94/0xd4)
	[&lt;c02a8418&gt;] (dump_stack) from [&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil+0x108/0x114)
	[&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil) from [&lt;c0551a3c&gt;] (dfll_calculate_rate_request+0xb8/0x170)
	[&lt;c0551a3c&gt;] (dfll_calculate_rate_request) from [&lt;c0551b10&gt;] (dfll_clk_round_rate+0x1c/0x2c)
	[&lt;c0551b10&gt;] (dfll_clk_round_rate) from [&lt;c054de2c&gt;] (clk_calc_new_rates+0x1b8/0x228)
	[&lt;c054de2c&gt;] (clk_calc_new_rates) from [&lt;c054e44c&gt;] (clk_core_set_rate_nolock+0x44/0xac)
	[&lt;c054e44c&gt;] (clk_core_set_rate_nolock) from [&lt;c054e4d8&gt;] (clk_set_rate+0x24/0x34)
	[&lt;c054e4d8&gt;] (clk_set_rate) from [&lt;c0512460&gt;] (tegra124_cpufreq_probe+0x120/0x230)
	[&lt;c0512460&gt;] (tegra124_cpufreq_probe) from [&lt;c03b9cbc&gt;] (platform_drv_probe+0x44/0xac)
	[&lt;c03b9cbc&gt;] (platform_drv_probe) from [&lt;c03b84c8&gt;] (driver_probe_device+0x218/0x304)
	[&lt;c03b84c8&gt;] (driver_probe_device) from [&lt;c03b69b0&gt;] (bus_for_each_drv+0x60/0x94)
	[&lt;c03b69b0&gt;] (bus_for_each_drv) from [&lt;c03b8228&gt;] (__device_attach+0xb4/0x118)
	ata1: SATA link down (SStatus 0 SControl 300)
	[&lt;c03b8228&gt;] (__device_attach) from [&lt;c03b77c8&gt;] (bus_probe_device+0x88/0x90)
	[&lt;c03b77c8&gt;] (bus_probe_device) from [&lt;c03b7be8&gt;] (deferred_probe_work_func+0x58/0x8c)
	[&lt;c03b7be8&gt;] (deferred_probe_work_func) from [&lt;c0040dfc&gt;] (process_one_work+0x188/0x4bc)
	[&lt;c0040dfc&gt;] (process_one_work) from [&lt;c004117c&gt;] (worker_thread+0x4c/0x4f4)
	[&lt;c004117c&gt;] (worker_thread) from [&lt;c0047230&gt;] (kthread+0xe4/0xf8)
	[&lt;c0047230&gt;] (kthread) from [&lt;c000f7d0&gt;] (ret_from_fork+0x14/0x24)

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Fixes: c4fe70ada40f ("clk: tegra: Add closed loop support for the DFLL")
[vince.h@nvidia.com: Unlock rcu on error path]
Signed-off-by: Vince Hsu &lt;vince.h@nvidia.com&gt;
[sboyd@codeaurora.org: Dropped second hunk that nested the rcu
read lock unnecessarily]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The OPP list needs to be protected against concurrent accesses. Using
simple RCU read locks does the trick and gets rid of the following
lockdep warning:

	===============================
	[ INFO: suspicious RCU usage. ]
	4.2.0-next-20150908 #1 Not tainted
	-------------------------------
	drivers/base/power/opp.c:460 Missing rcu_read_lock() or dev_opp_list_lock protection!

	other info that might help us debug this:

	rcu_scheduler_active = 1, debug_locks = 0
	4 locks held by kworker/u8:0/6:
	 #0:  ("%s""deferwq"){++++.+}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #1:  (deferred_probe_work){+.+.+.}, at: [&lt;c0040d8c&gt;] process_one_work+0x118/0x4bc
	 #2:  (&amp;dev-&gt;mutex){......}, at: [&lt;c03b8194&gt;] __device_attach+0x20/0x118
	 #3:  (prepare_lock){+.+...}, at: [&lt;c054bc08&gt;] clk_prepare_lock+0x10/0xf8

	stack backtrace:
	CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1
	Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
	Workqueue: deferwq deferred_probe_work_func
	[&lt;c001802c&gt;] (unwind_backtrace) from [&lt;c00135a4&gt;] (show_stack+0x10/0x14)
	[&lt;c00135a4&gt;] (show_stack) from [&lt;c02a8418&gt;] (dump_stack+0x94/0xd4)
	[&lt;c02a8418&gt;] (dump_stack) from [&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil+0x108/0x114)
	[&lt;c03c6f6c&gt;] (dev_pm_opp_find_freq_ceil) from [&lt;c0551a3c&gt;] (dfll_calculate_rate_request+0xb8/0x170)
	[&lt;c0551a3c&gt;] (dfll_calculate_rate_request) from [&lt;c0551b10&gt;] (dfll_clk_round_rate+0x1c/0x2c)
	[&lt;c0551b10&gt;] (dfll_clk_round_rate) from [&lt;c054de2c&gt;] (clk_calc_new_rates+0x1b8/0x228)
	[&lt;c054de2c&gt;] (clk_calc_new_rates) from [&lt;c054e44c&gt;] (clk_core_set_rate_nolock+0x44/0xac)
	[&lt;c054e44c&gt;] (clk_core_set_rate_nolock) from [&lt;c054e4d8&gt;] (clk_set_rate+0x24/0x34)
	[&lt;c054e4d8&gt;] (clk_set_rate) from [&lt;c0512460&gt;] (tegra124_cpufreq_probe+0x120/0x230)
	[&lt;c0512460&gt;] (tegra124_cpufreq_probe) from [&lt;c03b9cbc&gt;] (platform_drv_probe+0x44/0xac)
	[&lt;c03b9cbc&gt;] (platform_drv_probe) from [&lt;c03b84c8&gt;] (driver_probe_device+0x218/0x304)
	[&lt;c03b84c8&gt;] (driver_probe_device) from [&lt;c03b69b0&gt;] (bus_for_each_drv+0x60/0x94)
	[&lt;c03b69b0&gt;] (bus_for_each_drv) from [&lt;c03b8228&gt;] (__device_attach+0xb4/0x118)
	ata1: SATA link down (SStatus 0 SControl 300)
	[&lt;c03b8228&gt;] (__device_attach) from [&lt;c03b77c8&gt;] (bus_probe_device+0x88/0x90)
	[&lt;c03b77c8&gt;] (bus_probe_device) from [&lt;c03b7be8&gt;] (deferred_probe_work_func+0x58/0x8c)
	[&lt;c03b7be8&gt;] (deferred_probe_work_func) from [&lt;c0040dfc&gt;] (process_one_work+0x188/0x4bc)
	[&lt;c0040dfc&gt;] (process_one_work) from [&lt;c004117c&gt;] (worker_thread+0x4c/0x4f4)
	[&lt;c004117c&gt;] (worker_thread) from [&lt;c0047230&gt;] (kthread+0xe4/0xf8)
	[&lt;c0047230&gt;] (kthread) from [&lt;c000f7d0&gt;] (ret_from_fork+0x14/0x24)

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Fixes: c4fe70ada40f ("clk: tegra: Add closed loop support for the DFLL")
[vince.h@nvidia.com: Unlock rcu on error path]
Signed-off-by: Vince Hsu &lt;vince.h@nvidia.com&gt;
[sboyd@codeaurora.org: Dropped second hunk that nested the rcu
read lock unnecessarily]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: tegra: Fix some static checker problems</title>
<updated>2015-08-25T23:03:42+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-08-25T23:02:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c5a132a84a692f8d81f3b6959b98bcd959659457'/>
<id>c5a132a84a692f8d81f3b6959b98bcd959659457</id>
<content type='text'>
The latest Tegra clk pull had some problems. Fix them.

drivers/clk/tegra/clk-tegra124.c:1450:6: warning: symbol 'tegra124_clock_assert_dfll_dvco_reset' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1466:6: warning: symbol 'tegra124_clock_deassert_dfll_dvco_reset' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1476:5: warning: symbol 'tegra124_reset_assert' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1486:5: warning: symbol 'tegra124_reset_deassert' was not declared. Should it be static?
drivers/clk/tegra/clk-dfll.c:590 dfll_load_i2c_lut() warn: inconsistent indenting
drivers/clk/tegra/clk-dfll.c:1448 dfll_build_i2c_lut() warn: unsigned 'td-&gt;i2c_lut[0]' is never less than zero.

Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The latest Tegra clk pull had some problems. Fix them.

drivers/clk/tegra/clk-tegra124.c:1450:6: warning: symbol 'tegra124_clock_assert_dfll_dvco_reset' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1466:6: warning: symbol 'tegra124_clock_deassert_dfll_dvco_reset' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1476:5: warning: symbol 'tegra124_reset_assert' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1486:5: warning: symbol 'tegra124_reset_deassert' was not declared. Should it be static?
drivers/clk/tegra/clk-dfll.c:590 dfll_load_i2c_lut() warn: inconsistent indenting
drivers/clk/tegra/clk-dfll.c:1448 dfll_build_i2c_lut() warn: unsigned 'td-&gt;i2c_lut[0]' is never less than zero.

Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'tegra-for-4.3-clk' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-next</title>
<updated>2015-08-25T22:55:28+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-08-25T22:55:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a7c602bf42f943e717eed92165ebfa6dbaba3029'/>
<id>a7c602bf42f943e717eed92165ebfa6dbaba3029</id>
<content type='text'>
clk: tegra: Changes for v4.3-rc1

This contains the DFLL driver needed to implement CPU frequency scaling
on Tegra.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
clk: tegra: Changes for v4.3-rc1

This contains the DFLL driver needed to implement CPU frequency scaling
on Tegra.
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: Convert __clk_get_name(hw-&gt;clk) to clk_hw_get_name(hw)</title>
<updated>2015-08-24T23:49:12+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-08-12T18:42:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=836ee0f7d95c3feb742bd4b3a02fea3fe75bdef3'/>
<id>836ee0f7d95c3feb742bd4b3a02fea3fe75bdef3</id>
<content type='text'>
Use the provider based method to get a clock's name so that we
can get rid of the clk member in struct clk_hw one day. Mostly
converted with the following coccinelle script.

@@
struct clk_hw *E;
@@

-__clk_get_name(E-&gt;clk)
+clk_hw_get_name(E)

Acked-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Cc: Sylwester Nawrocki &lt;s.nawrocki@samsung.com&gt;
Cc: Tomasz Figa &lt;tomasz.figa@gmail.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;
Acked-by: Thierry Reding &lt;treding@nvidia.com&gt;
Cc: Thierry Reding &lt;thierry.reding@gmail.com&gt;
Cc: Alexandre Courbot &lt;gnurou@gmail.com&gt;
Cc: Tero Kristo &lt;t-kristo@ti.com&gt;
Cc: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Acked-by: Sebastian Hesselbarth &lt;sebastian.hesselbarth@gmail.com&gt;
Acked-by: Andrew Bresticker &lt;abrestic@chromium.org&gt;
Cc: Ezequiel Garcia &lt;ezequiel.garcia@imgtec.com&gt;
Cc: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Cc: Kevin Cernekee &lt;cernekee@chromium.org&gt;
Acked-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Cc: Ulrich Hecht &lt;ulrich.hecht+renesas@gmail.com&gt;
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-tegra@vger.kernel.org
Cc: linux-omap@vger.kernel.org
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the provider based method to get a clock's name so that we
can get rid of the clk member in struct clk_hw one day. Mostly
converted with the following coccinelle script.

@@
struct clk_hw *E;
@@

-__clk_get_name(E-&gt;clk)
+clk_hw_get_name(E)

Acked-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Cc: Sylwester Nawrocki &lt;s.nawrocki@samsung.com&gt;
Cc: Tomasz Figa &lt;tomasz.figa@gmail.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;
Acked-by: Thierry Reding &lt;treding@nvidia.com&gt;
Cc: Thierry Reding &lt;thierry.reding@gmail.com&gt;
Cc: Alexandre Courbot &lt;gnurou@gmail.com&gt;
Cc: Tero Kristo &lt;t-kristo@ti.com&gt;
Cc: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Acked-by: Sebastian Hesselbarth &lt;sebastian.hesselbarth@gmail.com&gt;
Acked-by: Andrew Bresticker &lt;abrestic@chromium.org&gt;
Cc: Ezequiel Garcia &lt;ezequiel.garcia@imgtec.com&gt;
Cc: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Cc: Kevin Cernekee &lt;cernekee@chromium.org&gt;
Acked-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Cc: Ulrich Hecht &lt;ulrich.hecht+renesas@gmail.com&gt;
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-tegra@vger.kernel.org
Cc: linux-omap@vger.kernel.org
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: tegra: Convert to clk_hw based provider APIs</title>
<updated>2015-08-24T23:48:57+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='https://git.tavy.me/linux-stable.git/commit/?id=5cdb1dc50be615aa26f8952e4b6f67b483849e97'/>
<id>5cdb1dc50be615aa26f8952e4b6f67b483849e97</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.

Cc: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Cc: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.

Cc: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Cc: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'cleanup-clk-h-includes' into clk-next</title>
<updated>2015-07-28T18:59:09+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-07-21T18:22:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9cfad9bc472a4bdd5ee7d9e713113a9f5a676704'/>
<id>9cfad9bc472a4bdd5ee7d9e713113a9f5a676704</id>
<content type='text'>
* cleanup-clk-h-includes: (62 commits)
  clk: Remove clk.h from clk-provider.h
  clk: h8300: Remove clk.h and clkdev.h includes
  clk: at91: Include clk.h and slab.h
  clk: ti: Switch clk-provider.h include to clk.h
  clk: pistachio: Include clk.h
  clk: ingenic: Include clk.h
  clk: si570: Include clk.h
  clk: moxart: Include clk.h
  clk: cdce925: Include clk.h
  clk: Include clk.h in clk.c
  clk: zynq: Include clk.h
  clk: ti: Include clk.h
  clk: sunxi: Include clk.h and remove unused clkdev.h includes
  clk: st: Include clk.h
  clk: qcom: Include clk.h
  clk: highbank: Include clk.h
  clk: bcm: Include clk.h
  clk: versatile: Remove clk.h and clkdev.h includes
  clk: ux500: Remove clk.h and clkdev.h includes
  clk: tegra: Properly include clk.h
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* cleanup-clk-h-includes: (62 commits)
  clk: Remove clk.h from clk-provider.h
  clk: h8300: Remove clk.h and clkdev.h includes
  clk: at91: Include clk.h and slab.h
  clk: ti: Switch clk-provider.h include to clk.h
  clk: pistachio: Include clk.h
  clk: ingenic: Include clk.h
  clk: si570: Include clk.h
  clk: moxart: Include clk.h
  clk: cdce925: Include clk.h
  clk: Include clk.h in clk.c
  clk: zynq: Include clk.h
  clk: ti: Include clk.h
  clk: sunxi: Include clk.h and remove unused clkdev.h includes
  clk: st: Include clk.h
  clk: qcom: Include clk.h
  clk: highbank: Include clk.h
  clk: bcm: Include clk.h
  clk: versatile: Remove clk.h and clkdev.h includes
  clk: ux500: Remove clk.h and clkdev.h includes
  clk: tegra: Properly include clk.h
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: change clk_ops' -&gt;determine_rate() prototype</title>
<updated>2015-07-28T01:12:01+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@free-electrons.com</email>
</author>
<published>2015-07-07T18:48:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0817b62cc037a56c5e4238c7eb7522299ea27aef'/>
<id>0817b62cc037a56c5e4238c7eb7522299ea27aef</id>
<content type='text'>
Clock rates are stored in an unsigned long field, but -&gt;determine_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 -&gt;determine_rate() prototype to return 0 or an error code, and pass
a pointer to a clk_rate_request structure containing the expected target
rate and the rate constraints imposed by clk users.

The clk_rate_request structure might be extended in the future to contain
other kind of constraints like the rounding policy, the maximum clock
inaccuracy or other things that are not yet supported by the CCF
(power consumption constraints ?).

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;
Acked-by: 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
[sboyd@codeaurora.org: Fix parent dereference problem in
__clk_determine_rate()]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Tested-by: Romain Perier &lt;romain.perier@gmail.com&gt;
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
[sboyd@codeaurora.org: Folded in fix from Heiko for fixed-rate
clocks without parents or a rate determining op]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clock rates are stored in an unsigned long field, but -&gt;determine_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 -&gt;determine_rate() prototype to return 0 or an error code, and pass
a pointer to a clk_rate_request structure containing the expected target
rate and the rate constraints imposed by clk users.

The clk_rate_request structure might be extended in the future to contain
other kind of constraints like the rounding policy, the maximum clock
inaccuracy or other things that are not yet supported by the CCF
(power consumption constraints ?).

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;
Acked-by: 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
[sboyd@codeaurora.org: Fix parent dereference problem in
__clk_determine_rate()]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Tested-by: Romain Perier &lt;romain.perier@gmail.com&gt;
Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
[sboyd@codeaurora.org: Folded in fix from Heiko for fixed-rate
clocks without parents or a rate determining op]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: tegra: Properly include clk.h</title>
<updated>2015-07-20T18:11:17+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-06-19T22:00:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=584ac4e935a1f905d67c8fa3fbe8e32d384721f1'/>
<id>584ac4e935a1f905d67c8fa3fbe8e32d384721f1</id>
<content type='text'>
Clock provider drivers generally shouldn't include clk.h because
it's the consumer API. Only include clk.h in files that are using
it. Also add in a clkdev.h include that was missing in a file
using clkdev APIs.

Cc: Peter De Schrijver &lt;pdeschrijver@nvidia.com&gt;
Cc: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Clock provider drivers generally shouldn't include clk.h because
it's the consumer API. Only include clk.h in files that are using
it. Also add in a clkdev.h include that was missing in a file
using clkdev APIs.

Cc: Peter De Schrijver &lt;pdeschrijver@nvidia.com&gt;
Cc: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: tegra: Add the DFLL as a possible parent of the cclk_g clock</title>
<updated>2015-07-16T08:40:20+00:00</updated>
<author>
<name>Tuomas Tynkkynen</name>
<email>ttynkkynen@nvidia.com</email>
</author>
<published>2015-05-13T14:58:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=79cf95c763a11d4b365cd5a627fd1ab4dca67890'/>
<id>79cf95c763a11d4b365cd5a627fd1ab4dca67890</id>
<content type='text'>
The DFLL clocksource was missing from the list of possible parents for
the fast CPU cluster. Add it to the list.

Signed-off-by: Tuomas Tynkkynen &lt;ttynkkynen@nvidia.com&gt;
Signed-off-by: Mikko Perttunen &lt;mikko.perttunen@kapsi.fi&gt;
Acked-by: Michael Turquette &lt;mturquette@linaro.org&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The DFLL clocksource was missing from the list of possible parents for
the fast CPU cluster. Add it to the list.

Signed-off-by: Tuomas Tynkkynen &lt;ttynkkynen@nvidia.com&gt;
Signed-off-by: Mikko Perttunen &lt;mikko.perttunen@kapsi.fi&gt;
Acked-by: Michael Turquette &lt;mturquette@linaro.org&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: tegra: Save/restore CCLKG_BURST_POLICY on suspend</title>
<updated>2015-07-16T08:40:19+00:00</updated>
<author>
<name>Tuomas Tynkkynen</name>
<email>ttynkkynen@nvidia.com</email>
</author>
<published>2015-05-13T14:58:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c38864a703f3fe50e2b87883a0def392dd5bf26f'/>
<id>c38864a703f3fe50e2b87883a0def392dd5bf26f</id>
<content type='text'>
Save and restore this register since the LP1 restore assembly routines
fiddle with it. Otherwise the CPU would keep running on PLLX after
resume from suspend even when DFLL was the original clocksource.

Signed-off-by: Tuomas Tynkkynen &lt;ttynkkynen@nvidia.com&gt;
Signed-off-by: Mikko Perttunen &lt;mikko.perttunen@kapsi.fi&gt;
Acked-by: Peter De Schrijver &lt;pdeschrijver@nvidia.com&gt;
Acked-by: Michael Turquette &lt;mturquette@linaro.org&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Save and restore this register since the LP1 restore assembly routines
fiddle with it. Otherwise the CPU would keep running on PLLX after
resume from suspend even when DFLL was the original clocksource.

Signed-off-by: Tuomas Tynkkynen &lt;ttynkkynen@nvidia.com&gt;
Signed-off-by: Mikko Perttunen &lt;mikko.perttunen@kapsi.fi&gt;
Acked-by: Peter De Schrijver &lt;pdeschrijver@nvidia.com&gt;
Acked-by: Michael Turquette &lt;mturquette@linaro.org&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
