Re: [PATCH] arm64: dts: qcom: sdm850-yoga: Reshuffle IPA memory mappings

From: Bjorn Andersson
Date: Sun Sep 19 2021 - 20:22:58 EST


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 <amit.pundir@xxxxxxxxxx>

Thanks for the report and fix Amit, I verified that this works fine on
my Yoga as well.

Tested-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>

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
>