The Google Herobrine WIFI SKU can save 256M by not having modem/mba/rmtfs memory regions defined. Add the dts fragment and mark all the board files appropriately. Signed-off-by: Sibi Sankar <quic_sibis@xxxxxxxxxxx> --- Depends on: Add LTE SKUs for Villager: https://patchwork.kernel.org/project/linux-arm-msm/cover/20220830182923.3720287-1-dianders@xxxxxxxxxxxx/ Instead of just having remoteproc_mpss node disabled, we go ahead and delete it on wifi only SKUs. This is done to avoid the dtbs_check failures that we would end of getting if we delete the memory-region property present in the node (since it's a required property). I'll send a follow up patch with IPA node enabled only on LTE SKUs as soon as I verify that it doesn't have any affects on suspend/resume. arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 15 --------------- arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts | 1 + .../boot/dts/qcom/sc7280-herobrine-evoker-r0.dts | 1 + .../arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 19 +++++++++++++++++++ .../dts/qcom/sc7280-herobrine-villager-r1-lte.dts | 5 ++++- .../boot/dts/qcom/sc7280-herobrine-villager-r1.dts | 1 + .../boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi | 11 +++++++++++ arch/arm64/boot/dts/qcom/sc7280-idp2.dts | 1 + 8 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi diff --git a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi index 25f31c81b2b7..16fb20369c01 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi @@ -39,20 +39,10 @@ no-map; }; - mpss_mem: memory@8b800000 { - reg = <0x0 0x8b800000 0x0 0xf600000>; - no-map; - }; - wpss_mem: memory@9ae00000 { reg = <0x0 0x9ae00000 0x0 0x1900000>; no-map; }; - - mba_mem: memory@9c700000 { - reg = <0x0 0x9c700000 0x0 0x200000>; - no-map; - }; }; }; @@ -88,11 +78,6 @@ firmware-name = "ath11k/WCN6750/hw1.0/wpss.mdt"; }; -/* Increase the size from 2.5MB to 8MB */ -&rmtfs_mem { - reg = <0x0 0x9c900000 0x0 0x800000>; -}; - &wifi { status = "okay"; diff --git a/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts b/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts index 344338ad8a01..480cb88f2154 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts +++ b/arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts @@ -9,6 +9,7 @@ #include "sc7280-idp.dtsi" #include "sc7280-idp-ec-h1.dtsi" +#include "sc7280-herobrine-lte-sku.dtsi" / { model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev3 - 4)"; diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker-r0.dts b/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker-r0.dts index ccbe50b6249a..6a2ffaac33bc 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker-r0.dts +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker-r0.dts @@ -8,6 +8,7 @@ /dts-v1/; #include "sc7280-herobrine.dtsi" +#include "sc7280-herobrine-wifi-sku.dtsi" / { model = "Google Evoker"; diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi index a92eeccd2b2a..ad66e5e9db4e 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi @@ -6,6 +6,20 @@ */ /* Modem setup is different on Chrome setups than typical Qualcomm setup */ +/ { + reserved-memory { + mpss_mem: memory@8b800000 { + reg = <0x0 0x8b800000 0x0 0xf600000>; + no-map; + }; + + mba_mem: memory@9c700000 { + reg = <0x0 0x9c700000 0x0 0x200000>; + no-map; + }; + }; +}; + &remoteproc_mpss { compatible = "qcom,sc7280-mss-pil"; iommus = <&apps_smmu 0x124 0x0>, <&apps_smmu 0x488 0x7>; @@ -15,3 +29,8 @@ "qcom/sc7280-herobrine/modem/qdsp6sw.mbn"; status = "okay"; }; + +/* Increase the size from 2.5MB to 8MB */ +&rmtfs_mem { + reg = <0x0 0x9c900000 0x0 0x800000>; +}; diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1-lte.dts b/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1-lte.dts index f1017809e5da..ee3bca264f67 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1-lte.dts +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1-lte.dts @@ -5,7 +5,10 @@ * Copyright 2022 Google LLC. */ -#include "sc7280-herobrine-villager-r1.dts" +/dts-v1/; + +#include "sc7280-herobrine-villager.dtsi" +#include "sc7280-herobrine-audio-wcd9385.dtsi" #include "sc7280-herobrine-lte-sku.dtsi" / { diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1.dts b/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1.dts index d7aa42ece576..023546cc7971 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1.dts +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r1.dts @@ -9,6 +9,7 @@ #include "sc7280-herobrine-villager.dtsi" #include "sc7280-herobrine-audio-wcd9385.dtsi" +#include "sc7280-herobrine-wifi-sku.dtsi" / { model = "Google Villager (rev1+)"; diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi new file mode 100644 index 000000000000..2febd6126d4c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Google Herobrine dts fragment for WIFI SKUs + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/* WIFI SKUs save 256M by not having modem/mba/rmtfs memory regions defined. */ + +/delete-node/ &remoteproc_mpss; +/delete-node/ &rmtfs_mem; diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp2.dts b/arch/arm64/boot/dts/qcom/sc7280-idp2.dts index d4f7cab17078..8c215d414675 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-idp2.dts +++ b/arch/arm64/boot/dts/qcom/sc7280-idp2.dts @@ -9,6 +9,7 @@ #include "sc7280-idp.dtsi" #include "sc7280-idp-ec-h1.dtsi" +#include "sc7280-herobrine-lte-sku.dtsi" / { model = "Qualcomm Technologies, Inc. sc7280 IDP SKU2 platform"; -- 2.7.4