Merge "msm: ipa: header change for SMMU wlan VA mapping"
This commit is contained in:
commit
0cf5c85f8a
2 changed files with 32 additions and 19 deletions
|
@ -811,16 +811,12 @@ int ipa3_connect_wdi_pipe(struct ipa_wdi_in_params *in,
|
|||
in->u.ul.rdy_ring_size);
|
||||
IPADBG("rx_ring_rp_pa=0x%pa\n",
|
||||
&in->u.ul.rdy_ring_rp_pa);
|
||||
IPADBG("rdy_ring_rp value =%d\n",
|
||||
*in->u.ul.rdy_ring_rp_va);
|
||||
IPADBG("rx_comp_ring_base_pa=0x%pa\n",
|
||||
&in->u.ul.rdy_comp_ring_base_pa);
|
||||
IPADBG("rx_comp_ring_size=%d\n",
|
||||
in->u.ul.rdy_comp_ring_size);
|
||||
IPADBG("rx_comp_ring_wp_pa=0x%pa\n",
|
||||
&in->u.ul.rdy_comp_ring_wp_pa);
|
||||
IPADBG("rx_comp_ring_wp value=%d\n",
|
||||
*in->u.ul.rdy_comp_ring_wp_va);
|
||||
ipa3_ctx->uc_ctx.rdy_ring_base_pa =
|
||||
in->u.ul.rdy_ring_base_pa;
|
||||
ipa3_ctx->uc_ctx.rdy_ring_rp_pa =
|
||||
|
@ -833,21 +829,34 @@ int ipa3_connect_wdi_pipe(struct ipa_wdi_in_params *in,
|
|||
in->u.ul.rdy_comp_ring_wp_pa;
|
||||
ipa3_ctx->uc_ctx.rdy_comp_ring_size =
|
||||
in->u.ul.rdy_comp_ring_size;
|
||||
ipa3_ctx->uc_ctx.rdy_ring_rp_va =
|
||||
in->u.ul.rdy_ring_rp_va;
|
||||
ipa3_ctx->uc_ctx.rdy_comp_ring_wp_va =
|
||||
in->u.ul.rdy_comp_ring_wp_va;
|
||||
|
||||
/* check if the VA is empty */
|
||||
if (!in->u.ul.rdy_ring_rp_va && ipa3_ctx->ipa_wdi2) {
|
||||
IPAERR("rdy_ring_rp_va is empty, wdi2.0(%d)\n",
|
||||
ipa3_ctx->ipa_wdi2);
|
||||
goto dma_alloc_fail;
|
||||
}
|
||||
if (!in->u.ul.rdy_comp_ring_wp_va &&
|
||||
ipa3_ctx->ipa_wdi2) {
|
||||
IPAERR("comp_ring_wp_va is empty, wdi2.0(%d)\n",
|
||||
ipa3_ctx->ipa_wdi2);
|
||||
goto dma_alloc_fail;
|
||||
if (ipa3_ctx->ipa_wdi2) {
|
||||
if (in->smmu_enabled) {
|
||||
if (!in->u.ul_smmu.rdy_ring_rp_va ||
|
||||
!in->u.ul_smmu.rdy_comp_ring_wp_va)
|
||||
goto dma_alloc_fail;
|
||||
} else {
|
||||
if (!in->u.ul.rdy_ring_rp_va ||
|
||||
!in->u.ul.rdy_comp_ring_wp_va)
|
||||
goto dma_alloc_fail;
|
||||
}
|
||||
IPADBG("rdy_ring_rp value =%d\n",
|
||||
in->smmu_enabled ?
|
||||
*in->u.ul_smmu.rdy_ring_rp_va :
|
||||
*in->u.ul.rdy_ring_rp_va);
|
||||
IPADBG("rx_comp_ring_wp value=%d\n",
|
||||
in->smmu_enabled ?
|
||||
*in->u.ul_smmu.rdy_comp_ring_wp_va :
|
||||
*in->u.ul.rdy_comp_ring_wp_va);
|
||||
ipa3_ctx->uc_ctx.rdy_ring_rp_va =
|
||||
in->smmu_enabled ?
|
||||
in->u.ul_smmu.rdy_ring_rp_va :
|
||||
in->u.ul.rdy_ring_rp_va;
|
||||
ipa3_ctx->uc_ctx.rdy_comp_ring_wp_va =
|
||||
in->smmu_enabled ?
|
||||
in->u.ul_smmu.rdy_comp_ring_wp_va :
|
||||
in->u.ul.rdy_comp_ring_wp_va;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -933,7 +942,9 @@ int ipa3_connect_wdi_pipe(struct ipa_wdi_in_params *in,
|
|||
tx_2->ce_ring_doorbell_pa_hi,
|
||||
tx_2->ce_ring_doorbell_pa);
|
||||
|
||||
tx_2->num_tx_buffers = in->u.dl.num_tx_buffers;
|
||||
tx_2->num_tx_buffers = in->smmu_enabled ?
|
||||
in->u.dl_smmu.num_tx_buffers :
|
||||
in->u.dl.num_tx_buffers;
|
||||
tx_2->ipa_pipe_number = ipa_ep_idx;
|
||||
} else {
|
||||
tx = (struct IpaHwWdiTxSetUpCmdData_t *)cmd.base;
|
||||
|
|
|
@ -949,6 +949,8 @@ struct ipa_wdi_ul_params_smmu {
|
|||
struct sg_table rdy_comp_ring;
|
||||
phys_addr_t rdy_comp_ring_wp_pa;
|
||||
u32 rdy_comp_ring_size;
|
||||
u32 *rdy_ring_rp_va;
|
||||
u32 *rdy_comp_ring_wp_va;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue