mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 00:24:41 -04:00
msm: ipa3: configure the HOLB timer value to zero in SSR scenario
configure the HOLB timer value to zero in SSR scenario to avoid USB stall issue. Change-Id: I23f91c4a2bff2cb3b330d4354e81acc9460d1936 Signed-off-by: Ashok Vuyyuru <avuyyuru@codeaurora.org>
This commit is contained in:
parent
c6e5a9590d
commit
bed82b09f6
3 changed files with 12 additions and 4 deletions
|
|
@ -4032,12 +4032,17 @@ void ipa3_q6_pre_shutdown_cleanup(void)
|
|||
ipa3_q6_pipe_delay(true);
|
||||
|
||||
ipa3_q6_avoid_holb();
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_11)
|
||||
ipa3_set_reset_client_cons_pipe_sus_holb(true, 0,
|
||||
IPA_CLIENT_USB_CONS);
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0) {
|
||||
prod = true;
|
||||
ipa3_halt_q6_gsi_channels(prod);
|
||||
}
|
||||
if (ipa3_ctx->ipa_config_is_mhi)
|
||||
ipa3_set_reset_client_cons_pipe_sus_holb(true,
|
||||
ipa3_set_reset_client_cons_pipe_sus_holb(true, 0,
|
||||
IPA_CLIENT_MHI_CONS);
|
||||
if (ipa3_q6_clean_q6_tables()) {
|
||||
IPAERR("Failed to clean Q6 tables\n");
|
||||
|
|
@ -4095,6 +4100,9 @@ void ipa3_q6_post_shutdown_cleanup(void)
|
|||
/* Handle the issue where SUSPEND was removed for some reason */
|
||||
ipa3_q6_avoid_holb();
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_11)
|
||||
ipa3_set_reset_client_cons_pipe_sus_holb(true,
|
||||
IPA_HOLB_TMR_VAL_4_5, IPA_CLIENT_USB_CONS);
|
||||
/* halt both prod and cons channels starting at IPAv4 */
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0) {
|
||||
IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
|
||||
|
|
|
|||
|
|
@ -1449,7 +1449,7 @@ int ipa3_start_stop_client_prod_gsi_chnl(enum ipa_client_type client,
|
|||
client_lock_unlock_cb(client, false);
|
||||
return result;
|
||||
}
|
||||
int ipa3_set_reset_client_cons_pipe_sus_holb(bool set_reset,
|
||||
int ipa3_set_reset_client_cons_pipe_sus_holb(bool set_reset, u32 tmr_val,
|
||||
enum ipa_client_type client)
|
||||
{
|
||||
int pipe_idx;
|
||||
|
|
@ -1461,7 +1461,7 @@ int ipa3_set_reset_client_cons_pipe_sus_holb(bool set_reset,
|
|||
memset(&ep_holb, 0, sizeof(ep_holb));
|
||||
|
||||
ep_suspend.ipa_ep_suspend = set_reset;
|
||||
ep_holb.tmr_val = 0;
|
||||
ep_holb.tmr_val = tmr_val;
|
||||
ep_holb.en = set_reset;
|
||||
|
||||
if (IPA_CLIENT_IS_PROD(client)) {
|
||||
|
|
|
|||
|
|
@ -2492,7 +2492,7 @@ int ipa3_start_stop_client_prod_gsi_chnl(enum ipa_client_type client,
|
|||
void ipa3_client_prod_post_shutdown_cleanup(void);
|
||||
|
||||
|
||||
int ipa3_set_reset_client_cons_pipe_sus_holb(bool set_reset,
|
||||
int ipa3_set_reset_client_cons_pipe_sus_holb(bool set_reset, u32 tmr_val,
|
||||
enum ipa_client_type client);
|
||||
|
||||
int ipa3_xdci_suspend(u32 ul_clnt_hdl, u32 dl_clnt_hdl,
|
||||
|
|
|
|||
Loading…
Reference in a new issue