msm: ipa3: Remove suspend bit for ep consumer
During usb client disconnect, ep suspend bit was set on usb consumer pipe which was not removing during usb client reconnect and causing stall on the pipe. Now Removing ep suspend during client disconnect. Change-Id: I5fbb646ab9eed8cc7d7def7f318a8eab144ad2ac Signed-off-by: Piyush Dhyani <pdhyani@codeaurora.org>
Bu işleme şunda yer alıyor:
@@ -1469,6 +1469,7 @@ EXPORT_SYMBOL(ipa3_xdci_ep_delay_rm);
|
||||
int ipa3_xdci_disconnect(u32 clnt_hdl, bool should_force_clear, u32 qmi_req_id)
|
||||
{
|
||||
struct ipa3_ep_context *ep;
|
||||
struct ipa_ep_cfg_ctrl ep_cfg_ctrl;
|
||||
int result;
|
||||
u32 source_pipe_bitmask = 0;
|
||||
u32 source_pipe_reg_idx = 0;
|
||||
@@ -1509,6 +1510,12 @@ int ipa3_xdci_disconnect(u32 clnt_hdl, bool should_force_clear, u32 qmi_req_id)
|
||||
result);
|
||||
goto stop_chan_fail;
|
||||
}
|
||||
if (ipa3_ctx->ipa_hw_type < IPA_HW_v4_0) {
|
||||
/* Unsuspend the pipe */
|
||||
memset(&ep_cfg_ctrl, 0, sizeof(struct ipa_ep_cfg_ctrl));
|
||||
ep_cfg_ctrl.ipa_ep_suspend = false;
|
||||
ipa3_cfg_ep_ctrl(clnt_hdl, &ep_cfg_ctrl);
|
||||
}
|
||||
}
|
||||
IPA_ACTIVE_CLIENTS_DEC_EP(ipa3_get_client_mapping(clnt_hdl));
|
||||
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle