Merge "power: qpnp-fg-gen4: disable wakeable irqs for debug board"
diff --git a/Documentation/devicetree/bindings/pil/subsys-pil-tz.txt b/Documentation/devicetree/bindings/pil/subsys-pil-tz.txt
index 09e64c6..bcf0ba5 100644
--- a/Documentation/devicetree/bindings/pil/subsys-pil-tz.txt
+++ b/Documentation/devicetree/bindings/pil/subsys-pil-tz.txt
@@ -92,6 +92,8 @@
regardless of the fact that it's requested to power-off
explicitly, the framework won't try to power it off again.
+- qcom,minidump-as-elf32: Boolean. If set, minidump is collected in ELF32 format.
+
Example:
qcom,venus@fdce0000 {
compatible = "qcom,pil-tz-generic";
diff --git a/arch/arm64/boot/dts/qcom/atoll.dtsi b/arch/arm64/boot/dts/qcom/atoll.dtsi
index 272ec02..0122705 100644
--- a/arch/arm64/boot/dts/qcom/atoll.dtsi
+++ b/arch/arm64/boot/dts/qcom/atoll.dtsi
@@ -1550,6 +1550,13 @@
qcom,signal-aop;
qcom,complete-ramdump;
+ qcom,msm-bus,name = "pil-cdsp";
+ qcom,msm-bus,num-cases = <2>;
+ qcom,msm-bus,num-paths = <1>;
+ qcom,msm-bus,vectors-KBps =
+ <MSM_BUS_MASTER_NPU MSM_BUS_SLAVE_CDSP_GEM_NOC 0 0>,
+ <MSM_BUS_MASTER_NPU MSM_BUS_SLAVE_CDSP_GEM_NOC 0 1>;
+
/* Inputs from turing */
interrupts-extended = <&pdc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
<&cdsp_smp2p_in 0 0>,
@@ -1693,12 +1700,14 @@
qcom,pas-id = <1>;
qcom,proxy-timeout-ms = <10000>;
qcom,smem-id = <423>;
+ qcom,minidump-id = <5>;
qcom,sysmon-id = <1>;
qcom,ssctl-instance-id = <0x14>;
qcom,firmware-name = "adsp";
memory-region = <&pil_adsp_mem>;
qcom,signal-aop;
qcom,complete-ramdump;
+ qcom,minidump-as-elf32;
/* Inputs from lpass */
interrupts-extended = <&pdc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
diff --git a/arch/arm64/boot/dts/qcom/sa515m-ccard-pcie-ep.dts b/arch/arm64/boot/dts/qcom/sa515m-ccard-pcie-ep.dts
index 0d95e15..ceb0e51 100644
--- a/arch/arm64/boot/dts/qcom/sa515m-ccard-pcie-ep.dts
+++ b/arch/arm64/boot/dts/qcom/sa515m-ccard-pcie-ep.dts
@@ -48,3 +48,7 @@
&mhi_net_device {
status = "okay";
};
+
+&usb {
+ qcom,smmu-s1-bypass;
+};
diff --git a/arch/arm64/boot/dts/qcom/sdxprairie-pcie-ep-mtp.dtsi b/arch/arm64/boot/dts/qcom/sdxprairie-pcie-ep-mtp.dtsi
index 8fbf342..9fe2390 100644
--- a/arch/arm64/boot/dts/qcom/sdxprairie-pcie-ep-mtp.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdxprairie-pcie-ep-mtp.dtsi
@@ -44,3 +44,7 @@
&mhi_net_device {
status = "okay";
};
+
+&usb {
+ qcom,smmu-s1-bypass;
+};
diff --git a/arch/arm64/boot/dts/qcom/sdxprairie-v2-mtp-le-cpe.dtsi b/arch/arm64/boot/dts/qcom/sdxprairie-v2-mtp-le-cpe.dtsi
index 856c1aa..5c4e008 100644
--- a/arch/arm64/boot/dts/qcom/sdxprairie-v2-mtp-le-cpe.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdxprairie-v2-mtp-le-cpe.dtsi
@@ -28,6 +28,7 @@
&usb {
extcon = <&vbus_detect>;
+ qcom,smmu-s1-bypass;
};
&spmi_bus {
diff --git a/drivers/soc/qcom/peripheral-loader.c b/drivers/soc/qcom/peripheral-loader.c
index 1d12fdf..f679299 100644
--- a/drivers/soc/qcom/peripheral-loader.c
+++ b/drivers/soc/qcom/peripheral-loader.c
@@ -386,7 +386,11 @@ static int pil_do_minidump(struct pil_desc *desc, void *ramdump_dev)
&ss_valid_seg_cnt,
desc->num_aux_minidump_ids);
- ret = do_minidump(ramdump_dev, ramdump_segs, ss_valid_seg_cnt);
+ if (desc->minidump_as_elf32)
+ ret = do_elf_ramdump(ramdump_dev, ramdump_segs,
+ ss_valid_seg_cnt);
+ else
+ ret = do_minidump(ramdump_dev, ramdump_segs, ss_valid_seg_cnt);
if (ret)
pil_err(desc, "%s: Minidump collection failed for subsys %s rc:%d\n",
__func__, desc->name, ret);
@@ -1593,6 +1597,9 @@ int pil_desc_init(struct pil_desc *desc)
if (!desc->unmap_fw_mem)
desc->unmap_fw_mem = unmap_fw_mem;
+ desc->minidump_as_elf32 = of_property_read_bool(
+ ofnode, "qcom,minidump-as-elf32");
+
return 0;
err_parse_dt:
ida_simple_remove(&pil_ida, priv->id);
diff --git a/drivers/soc/qcom/peripheral-loader.h b/drivers/soc/qcom/peripheral-loader.h
index 6abe985..a9bde99 100644
--- a/drivers/soc/qcom/peripheral-loader.h
+++ b/drivers/soc/qcom/peripheral-loader.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2010-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -69,6 +69,7 @@ struct pil_desc {
int minidump_id;
int *aux_minidump_ids;
int num_aux_minidump_ids;
+ bool minidump_as_elf32;
};
/**