msm: ipa3: Update holb config on WLAN & USB CONS ep.

After configuring WLAN CONS ep or USB ep there is a chance
of IPA hardware stall, if WLAN ep or USB ep is not pulling
data fast enough. So, set holb on WLAN CONS ep and USB CONS
ep to avoid stall.

Change-Id: I370165ce197181eaac999df2d8abea517c9e9bd4
Signed-off-by: Piyush Dhyani <pdhyani@codeaurora.org>
This commit is contained in:
Piyush Dhyani 2021-03-16 11:44:06 +05:30
commit 52eb4e3564

View file

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
*/
#include <asm/barrier.h>
@ -62,11 +62,19 @@ int ipa3_enable_data_path(u32 clnt_hdl)
* on other end from IPA hw.
*/
if ((ep->client == IPA_CLIENT_USB_DPL_CONS) ||
(ep->client == IPA_CLIENT_MHI_DPL_CONS))
(ep->client == IPA_CLIENT_MHI_DPL_CONS)) {
holb_cfg.tmr_val = 0;
holb_cfg.en = IPA_HOLB_TMR_EN;
else
} else if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_11 &&
(ep->client == IPA_CLIENT_WLAN1_CONS ||
ep->client == IPA_CLIENT_USB_CONS)) {
holb_cfg.en = IPA_HOLB_TMR_EN;
holb_cfg.tmr_val = IPA_HOLB_TMR_VAL_4_5;
}
else {
holb_cfg.en = IPA_HOLB_TMR_DIS;
holb_cfg.tmr_val = 0;
holb_cfg.tmr_val = 0;
}
res = ipa3_cfg_ep_holb(clnt_hdl, &holb_cfg);
}
@ -1560,8 +1568,6 @@ int ipa3_xdci_disconnect(u32 clnt_hdl, bool should_force_clear, u32 qmi_req_id)
if (!ep->keep_ipa_awake)
IPA_ACTIVE_CLIENTS_INC_EP(ipa3_get_client_mapping(clnt_hdl));
ipa3_disable_data_path(clnt_hdl);
if (!IPA_CLIENT_IS_CONS(ep->client)) {
IPADBG("Stopping PROD channel - hdl=%d clnt=%d\n",
clnt_hdl, ep->client);
@ -1585,6 +1591,7 @@ int ipa3_xdci_disconnect(u32 clnt_hdl, bool should_force_clear, u32 qmi_req_id)
goto stop_chan_fail;
}
}
ipa3_disable_data_path(clnt_hdl);
IPA_ACTIVE_CLIENTS_DEC_EP(ipa3_get_client_mapping(clnt_hdl));
IPADBG("exit\n");