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:
Ashok Vuyyuru 2021-04-05 19:38:58 +05:30 • committed by Gerrit - the friendly Code Review server
commit bed82b09f6
3 changed files with 12 additions and 4 deletions

View file

@ -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();

View file

@ -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)) {

View file

@ -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,