Explorar o código

msm: ipa3: Remove ep suspend during usb resume.

With unified API changes, on usb channel during
resume ep suspend bit was not cleared which was set
during suspend channel. Now Removing ep suspend bit
while resuming channel.

Change-Id: Ib165299ac67d05139c7a964ac3464663d61260a1
Signed-off-by: Piyush Dhyani <[email protected]>
Piyush Dhyani %!s(int64=4) %!d(string=hai) anos
pai
achega
5cda42ee08
Modificáronse 1 ficheiros con 8 adicións e 0 borrados
  1. 8 0
      drivers/platform/msm/ipa/ipa_clients/ipa_usb.c

+ 8 - 0
drivers/platform/msm/ipa/ipa_clients/ipa_usb.c

@@ -2561,6 +2561,7 @@ static int ipa_usb_xdci_resume_internal(u32 ul_clnt_hdl, u32 dl_clnt_hdl,
 	enum ipa3_usb_state prev_state;
 	unsigned long flags;
 	enum ipa3_usb_transport_type ttype;
+	struct ipa_ep_cfg_ctrl ep_cfg_ctrl;
 
 	mutex_lock(&ipa3_usb_ctx->general_mutex);
 	IPA_USB_DBG_LOW("entry\n");
@@ -2605,6 +2606,13 @@ static int ipa_usb_xdci_resume_internal(u32 ul_clnt_hdl, u32 dl_clnt_hdl,
 	if (result)
 		goto activate_pm_fail;
 
+	if (ipa3_ctx->ipa_hw_type < IPA_HW_v4_0) {
+		/* Unsuspend the DL/DPL EP */
+		memset(&ep_cfg_ctrl, 0, sizeof(struct ipa_ep_cfg_ctrl));
+		ep_cfg_ctrl.ipa_ep_suspend = false;
+		ipa_cfg_ep_ctrl(dl_clnt_hdl, &ep_cfg_ctrl);
+	}
+
 	if (!IPA3_USB_IS_TTYPE_DPL(ttype)) {
 		/* Start UL channel */
 		result = ipa3_start_gsi_channel(ul_clnt_hdl);