msm: ipa3: Add change to not reset HOLB timer

For Q6 endpoints add change to not reset the HOLB timer
value to zero instead of default value. Add change to
enable HOLB twice for IPA 4.x targets.

Change-Id: Ic9596e711b037d24ae25835cb6dd193ec040d723
Signed-off-by: Praveen Kurapati <pkurapat@codeaurora.org>
Signed-off-by: Jagadeesh Ponduru <jponduru@codeaurora.org>
This commit is contained in:
Jagadeesh Ponduru
2021-09-30 17:17:45 +05:30
parent 7f721b5ebb
commit 42ee3ab01c
3 changed files with 14 additions and 9 deletions

View File

@@ -4329,16 +4329,19 @@ static void ipa3_q6_avoid_holb(void)
* setting HOLB on Q6 pipes, and from APPS perspective * setting HOLB on Q6 pipes, and from APPS perspective
* they are not valid, therefore, the above function * they are not valid, therefore, the above function
* will fail. * will fail.
* Also don't reset the HOLB timer to 0 for Q6 pipes.
*/ */
ipahal_write_reg_n_fields(
IPA_ENDP_INIT_HOL_BLOCK_TIMER_n,
ep_idx, &ep_holb);
ipahal_write_reg_n_fields( ipahal_write_reg_n_fields(
IPA_ENDP_INIT_HOL_BLOCK_EN_n, IPA_ENDP_INIT_HOL_BLOCK_EN_n,
ep_idx, &ep_holb); ep_idx, &ep_holb);
/* IPA4.5 issue requires HOLB_EN to be written twice */ /* For targets > IPA_4.0 issue requires HOLB_EN to
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_5) * be written twice.
*/
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0)
ipahal_write_reg_n_fields( ipahal_write_reg_n_fields(
IPA_ENDP_INIT_HOL_BLOCK_EN_n, IPA_ENDP_INIT_HOL_BLOCK_EN_n,
ep_idx, &ep_holb); ep_idx, &ep_holb);

View File

@@ -1481,8 +1481,10 @@ int ipa3_set_reset_client_cons_pipe_sus_holb(bool set_reset,
IPA_ENDP_INIT_HOL_BLOCK_EN_n, IPA_ENDP_INIT_HOL_BLOCK_EN_n,
pipe_idx, &ep_holb); pipe_idx, &ep_holb);
/* IPA4.5 issue requires HOLB_EN to be written twice */ /* For targets > IPA_4.0 issue requires HOLB_EN to be
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_5) * written twice.
*/
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0)
ipahal_write_reg_n_fields( ipahal_write_reg_n_fields(
IPA_ENDP_INIT_HOL_BLOCK_EN_n, IPA_ENDP_INIT_HOL_BLOCK_EN_n,
pipe_idx, &ep_holb); pipe_idx, &ep_holb);

View File

@@ -8381,8 +8381,8 @@ int ipa3_cfg_ep_holb(u32 clnt_hdl, const struct ipa_ep_cfg_holb *ep_holb)
ipahal_write_reg_n_fields(IPA_ENDP_INIT_HOL_BLOCK_EN_n, clnt_hdl, ipahal_write_reg_n_fields(IPA_ENDP_INIT_HOL_BLOCK_EN_n, clnt_hdl,
ep_holb); ep_holb);
/* IPA4.5 issue requires HOLB_EN to be written twice */ /* For targets > IPA_4.0 issue requires HOLB_EN to be written twice */
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_5) if (ipa3_ctx->ipa_hw_type >= IPA_HW_v4_0)
ipahal_write_reg_n_fields(IPA_ENDP_INIT_HOL_BLOCK_EN_n, ipahal_write_reg_n_fields(IPA_ENDP_INIT_HOL_BLOCK_EN_n,
clnt_hdl, ep_holb); clnt_hdl, ep_holb);