<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/clk/qcom, branch v4.4.2</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>clk: qcom: msm8960: Fix dsi1/2 halt bits</title>
<updated>2015-10-27T20:10:13+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-10-27T01:23:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e5bf1991ea62b4f4fc906d0828f7eed988fc3835'/>
<id>e5bf1991ea62b4f4fc906d0828f7eed988fc3835</id>
<content type='text'>
The halt bits for these clocks seem wrong. I get the following
warning while booting on an msm8960-cdp:

WARNING: CPU: 0 PID: 1 at drivers/clk/qcom/clk-branch.c:97 clk_branch_toggle+0xd0/0x138()
dsi1_clk status stuck at 'on'
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc3-00113-g5532cfb567fe #110
Hardware name: Qualcomm (Flattened Device Tree)
[&lt;c0216984&gt;] (unwind_backtrace) from [&lt;c02138f8&gt;] (show_stack+0x10/0x14)
[&lt;c02138f8&gt;] (show_stack) from [&lt;c04a525c&gt;] (dump_stack+0x70/0xbc)
[&lt;c04a525c&gt;] (dump_stack) from [&lt;c0223c70&gt;] (warn_slowpath_common+0x78/0xb4)
[&lt;c0223c70&gt;] (warn_slowpath_common) from [&lt;c0223d40&gt;] (warn_slowpath_fmt+0x30/0x40)
[&lt;c0223d40&gt;] (warn_slowpath_fmt) from [&lt;c05fc2dc&gt;] (clk_branch_toggle+0xd0/0x138)
[&lt;c05fc2dc&gt;] (clk_branch_toggle) from [&lt;c05f3f3c&gt;] (clk_disable_unused_subtree+0x98/0x1b0)
[&lt;c05f3f3c&gt;] (clk_disable_unused_subtree) from [&lt;c05f3ec4&gt;] (clk_disable_unused_subtree+0x20/0x1b0)
[&lt;c05f3ec4&gt;] (clk_disable_unused_subtree) from [&lt;c05f5474&gt;] (clk_disable_unused+0x58/0xd8)
[&lt;c05f5474&gt;] (clk_disable_unused) from [&lt;c0209710&gt;] (do_one_initcall+0xac/0x1ec)
[&lt;c0209710&gt;] (do_one_initcall) from [&lt;c0991db4&gt;] (kernel_init_freeable+0x11c/0x1e8)
[&lt;c0991db4&gt;] (kernel_init_freeable) from [&lt;c0727ae0&gt;] (kernel_init+0x8/0xec)
[&lt;c0727ae0&gt;] (kernel_init) from [&lt;c0210238&gt;] (ret_from_fork+0x14/0x3c)

Fix the status bits and the errors go away.

Fixes: 5532cfb567fe ("clk: qcom: mmcc-8960: Add DSI related clocks")
Acked-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The halt bits for these clocks seem wrong. I get the following
warning while booting on an msm8960-cdp:

WARNING: CPU: 0 PID: 1 at drivers/clk/qcom/clk-branch.c:97 clk_branch_toggle+0xd0/0x138()
dsi1_clk status stuck at 'on'
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc3-00113-g5532cfb567fe #110
Hardware name: Qualcomm (Flattened Device Tree)
[&lt;c0216984&gt;] (unwind_backtrace) from [&lt;c02138f8&gt;] (show_stack+0x10/0x14)
[&lt;c02138f8&gt;] (show_stack) from [&lt;c04a525c&gt;] (dump_stack+0x70/0xbc)
[&lt;c04a525c&gt;] (dump_stack) from [&lt;c0223c70&gt;] (warn_slowpath_common+0x78/0xb4)
[&lt;c0223c70&gt;] (warn_slowpath_common) from [&lt;c0223d40&gt;] (warn_slowpath_fmt+0x30/0x40)
[&lt;c0223d40&gt;] (warn_slowpath_fmt) from [&lt;c05fc2dc&gt;] (clk_branch_toggle+0xd0/0x138)
[&lt;c05fc2dc&gt;] (clk_branch_toggle) from [&lt;c05f3f3c&gt;] (clk_disable_unused_subtree+0x98/0x1b0)
[&lt;c05f3f3c&gt;] (clk_disable_unused_subtree) from [&lt;c05f3ec4&gt;] (clk_disable_unused_subtree+0x20/0x1b0)
[&lt;c05f3ec4&gt;] (clk_disable_unused_subtree) from [&lt;c05f5474&gt;] (clk_disable_unused+0x58/0xd8)
[&lt;c05f5474&gt;] (clk_disable_unused) from [&lt;c0209710&gt;] (do_one_initcall+0xac/0x1ec)
[&lt;c0209710&gt;] (do_one_initcall) from [&lt;c0991db4&gt;] (kernel_init_freeable+0x11c/0x1e8)
[&lt;c0991db4&gt;] (kernel_init_freeable) from [&lt;c0727ae0&gt;] (kernel_init+0x8/0xec)
[&lt;c0727ae0&gt;] (kernel_init) from [&lt;c0210238&gt;] (ret_from_fork+0x14/0x3c)

