Merge "msm: ipa: header change for SMMU wlan VA mapping"

This commit is contained in:
Linux Build Service Account 2016-08-26 14:48:48 -07:00 committed by Gerrit - the friendly Code Review server
commit 0cf5c85f8a
2 changed files with 32 additions and 19 deletions

View file

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

View file

@ -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;
};
/**