一、代码修改
diff --git a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi
index 8de5830..94a517c 100755
--- a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi
+++ b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi
@@ -209,3 +209,7 @@
&wcd_rst_gpio {
status = "disabled";
};
+
+&usb3 {
+ qcom,detect-dpdm-floating;
+};
diff --git a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi
index 12b9502..676b124 100755
--- a/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi
+++ b/kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi
@@ -174,6 +174,7 @@
qcom,chg-led-support;
qcom,external-typec;
qcom,typec-psy-name = "typec";
+ qcom,override-usb-current;
qcom,thermal-mitigation = <3000 2500 2000 1500 1000 500 0>;
status = "okay";
};
diff --git a/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c b/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c
index d0520b9..67c5f94 100755
--- a/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c
+++ b/kernel/msm-3.18/drivers/usb/dwc3/dwc3-msm.c
@@ -3471,6 +3471,7 @@ static void dwc3_check_float_lines(struct dwc3_msm *mdwc)
mdwc->chg_type = DWC3_PROPRIETARY_CHARGER;
mdwc->otg_state = OTG_STATE_B_IDLE;
pm_runtime_put_sync(mdwc->dev);
+ dwc3_msm_gadget_vbus_draw(mdwc, 2000);
dbg_event(0xFF, "FLT psync",
atomic_read(&mdwc->dev->power.usage_count));