Fix the status bits and the errors go away.

Fixes: 5532cfb567fe ("clk: qcom: mmcc-8960: Add DSI related clocks")
Acked-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: mmcc-8960: Add DSI related clocks</title>
<updated>2015-10-16T22:08:43+00:00</updated>
<author>
<name>Archit Taneja</name>
<email>architt@codeaurora.org</email>
</author>
<published>2015-10-14T12:54:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5532cfb567fec4ebb9775481ef121edb340ec5b8'/>
<id>5532cfb567fec4ebb9775481ef121edb340ec5b8</id>
<content type='text'>
Add rcg and branch clk structs for DSI1 and DSI2 blocks found in MSM8960
and APQ8064. Each DSI instance has 4 pairs of rcg and branch clocks.
Populate arrays mmcc_msm8960_clks and mmcc_apq8064_clks with these clocks.

Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add rcg and branch clk structs for DSI1 and DSI2 blocks found in MSM8960
and APQ8064. Each DSI instance has 4 pairs of rcg and branch clocks.
Populate arrays mmcc_msm8960_clks and mmcc_apq8064_clks with these clocks.

Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: clk-rcg: Add customized clk_ops for DSI RCGs</title>
<updated>2015-10-16T22:08:40+00:00</updated>
<author>
<name>Archit Taneja</name>
<email>architt@codeaurora.org</email>
</author>
<published>2015-10-14T12:54:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d8aa2beed870f088d4433b7075303e58764f0587'/>
<id>d8aa2beed870f088d4433b7075303e58764f0587</id>
<content type='text'>
DSI specific RCG clocks required customized clk_ops. There are
a total of 4 RCGs per DSI block: DSI, BYTE, ESC and PIXEL.

There are a total of 2 clocks coming from the DSI PLL, which serve as
inputs to these RCGs. The BYTE and ESC RCGs are fed by one of the
post dividers of DSI1 or DSI2 PLLs, and the DSI and PIXEL RCGs are fed by
another divider of the PLL.

In each of the 2 groups above, only one of the clocks sets its parent.
These are BYTE RCG and DSI RCG for each of the groups respectively, as
shown in the diagram below.

The DSI and BYTE RCGs serve as bypass clocks. We create a new set of ops
clk_rcg_bypass2_ops, which are like the regular bypass ops, but don't
take in a freq table, since the DSI driver using these clocks is
parent-able.

The PIXEL RCG needs to derive the required pixel clock using dsixpll.
It parses a m/n frac table to retrieve the correct clock.

