msm: ipa3: fix usb statuses exception path
Set APPS_LAN_CONS pipe as the statuses exception pipe for usb-prod pipes. Change-Id: Ia0938da6ec2b2cbdbab4dddf177d2af76fad3aaa Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
This commit is contained in:
parent
7aa065cbc4
commit
1c17e7b10a
3 changed files with 4 additions and 54 deletions
|
@ -2233,7 +2233,6 @@ static int ipa3_q6_set_ex_path_to_apps(void)
|
||||||
struct ipahal_imm_cmd_register_write reg_write;
|
struct ipahal_imm_cmd_register_write reg_write;
|
||||||
struct ipahal_imm_cmd_pyld *cmd_pyld;
|
struct ipahal_imm_cmd_pyld *cmd_pyld;
|
||||||
int retval;
|
int retval;
|
||||||
struct ipahal_reg_valmask valmask;
|
|
||||||
|
|
||||||
desc = kcalloc(ipa3_ctx->ipa_num_pipes, sizeof(struct ipa3_desc),
|
desc = kcalloc(ipa3_ctx->ipa_num_pipes, sizeof(struct ipa3_desc),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
|
@ -2248,40 +2247,10 @@ static int ipa3_q6_set_ex_path_to_apps(void)
|
||||||
if (ep_idx == -1)
|
if (ep_idx == -1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ipa3_ctx->ep[ep_idx].valid &&
|
/* disable statuses for all modem controlled prod pipes */
|
||||||
ipa3_ctx->ep[ep_idx].skip_ep_cfg) {
|
if (IPA_CLIENT_IS_Q6_PROD(client_idx) ||
|
||||||
BUG_ON(num_descs >= ipa3_ctx->ipa_num_pipes);
|
(ipa3_ctx->ep[ep_idx].valid &&
|
||||||
|
ipa3_ctx->ep[ep_idx].skip_ep_cfg)) {
|
||||||
reg_write.skip_pipeline_clear = false;
|
|
||||||
reg_write.pipeline_clear_options =
|
|
||||||
IPAHAL_HPS_CLEAR;
|
|
||||||
reg_write.offset =
|
|
||||||
ipahal_get_reg_n_ofst(IPA_ENDP_STATUS_n,
|
|
||||||
ep_idx);
|
|
||||||
ipahal_get_status_ep_valmask(
|
|
||||||
ipa3_get_ep_mapping(IPA_CLIENT_APPS_LAN_CONS),
|
|
||||||
&valmask);
|
|
||||||
reg_write.value = valmask.val;
|
|
||||||
reg_write.value_mask = valmask.mask;
|
|
||||||
cmd_pyld = ipahal_construct_imm_cmd(
|
|
||||||
IPA_IMM_CMD_REGISTER_WRITE, ®_write, false);
|
|
||||||
if (!cmd_pyld) {
|
|
||||||
IPAERR("fail construct register_write cmd\n");
|
|
||||||
BUG();
|
|
||||||
}
|
|
||||||
|
|
||||||
desc[num_descs].opcode = ipahal_imm_cmd_get_opcode(
|
|
||||||
IPA_IMM_CMD_REGISTER_WRITE);
|
|
||||||
desc[num_descs].type = IPA_IMM_CMD_DESC;
|
|
||||||
desc[num_descs].callback = ipa3_destroy_imm;
|
|
||||||
desc[num_descs].user1 = cmd_pyld;
|
|
||||||
desc[num_descs].pyld = cmd_pyld->data;
|
|
||||||
desc[num_descs].len = cmd_pyld->len;
|
|
||||||
num_descs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* disable statuses for modem producers */
|
|
||||||
if (IPA_CLIENT_IS_Q6_PROD(client_idx)) {
|
|
||||||
ipa_assert_on(num_descs >= ipa3_ctx->ipa_num_pipes);
|
ipa_assert_on(num_descs >= ipa3_ctx->ipa_num_pipes);
|
||||||
|
|
||||||
reg_write.skip_pipeline_clear = false;
|
reg_write.skip_pipeline_clear = false;
|
||||||
|
|
|
@ -1591,20 +1591,3 @@ void ipahal_get_fltrt_hash_flush_valmask(
|
||||||
|
|
||||||
valmask->mask = valmask->val;
|
valmask->mask = valmask->val;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ipahal_get_status_ep_valmask(int pipe_num,
|
|
||||||
struct ipahal_reg_valmask *valmask)
|
|
||||||
{
|
|
||||||
if (!valmask) {
|
|
||||||
IPAHAL_ERR("Input error\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
valmask->val =
|
|
||||||
(pipe_num & IPA_ENDP_STATUS_n_STATUS_ENDP_BMSK) <<
|
|
||||||
IPA_ENDP_STATUS_n_STATUS_ENDP_SHFT;
|
|
||||||
|
|
||||||
valmask->mask =
|
|
||||||
IPA_ENDP_STATUS_n_STATUS_ENDP_BMSK <<
|
|
||||||
IPA_ENDP_STATUS_n_STATUS_ENDP_SHFT;
|
|
||||||
}
|
|
||||||
|
|
|
@ -458,8 +458,6 @@ void ipahal_get_aggr_force_close_valmask(int ep_idx,
|
||||||
void ipahal_get_fltrt_hash_flush_valmask(
|
void ipahal_get_fltrt_hash_flush_valmask(
|
||||||
struct ipahal_reg_fltrt_hash_flush *flush,
|
struct ipahal_reg_fltrt_hash_flush *flush,
|
||||||
struct ipahal_reg_valmask *valmask);
|
struct ipahal_reg_valmask *valmask);
|
||||||
void ipahal_get_status_ep_valmask(int pipe_num,
|
|
||||||
struct ipahal_reg_valmask *valmask);
|
|
||||||
|
|
||||||
#endif /* _IPAHAL_REG_H_ */
|
#endif /* _IPAHAL_REG_H_ */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue