summaryrefslogtreecommitdiff
path: root/drivers/platform/msm
diff options
context:
space:
mode:
authorGhanim Fodi <gfodi@codeaurora.org>2016-03-19 22:49:04 +0200
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-25 16:04:21 -0700
commit713db2df8b5535b0ff74fa5bf7fbbfe78a97dc3b (patch)
tree0d11f88d5ee6360bcaca0b9e29900d8499c76dea /drivers/platform/msm
parent69905ac699350075f0f5d96e86d7c1bc82e93893 (diff)
msm: ipa3: fix the qmap_id config in IPA-HW
IPA-driver needs to config ep metadata with embedded call QMAP_ID which IPACM will pass. The fix is have right qmap_id configure in ep metadata. CRs-Fixed: 991570 Change-Id: I0a9549a5c30f53c75fd9ff961ae5dcdc0741c866 Signed-off-by: Skylar Chang <chiaweic@codeaurora.org> Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
Diffstat (limited to 'drivers/platform/msm')
-rw-r--r--drivers/platform/msm/ipa/ipa_v3/ipa_utils.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
index 75fe6df26078..f1ec3069d365 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
@@ -3362,6 +3362,7 @@ int ipa3_cfg_ep_deaggr(u32 clnt_hdl,
int ipa3_cfg_ep_metadata(u32 clnt_hdl, const struct ipa_ep_cfg_metadata *ep_md)
{
u32 qmap_id = 0;
+ struct ipa_ep_cfg_metadata ep_md_reg_wrt;
if (clnt_hdl >= ipa3_ctx->ipa_num_pipes ||
ipa3_ctx->ep[clnt_hdl].valid == 0 || ep_md == NULL) {
@@ -3377,12 +3378,14 @@ int ipa3_cfg_ep_metadata(u32 clnt_hdl, const struct ipa_ep_cfg_metadata *ep_md)
IPA_ACTIVE_CLIENTS_INC_EP(ipa3_get_client_mapping(clnt_hdl));
+ ep_md_reg_wrt = *ep_md;
qmap_id = (ep_md->qmap_id <<
- IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_SHFT) &&
+ IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_SHFT) &
IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_BMASK;
+ ep_md_reg_wrt.qmap_id = qmap_id;
ipahal_write_reg_n_fields(IPA_ENDP_INIT_HDR_METADATA_n, clnt_hdl,
- ep_md);
+ &ep_md_reg_wrt);
ipa3_ctx->ep[clnt_hdl].cfg.hdr.hdr_metadata_reg_valid = 1;
ipahal_write_reg_n_fields(IPA_ENDP_INIT_HDR_n, clnt_hdl,
&ipa3_ctx->ep[clnt_hdl].cfg.hdr);