The ESC RCG doesn't have a frac M/N block, it can just apply a pre-
divider. Its ops simply check if the required clock rate can be
achieved by the pre-divider.

      +-------------------+
      |                   |---dsixpllbyte---o---&gt; To byte RCG
      |                   |                 | (sets parent rate)
      |                   |                 |
      |                   |                 |
      |    DSI 1/2 PLL    |                 |
      |                   |                 o---&gt; To esc RCG
      |                   |                 (doesn't set parent rate)
      |                   |
      |                   |----dsixpll-----o---&gt; To dsi RCG
      +-------------------+                | (sets parent rate)
                             ( x = 1, 2 )  |
                                           |
                                           o---&gt; To pixel rcg
                                           (doesn't set parent rate)

Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DSI specific RCG clocks required customized clk_ops. There are
a total of 4 RCGs per DSI block: DSI, BYTE, ESC and PIXEL.

There are a total of 2 clocks coming from the DSI PLL, which serve as
inputs to these RCGs. The BYTE and ESC RCGs are fed by one of the
post dividers of DSI1 or DSI2 PLLs, and the DSI and PIXEL RCGs are fed by
another divider of the PLL.

In each of the 2 groups above, only one of the clocks sets its parent.
These are BYTE RCG and DSI RCG for each of the groups respectively, as
shown in the diagram below.

The DSI and BYTE RCGs serve as bypass clocks. We create a new set of ops
clk_rcg_bypass2_ops, which are like the regular bypass ops, but don't
take in a freq table, since the DSI driver using these clocks is
parent-able.

The PIXEL RCG needs to derive the required pixel clock using dsixpll.
It parses a m/n frac table to retrieve the correct clock.

The ESC RCG doesn't have a frac M/N block, it can just apply a pre-
divider. Its ops simply check if the required clock rate can be
achieved by the pre-divider.

      +-------------------+
      |                   |---dsixpllbyte---o---&gt; To byte RCG
      |                   |                 | (sets parent rate)
      |                   |                 |
      |                   |                 |
      |    DSI 1/2 PLL    |                 |
      |                   |                 o---&gt; To esc RCG
      |                   |                 (doesn't set parent rate)
      |                   |
      |                   |----dsixpll-----o---&gt; To dsi RCG
      +-------------------+                | (sets parent rate)
                             ( x = 1, 2 )  |
                                           |
                                           o---&gt; To pixel rcg
                                           (doesn't set parent rate)

Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: create virtual child device for TSENS</title>
<updated>2015-10-09T06:53:03+00:00</updated>
<author>
<name>Rajendra Nayak</name>
<email>rnayak@codeaurora.org</email>
</author>
<published>2015-10-08T05:01:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=53c929c922ccc5e615c3310e86ffbc1387372854'/>
<id>53c929c922ccc5e615c3310e86ffbc1387372854</id>
<content type='text'>
8960 family of devices have TSENS as part of GCC in hardware.
Hence DT would represent a GCC node with GCC properties as well
as TSENS. Create a virtual platform child device here for TSENS
so the driver can probe it and use the parent (GCC) to extract DT
properties.

Suggested-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
[sboyd@codeaurora.org: Massaged to work with devm friendly
qcom_cc_probe()]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
8960 family of devices have TSENS as part of GCC in hardware.
Hence DT would represent a GCC node with GCC properties as well
as TSENS. Create a virtual platform child device here for TSENS
so the driver can probe it and use the parent (GCC) to extract DT
properties.

Suggested-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
Signed-off-by: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
[sboyd@codeaurora.org: Massaged to work with devm friendly
qcom_cc_probe()]
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: Move gdsc config outside COMMON_CLK_QCOM config</title>
<updated>2015-10-09T06:53:02+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-10-08T17:59:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=73bb7dc08edd921953f7b720b54e5dcb15ee0a02'/>
<id>73bb7dc08edd921953f7b720b54e5dcb15ee0a02</id>
<content type='text'>
Having this hidden config below the COMMON_CLK_QCOM config causes
menuconfig to stop indenting config items after it.

        &lt;*&gt; Support for Qualcomm's clock controllers
        {M}   APQ8084 Global Clock Controller
        &lt;M&gt;   APQ8084 Multimedia Clock Controller
        {M}   IPQ806x Global Clock Controller
        &lt;M&gt;   IPQ806x LPASS Clock Controller
        &lt;M&gt; MSM8660 Global Clock Controller
        &lt;M&gt; MSM8916 Global Clock Controller
        {M} APQ8064/MSM8960 Global Clock Controller
        &lt;M&gt; APQ8064/MSM8960 LPASS Clock Controller
        &lt;M&gt; MSM8960 Multimedia Clock Controller
        {M} MSM8974 Global Clock Controller
        &lt;M&gt; MSM8974 Multimedia Clock Controller

Move it up above anything else so that we don't get odd
indenting.

Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Having this hidden config below the COMMON_CLK_QCOM config causes
menuconfig to stop indenting config items after it.

        &lt;*&gt; Support for Qualcomm's clock controllers
        {M}   APQ8084 Global Clock Controller
        &lt;M&gt;   APQ8084 Multimedia Clock Controller
        {M}   IPQ806x Global Clock Controller
        &lt;M&gt;   IPQ806x LPASS Clock Controller
        &lt;M&gt; MSM8660 Global Clock Controller
        &lt;M&gt; MSM8916 Global Clock Controller
        {M} APQ8064/MSM8960 Global Clock Controller
        &lt;M&gt; APQ8064/MSM8960 LPASS Clock Controller
        &lt;M&gt; MSM8960 Multimedia Clock Controller
        {M} MSM8974 Global Clock Controller
        &lt;M&gt; MSM8974 Multimedia Clock Controller

Move it up above anything else so that we don't get odd
indenting.

Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: Drop calls to qcom_cc_remove()</title>
<updated>2015-10-09T06:53:01+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-10-08T07:11:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9bc432cb242b0edff81e3ab83ba11c327cd4dd93'/>
<id>9bc432cb242b0edff81e3ab83ba11c327cd4dd93</id>
<content type='text'>
Now that qcom_cc_remove() is a nop, drop calls to
qcom_cc_remove() and any empty driver remove functions.

Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that qcom_cc_remove() is a nop, drop calls to
qcom_cc_remove() and any empty driver remove functions.

Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qcom: clk: Make qcom_cc_probe() fully devm safe</title>
<updated>2015-10-09T06:53:00+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-10-08T06:59:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=94c51f4073260e775fa404a45ac7f7adea590d0a'/>
<id>94c51f4073260e775fa404a45ac7f7adea590d0a</id>
<content type='text'>
Some APIs in qcom_cc_probe() don't have a devm counterpart, so we
have to use the calling device's platform data to pass pointers
to the remove path. Let's use devm_add_action() instead, so that
the remove path doesn't need to do anything, allowing us to
remove qcom_cc_remove() entirely.

Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some APIs in qcom_cc_probe() don't have a devm counterpart, so we
have to use the calling device's platform data to pass pointers
to the remove path. Let's use devm_add_action() instead, so that
the remove path doesn't need to do anything, allowing us to
remove qcom_cc_remove() entirely.

Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: Make oxili GDSC parent of oxili_cx GDSC</title>
<updated>2015-10-09T06:52:56+00:00</updated>
<author>
<name>Stephen Boyd</name>
<email>sboyd@codeaurora.org</email>
</author>
<published>2015-10-01T19:22:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b68f2c3b882202aba97a488c1fede0e99f7261e2'/>
<id>b68f2c3b882202aba97a488c1fede0e99f7261e2</id>
<content type='text'>
The oxili_cx GDSC is inside the power domain of the oxili GDSC.
Add the dependency so that the CX domain can properly power up.

Reported-by: Rob Clark &lt;robdclark@gmail.com&gt;
Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The oxili_cx GDSC is inside the power domain of the oxili GDSC.
Add the dependency so that the CX domain can properly power up.

Reported-by: Rob Clark &lt;robdclark@gmail.com&gt;
Cc: Rajendra Nayak &lt;rnayak@codeaurora.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: Add MSM8916 audio clocks</title>
<updated>2015-09-17T19:36:16+00:00</updated>
<author>
<name>Georgi Djakov</name>
<email>georgi.djakov@linaro.org</email>
</author>
<published>2015-09-17T16:39:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7001b3f960c66a7f3617da632564b35ddba39498'/>
<id>7001b3f960c66a7f3617da632564b35ddba39498</id>
<content type='text'>
Add support for the msm8916 audio clocks. This includes core bus,
low-power audio and codec clocks. They are required for audio playback.

Signed-off-by: Georgi Djakov &lt;georgi.djakov@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add support for the msm8916 audio clocks. This includes core bus,
low-power audio and codec clocks. They are required for audio playback.

Signed-off-by: Georgi Djakov &lt;georgi.djakov@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>clk: qcom: Add MSM8916 gpu clocks</title>
<updated>2015-09-17T19:36:15+00:00</updated>
<author>
<name>Georgi Djakov</name>
<email>georgi.djakov@linaro.org</email>
</author>
<published>2015-09-17T16:39:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a2e8272f3f898bedfc78e20b373a9d7356e16608'/>
<id>a2e8272f3f898bedfc78e20b373a9d7356e16608</id>
<content type='text'>
Add support for the msm8916 BIMC (Bus Integrated Memory Controller)
clocks that are needed for GPU.

Signed-off-by: Georgi Djakov &lt;georgi.djakov@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add support for the msm8916 BIMC (Bus Integrated Memory Controller)
clocks that are needed for GPU.

Signed-off-by: Georgi Djakov &lt;georgi.djakov@linaro.org&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
