Upstream commit 2e01e0c21459 ("arm64: dts: qcom: sdm850-yoga:
Enable IPA") shuffled reserved memory regions in sdm845.dtsi
to make firmware loading succeed and enable the ipa device on
sdm845-yoga but it broke the other common users of those
memory regions like Xiaomi Pocophone F1.
So this patch effectively revert those upstream commit changes
and move all the relevant changes to sdm850-lenovo-yoga-c630.dts
instead.
Fixes: 2e01e0c21459 ("arm64: dts: qcom: sdm850-yoga: Enable IPA")
Signed-off-by: Amit Pundir <[email protected]>
---
Smoke tested on PocoF1 and not on Yoga-C630.
arch/arm64/boot/dts/qcom/sdm845.dtsi | 21 +++++++-----
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 34 +++++++++++++++++++
2 files changed, 47 insertions(+), 8 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 6d7172e6f4c3..b3b911926184 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -128,23 +128,28 @@ camera_mem: memory@8bf00000 {
no-map;
};
- wlan_msa_mem: memory@8c400000 {
- reg = <0 0x8c400000 0 0x100000>;
+ ipa_fw_mem: memory@8c400000 {
+ reg = <0 0x8c400000 0 0x10000>;
no-map;
};
- gpu_mem: memory@8c515000 {
- reg = <0 0x8c515000 0 0x2000>;
+ ipa_gsi_mem: memory@8c410000 {
+ reg = <0 0x8c410000 0 0x5000>;
no-map;
};
- ipa_fw_mem: memory@8c517000 {
- reg = <0 0x8c517000 0 0x5a000>;
+ gpu_mem: memory@8c415000 {
+ reg = <0 0x8c415000 0 0x2000>;
no-map;
};
- adsp_mem: memory@8c600000 {
- reg = <0 0x8c600000 0 0x1a00000>;
+ adsp_mem: memory@8c500000 {
+ reg = <0 0x8c500000 0 0x1a00000>;
+ no-map;
+ };
+
+ wlan_msa_mem: memory@8df00000 {
+ reg = <0 0x8df00000 0 0x100000>;
no-map;
};
diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
index 385e5029437d..2ba23aa582a1 100644
--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
@@ -16,6 +16,17 @@
#include "sdm850.dtsi"
#include "pm8998.dtsi"
+/*
+ * Update following upstream (sdm845.dtsi) reserved
+ * memory mappings for firmware loading to succeed
+ * and enable the IPA device.
+ */
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &ipa_gsi_mem;
+/delete-node/ &gpu_mem;
+/delete-node/ &adsp_mem;
+/delete-node/ &wlan_msa_mem;
+
/ {
model = "Lenovo Yoga C630";
compatible = "lenovo,yoga-c630", "qcom,sdm845";
@@ -58,6 +69,29 @@ panel_in_edp: endpoint {
};
};
+ /* Reserved memory changes for IPA */
+ reserved-memory {
+ wlan_msa_mem: memory@8c400000 {
+ reg = <0 0x8c400000 0 0x100000>;
+ no-map;
+ };
+
+ gpu_mem: memory@8c515000 {
+ reg = <0 0x8c515000 0 0x2000>;
+ no-map;
+ };
+
+ ipa_fw_mem: memory@8c517000 {
+ reg = <0 0x8c517000 0 0x5a000>;
+ no-map;
+ };
+
+ adsp_mem: memory@8c600000 {
+ reg = <0 0x8c600000 0 0x1a00000>;
+ no-map;
+ };
+ };
+
sn65dsi86_refclk: sn65dsi86-refclk {
compatible = "fixed-clock";
#clock-cells = <0>;
--
2.25.1
On 9/16/21 3:05 PM, Amit Pundir wrote:
> Upstream commit 2e01e0c21459 ("arm64: dts: qcom: sdm850-yoga:
> Enable IPA") shuffled reserved memory regions in sdm845.dtsi
> to make firmware loading succeed and enable the ipa device on
> sdm845-yoga but it broke the other common users of those
> memory regions like Xiaomi Pocophone F1.
>
> So this patch effectively revert those upstream commit changes
> and move all the relevant changes to sdm850-lenovo-yoga-c630.dts
> instead.
>
> Fixes: 2e01e0c21459 ("arm64: dts: qcom: sdm850-yoga: Enable IPA")
> Signed-off-by: Amit Pundir <[email protected]>
> ---
> Smoke tested on PocoF1 and not on Yoga-C630.
>
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 21 +++++++-----
> .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 34 +++++++++++++++++++
> 2 files changed, 47 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index 6d7172e6f4c3..b3b911926184 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -128,23 +128,28 @@ camera_mem: memory@8bf00000 {
> no-map;
> };
>
> - wlan_msa_mem: memory@8c400000 {
> - reg = <0 0x8c400000 0 0x100000>;
> + ipa_fw_mem: memory@8c400000 {
> + reg = <0 0x8c400000 0 0x10000>;
> no-map;
> };
>
> - gpu_mem: memory@8c515000 {
> - reg = <0 0x8c515000 0 0x2000>;
> + ipa_gsi_mem: memory@8c410000 {
> + reg = <0 0x8c410000 0 0x5000>;
> no-map;
> };
>
> - ipa_fw_mem: memory@8c517000 {
> - reg = <0 0x8c517000 0 0x5a000>;
> + gpu_mem: memory@8c415000 {
> + reg = <0 0x8c415000 0 0x2000>;
> no-map;
> };
>
> - adsp_mem: memory@8c600000 {
> - reg = <0 0x8c600000 0 0x1a00000>;
> + adsp_mem: memory@8c500000 {
> + reg = <0 0x8c500000 0 0x1a00000>;
> + no-map;
> + };
> +
> + wlan_msa_mem: memory@8df00000 {
> + reg = <0 0x8df00000 0 0x100000>;
> no-map;
> };
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
> index 385e5029437d..2ba23aa582a1 100644
> --- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
> @@ -16,6 +16,17 @@
> #include "sdm850.dtsi"
> #include "pm8998.dtsi"
>
> +/*
> + * Update following upstream (sdm845.dtsi) reserved
> + * memory mappings for firmware loading to succeed
> + * and enable the IPA device.
> + */
> +/delete-node/ &ipa_fw_mem;
> +/delete-node/ &ipa_gsi_mem;
> +/delete-node/ &gpu_mem;
> +/delete-node/ &adsp_mem;
> +/delete-node/ &wlan_msa_mem;
> +
> / {
> model = "Lenovo Yoga C630";
> compatible = "lenovo,yoga-c630", "qcom,sdm845";
> @@ -58,6 +69,29 @@ panel_in_edp: endpoint {
> };
> };
>
> + /* Reserved memory changes for IPA */
> + reserved-memory {
> + wlan_msa_mem: memory@8c400000 {
> + reg = <0 0x8c400000 0 0x100000>;
> + no-map;
> + };
> +
> + gpu_mem: memory@8c515000 {
> + reg = <0 0x8c515000 0 0x2000>;
> + no-map;
> + };
> +
> + ipa_fw_mem: memory@8c517000 {
> + reg = <0 0x8c517000 0 0x5a000>;
> + no-map;
> + };
> +
> + adsp_mem: memory@8c600000 {
> + reg = <0 0x8c600000 0 0x1a00000>;
> + no-map;
> + };
> + };
> +
> sn65dsi86_refclk: sn65dsi86-refclk {
> compatible = "fixed-clock";
> #clock-cells = <0>;
Tested on the Lenovo Yoga C630 I have. I get the ipa modem device, so it looks like it does the correct thing. I don't have a SIM card to test actual connectivity though.
Tested-By: Steev Klimaszewski <[email protected]>
On Thu 16 Sep 13:05 PDT 2021, Amit Pundir wrote:
> Upstream commit 2e01e0c21459 ("arm64: dts: qcom: sdm850-yoga:
> Enable IPA") shuffled reserved memory regions in sdm845.dtsi
> to make firmware loading succeed and enable the ipa device on
> sdm845-yoga but it broke the other common users of those
> memory regions like Xiaomi Pocophone F1.
>
> So this patch effectively revert those upstream commit changes
> and move all the relevant changes to sdm850-lenovo-yoga-c630.dts
> instead.
>
> Fixes: 2e01e0c21459 ("arm64: dts: qcom: sdm850-yoga: Enable IPA")
> Signed-off-by: Amit Pundir <[email protected]>
Thanks for the report and fix Amit, I verified that this works fine on
my Yoga as well.
Tested-by: Bjorn Andersson <[email protected]>
Regards,
Bjorn
> ---
> Smoke tested on PocoF1 and not on Yoga-C630.
>
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 21 +++++++-----
> .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 34 +++++++++++++++++++
> 2 files changed, 47 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index 6d7172e6f4c3..b3b911926184 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -128,23 +128,28 @@ camera_mem: memory@8bf00000 {
> no-map;
> };
>
> - wlan_msa_mem: memory@8c400000 {
> - reg = <0 0x8c400000 0 0x100000>;
> + ipa_fw_mem: memory@8c400000 {
> + reg = <0 0x8c400000 0 0x10000>;
> no-map;
> };
>
> - gpu_mem: memory@8c515000 {
> - reg = <0 0x8c515000 0 0x2000>;
> + ipa_gsi_mem: memory@8c410000 {
> + reg = <0 0x8c410000 0 0x5000>;
> no-map;
> };
>
> - ipa_fw_mem: memory@8c517000 {
> - reg = <0 0x8c517000 0 0x5a000>;
> + gpu_mem: memory@8c415000 {
> + reg = <0 0x8c415000 0 0x2000>;
> no-map;
> };
>
> - adsp_mem: memory@8c600000 {
> - reg = <0 0x8c600000 0 0x1a00000>;
> + adsp_mem: memory@8c500000 {
> + reg = <0 0x8c500000 0 0x1a00000>;
> + no-map;
> + };
> +
> + wlan_msa_mem: memory@8df00000 {
> + reg = <0 0x8df00000 0 0x100000>;
> no-map;
> };
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
> index 385e5029437d..2ba23aa582a1 100644
> --- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
> @@ -16,6 +16,17 @@
> #include "sdm850.dtsi"
> #include "pm8998.dtsi"
>
> +/*
> + * Update following upstream (sdm845.dtsi) reserved
> + * memory mappings for firmware loading to succeed
> + * and enable the IPA device.
> + */
> +/delete-node/ &ipa_fw_mem;
> +/delete-node/ &ipa_gsi_mem;
> +/delete-node/ &gpu_mem;
> +/delete-node/ &adsp_mem;
> +/delete-node/ &wlan_msa_mem;
> +
> / {
> model = "Lenovo Yoga C630";
> compatible = "lenovo,yoga-c630", "qcom,sdm845";
> @@ -58,6 +69,29 @@ panel_in_edp: endpoint {
> };
> };
>
> + /* Reserved memory changes for IPA */
> + reserved-memory {
> + wlan_msa_mem: memory@8c400000 {
> + reg = <0 0x8c400000 0 0x100000>;
> + no-map;
> + };
> +
> + gpu_mem: memory@8c515000 {
> + reg = <0 0x8c515000 0 0x2000>;
> + no-map;
> + };
> +
> + ipa_fw_mem: memory@8c517000 {
> + reg = <0 0x8c517000 0 0x5a000>;
> + no-map;
> + };
> +
> + adsp_mem: memory@8c600000 {
> + reg = <0 0x8c600000 0 0x1a00000>;
> + no-map;
> + };
> + };
> +
> sn65dsi86_refclk: sn65dsi86-refclk {
> compatible = "fixed-clock";
> #clock-cells = <0>;
> --
> 2.25.1
>