arm64: dts: msm8916: Move smem below hwlock

Message ID 1456248071-30547-1-git-send-email-georgi.djakov@linaro.org
State New
Headers show

Commit Message

Georgi Djakov Feb. 23, 2016, 5:21 p.m.
When the SMEM is probed it defers as it depends on the hardware lock, which
is not available yet. But the SMD bus and RPM regulators and clocks depend
on SMEM and they defer too. The problem with this is that the order of
registering the devices is not optimal and also we may end with messed
up serial console as the RPM clocks are not registered yet..

Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>

---
 arch/arm64/boot/dts/qcom/msm8916.dtsi |   19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Georgi Djakov Feb. 23, 2016, 8:18 p.m. | #1
On 23.02.16 г. 21:28, Srinivas Kandagatla wrote:
> 

> 

> On 23/02/16 18:47, Georgi Djakov wrote:

>> On 23.02.16 г. 19:29, Srinivas Kandagatla wrote:

>>>

>>>

>>> On 23/02/16 17:21, Georgi Djakov wrote:

>>>> When the SMEM is probed it defers as it depends on the hardware lock, which

>>>> is not available yet. But the SMD bus and RPM regulators and clocks depend

>>>> on SMEM and they defer too. The problem with this is that the order of

>>>> registering the devices is not optimal and also we may end with messed

>>>> up serial console as the RPM clocks are not registered yet..

>>> I noticed the same issue but was wondering why would we end up with messed up serial console?

>>>

>>> Could you add more details on why serial console is messed up?

>>>

>>> I thought, serial driver has nothing to do with the rpm clocks directly!

>>>

>>

>> If we don't have the rpm clocks registered, the uart clock is an orphan

>> and when clk_get_rate() is called on orphan clocks it returns 0 as rate.

> Shouldn't the actual uart clk provider registration fail/defer probe due to missing parent in this case?

> 


Yes, this is a known issue and people are currently working on it.
http://www.spinics.net/lists/linux-clk/msg00065.html
http://www.spinics.net/lists/arm-kernel/msg475910.html

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index 7705207872a5..c497c7b1ae70 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -113,15 +113,6 @@ 
 		};
 	};
 
-	smem {
-		compatible = "qcom,smem";
-
-		memory-region = <&smem_mem>;
-		qcom,rpm-msg-ram = <&rpm_msg_ram>;
-
-		hwlocks = <&tcsr_mutex 3>;
-	};
-
 	soc: soc {
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -512,6 +503,16 @@ 
 		};
 	};
 
+	smem {
+		compatible = "qcom,smem";
+
+		memory-region = <&smem_mem>;
+		qcom,rpm-msg-ram = <&rpm_msg_ram>;
+
+		hwlocks = <&tcsr_mutex 3>;
+	};
+
+
 	smd {
 		compatible = "qcom,smd";