summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/boot/dts/qcom/Makefile3
-rw-r--r--arch/arm/boot/dts/qcom/msm8998.dtsi1
-rw-r--r--arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts107
-rw-r--r--arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-usb.dtsi22
-rw-r--r--drivers/soc/qcom/qdss_bridge.c10
-rw-r--r--drivers/usb/dwc3/dwc3-msm.c7
6 files changed, 131 insertions, 19 deletions
diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile
index 5c61dba03f9f..9a7be59ef113 100644
--- a/arch/arm/boot/dts/qcom/Makefile
+++ b/arch/arm/boot/dts/qcom/Makefile
@@ -119,7 +119,8 @@ dtb-$(CONFIG_ARCH_MSM8996) += msm8996-v2-pmi8994-cdp.dtb \
dtb-$(CONFIG_MSM_GVM_QUIN) += vplatform-lfv-msm8996-telematics.dtb \
vplatform-lfv-msm8996-ivi.dtb \
vplatform-lfv-msm8996-baseline.dtb \
- vplatform-lfv-msm8996-ivi-la.dtb
+ vplatform-lfv-msm8996-ivi-la.dtb \
+ vplatform-lfv-msm8996-ivi-lv-mt.dtb
ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y)
dtbo-$(CONFIG_ARCH_MSM8998) += \
diff --git a/arch/arm/boot/dts/qcom/msm8998.dtsi b/arch/arm/boot/dts/qcom/msm8998.dtsi
index 132f3e7ce332..6990099978c6 100644
--- a/arch/arm/boot/dts/qcom/msm8998.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8998.dtsi
@@ -2091,6 +2091,7 @@
compatible = "qcom,memshare-peripheral";
qcom,peripheral-size = <0x0>;
qcom,client-id = <1>;
+ qcom,allocate-boot-time;
label = "modem";
};
};
diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts
new file mode 100644
index 000000000000..fd04dcf41c73
--- /dev/null
+++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts
@@ -0,0 +1,107 @@
+/* Copyright (c) 2018, 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
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+
+#include "skeleton64.dtsi"
+#include "vplatform-lfv-msm8996.dtsi"
+#include <dt-bindings/clock/msm-clocks-8996.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+ model = "Qualcomm Technologies, Inc. MSM 8996";
+ compatible = "qcom,msm8996";
+ qcom,msm-id = <246 0x0>;
+};
+
+&soc {
+ qcom,msm-audio-ion-vm {
+ compatible = "qcom,msm-audio-ion-vm";
+ qcom,smmu-enabled;
+ };
+
+ qcom,hab {
+ compatible = "qcom,hab";
+ vmid = <3>;
+
+ mmid100: mmid-grp@100 {
+ grp-start-id = <100>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+
+ mmid200: mmid-grp@200 {
+ grp-start-id = <200>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+
+ mmid300: mmid-grp@300 {
+ grp-start-id = <300>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+
+ mmid400: mmid-grp@400 {
+ grp-start-id = <400>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+
+ mmid500: mmid-grp@500 {
+ grp-start-id = <500>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+
+ mmid600: mmid-grp@600 {
+ grp-start-id = <600>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+
+ mmid700: mmid-grp@700 {
+ grp-start-id = <700>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+
+ mmid800: mmid-grp@800 {
+ grp-start-id = <800>;
+ role = "fe";
+ remote-vmids = <0>;
+ };
+ };
+};
+
+&blsp1_uart2 {
+ status = "okay";
+};
+
+&reserved_memory {
+ pmem_shared: pmem_shared_region@d0000000 {
+ reg = <0 0xd0000000 0 0x20000000>;
+ label = "pmem_shared_mem";
+ };
+
+ ion_system: ion_system_region@100000000 {
+ reg = <0x1 0x60000000 0 0x10000000>;
+ label = "ion_system_mem";
+ };
+};
+
+#include "vplatform-lfv-msm8996-usb.dtsi"
+
+&usb3 {
+ status = "okay";
+ qcom,no-wakeup-src-in-hostmode;
+};
diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-usb.dtsi b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-usb.dtsi
index e50447c5e8e7..764a79ec4a73 100644
--- a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-usb.dtsi
+++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-usb.dtsi
@@ -73,13 +73,13 @@
qcom,dwc-usb3-msm-tx-fifo-size = <21288>;
- clocks = <&clock_gcc clk_gcc_usb30_master_clk>,
- <&clock_gcc clk_gcc_sys_noc_usb3_axi_clk>,
- <&clock_gcc clk_gcc_aggre2_usb3_axi_clk>,
- <&clock_gcc clk_gcc_usb30_mock_utmi_clk>,
- <&clock_gcc clk_gcc_usb30_sleep_clk>,
+ clocks = <&clock_virt clk_gcc_usb30_master_clk>,
+ <&clock_virt clk_gcc_sys_noc_usb3_axi_clk>,
+ <&clock_virt clk_gcc_aggre2_usb3_axi_clk>,
+ <&clock_virt clk_gcc_usb30_mock_utmi_clk>,
+ <&clock_virt clk_gcc_usb30_sleep_clk>,
<&clock_gcc clk_cxo_dwc3_clk>,
- <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>;
+ <&clock_virt clk_gcc_usb_phy_cfg_ahb2phy_clk>;
clock-names = "core_clk", "iface_clk", "bus_aggr_clk",
"utmi_clk","sleep_clk", "xo", "cfg_ahb_clk";
@@ -237,7 +237,7 @@
qcom,phy-clk-scheme = "cmos";
qcom,major-rev = <1>;
- clocks = <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
+ clocks = <&clock_virt clk_gcc_usb_phy_cfg_ahb2phy_clk>,
<&clock_gcc clk_ln_bb_clk>;
clock-names = "cfg_ahb_clk", "ref_clk_src";
@@ -356,11 +356,11 @@
0x600 /* USB3_PHY_SW_RESET */
0x608>; /* USB3_PHY_START */
- clocks = <&clock_gcc clk_gcc_usb3_phy_aux_clk>,
- <&clock_gcc clk_gcc_usb3_phy_pipe_clk>,
- <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>,
+ clocks = <&clock_virt clk_gcc_usb3_phy_aux_clk>,
+ <&clock_virt clk_gcc_usb3_phy_pipe_clk>,
+ <&clock_virt clk_gcc_usb_phy_cfg_ahb2phy_clk>,
<&clock_gcc clk_ln_bb_clk>,
- <&clock_gcc clk_gcc_usb3_clkref_clk>;
+ <&clock_virt clk_gcc_usb3_clkref_clk>;
clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk",
"ref_clk_src", "ref_clk";
diff --git a/drivers/soc/qcom/qdss_bridge.c b/drivers/soc/qcom/qdss_bridge.c
index 443e9e384ea2..087f01154924 100644
--- a/drivers/soc/qcom/qdss_bridge.c
+++ b/drivers/soc/qcom/qdss_bridge.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2017-2018, 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
@@ -352,6 +352,14 @@ static void mhi_notifier(struct mhi_cb_info *cb_info)
queue_work(drvdata->mhi_wq, &drvdata->close_work);
break;
+ case MHI_CB_SYS_ERROR:
+ case MHI_CB_MHI_SHUTDOWN:
+ drvdata->opened = 0;
+
+ flush_workqueue(drvdata->mhi_wq);
+ qdss_destroy_buf_tbl(drvdata);
+ break;
+
default:
pr_err_ratelimited("MHI returned invalid cb reason 0x%x\n",
cb_info->cb_reason);
diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c
index 9c3edae35422..2cd600a58fd7 100644
--- a/drivers/usb/dwc3/dwc3-msm.c
+++ b/drivers/usb/dwc3/dwc3-msm.c
@@ -1996,7 +1996,6 @@ static void msm_dwc3_perf_vote_update(struct dwc3_msm *mdwc,
static int dwc3_msm_suspend(struct dwc3_msm *mdwc)
{
int ret, i;
- bool can_suspend_ssphy;
struct dwc3 *dwc = platform_get_drvdata(mdwc->dwc3);
dbg_event(0xFF, "Ctl Sus", atomic_read(&dwc->in_lpm));
@@ -2065,10 +2064,6 @@ static int dwc3_msm_suspend(struct dwc3_msm *mdwc)
return ret;
}
- /* Initialize variables here */
- can_suspend_ssphy = !(mdwc->in_host_mode &&
- dwc3_msm_is_host_superspeed(mdwc));
-
/* Disable core irq */
if (dwc->irq)
disable_irq(dwc->irq);
@@ -2084,7 +2079,7 @@ static int dwc3_msm_suspend(struct dwc3_msm *mdwc)
usb_phy_set_suspend(mdwc->hs_phy, 1);
/* Suspend SS PHY */
- if (dwc->maximum_speed == USB_SPEED_SUPER && can_suspend_ssphy) {
+ if (dwc->maximum_speed == USB_SPEED_SUPER) {
/* indicate phy about SS mode */
if (dwc3_msm_is_superspeed(mdwc))
mdwc->ss_phy->flags |= DEVICE_IN_SS_MODE;