diff options
| -rw-r--r-- | arch/arm/boot/dts/qcom/Makefile | 3 | ||||
| -rw-r--r-- | arch/arm/boot/dts/qcom/msm8998.dtsi | 1 | ||||
| -rw-r--r-- | arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-ivi-lv-mt.dts | 107 | ||||
| -rw-r--r-- | arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-usb.dtsi | 22 | ||||
| -rw-r--r-- | drivers/soc/qcom/qdss_bridge.c | 10 | ||||
| -rw-r--r-- | drivers/usb/dwc3/dwc3-msm.c | 7 |
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; |
