Merge "msm: ipa3: set aggr hard byte limit for IPA HW <= 4.2"
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa.c b/drivers/platform/msm/ipa/ipa_v3/ipa.c
index 3996e1d..e9d85b4 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa.c
@@ -11185,6 +11185,7 @@
IPADBG("ipa q6 smem size = %u\n", ipa_smem_size);
}
+ ipa3_ctx->ipa_smem_size = ipa_smem_size;
if (ipa3_ctx->platform_type != IPA_PLAT_TYPE_APQ) {
/* map SMEM memory for IPA table accesses */
ret = qcom_smem_alloc(SMEM_MODEM,
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_i.h b/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
index d113b84..6afc5a0 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_i.h
@@ -2584,6 +2584,7 @@
struct list_head minidump_list_head;
phys_addr_t per_stats_smem_pa;
void *per_stats_smem_va;
+ u32 ipa_smem_size;
};
struct ipa3_plat_drv_res {
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c b/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c
index d70d2e5..49735eb 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c
@@ -718,6 +718,10 @@
req.hw_filter_stats_info.hw_filter_stats_size = IPA_Q6_FNR_STATS_SIZE;
req.hw_filter_stats_info.hw_filter_stats_start_index = IPA_Q6_FNR_START_IDX;
req.hw_filter_stats_info.hw_filter_stats_end_index = IPA_Q6_FNR_END_IDX;
+
+ req.smem_info_valid = true;
+ req.smem_info.size = ipa3_ctx->ipa_smem_size;
+
IPAWANDBG("hw_flt stats: hw_filter_start_address = %u", req.hw_filter_stats_info.hw_filter_stats_start_addr);
IPAWANDBG("hw_flt stats: hw_filter_stats_size = %u", req.hw_filter_stats_info.hw_filter_stats_size);
IPAWANDBG("hw_flt stats: hw_filter_stats_start_index = %u", req.hw_filter_stats_info.hw_filter_stats_start_index);
@@ -758,6 +762,8 @@
req.v4_hash_filter_tbl_start_addr);
IPAWANDBG("v6_hash_filter_tbl_start_addr %d\n",
req.v6_hash_filter_tbl_start_addr);
+ IPAWANDBG("ipa_smem_info.size %d\n",
+ req.smem_info.size);
req_desc.max_msg_len = QMI_IPA_INIT_MODEM_DRIVER_REQ_MAX_MSG_LEN_V01;
req_desc.msg_id = QMI_IPA_INIT_MODEM_DRIVER_REQ_V01;
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
index 8aef35c..5a93158 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
@@ -7533,15 +7533,17 @@
}
/* Configure COAL_MASTER_CFG */
- memset(&master_cfg, 0, sizeof(master_cfg));
- ipahal_read_reg_fields(IPA_COAL_MASTER_CFG, &master_cfg);
- master_cfg.coal_ipv4_id_ignore = ipa3_ctx->coal_ipv4_id_ignore;
- ipahal_write_reg_fields(IPA_COAL_MASTER_CFG, &master_cfg);
+ if(ipa3_ctx->ipa_hw_type >= IPA_HW_v5_5) {
+ memset(&master_cfg, 0, sizeof(master_cfg));
+ ipahal_read_reg_fields(IPA_COAL_MASTER_CFG, &master_cfg);
+ master_cfg.coal_ipv4_id_ignore = ipa3_ctx->coal_ipv4_id_ignore;
+ ipahal_write_reg_fields(IPA_COAL_MASTER_CFG, &master_cfg);
- IPADBG(
- ": coal-ipv4-id-ignore = %s\n",
- master_cfg.coal_ipv4_id_ignore ?
- "True" : "False");
+ IPADBG(
+ ": coal-ipv4-id-ignore = %s\n",
+ master_cfg.coal_ipv4_id_ignore ?
+ "True" : "False");
+ }
ipa_comp_cfg();