msm: ipa: IPAv5 updates

Add IPAv5 HW definitions and update structures

Change-Id: I9991ba7be9dbbcb009b901f55c32e223d20b8c31
Acked-by: Nadav Levintov <nadavl@qti.qualcomm.com>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Signed-off-by: Sivan Reinstein <sivanr@codeaurora.org>
Signed-off-by: Ilia Lin <ilialin@codeaurora.org>
This commit is contained in:
Ilia Lin 2020-08-31 23:23:59 +03:00
commit 682c5acff2
2 changed files with 22 additions and 3 deletions

View file

@ -223,6 +223,10 @@ struct ipa_ep_cfg_hdr {
* @hdr_little_endian: 0-Big Endian, 1-Little Endian
* @hdr: The header structure. Used starting IPA4.5 where part of the info
* at the header structure is implemented via the EXT register at the H/W
* @hdr_bytes_to_remove_valid: 0-Ignore hdr_bytes_to_remove field, 1-Process
* hdr_bytes_to_remove field
* @hdr_bytes_to_remove: desired bytes to remove from top of the packet for
* partial L2 header retention
*/
struct ipa_ep_cfg_hdr_ext {
u32 hdr_pad_to_alignment;
@ -232,6 +236,8 @@ struct ipa_ep_cfg_hdr_ext {
bool hdr_total_len_or_pad_valid;
bool hdr_little_endian;
struct ipa_ep_cfg_hdr *hdr;
bool hdr_bytes_to_remove_valid;
u32 hdr_bytes_to_remove;
};
/**
@ -425,6 +431,7 @@ struct ipa_ep_cfg_cfg {
enum ipa_cs_offload cs_offload_en;
u8 cs_metadata_hdr_offset;
u8 gen_qmb_master_sel;
u8 tx_instance;
};
/**

View file

@ -252,7 +252,7 @@ enum ipa_client_type {
IPA_CLIENT_A5_WLAN_AMPDU_PROD = 12,
IPA_CLIENT_WLAN2_CONS = 13,
/* RESERVED PROD = 14, */
IPA_CLIENT_WLAN3_PROD = 14,
IPA_CLIENT_WLAN3_CONS = 15,
/* RESERVED PROD = 16, */
@ -390,9 +390,12 @@ enum ipa_client_type {
IPA_CLIENT_APPS_WAN_LOW_LAT_PROD = 104,
IPA_CLIENT_APPS_WAN_LOW_LAT_CONS = 105,
IPA_CLIENT_QDSS_PROD = 106,
IPA_CLIENT_MHI_QDSS_CONS = 107,
};
#define IPA_CLIENT_MAX (IPA_CLIENT_APPS_WAN_LOW_LAT_CONS + 1)
#define IPA_CLIENT_MAX (IPA_CLIENT_MHI_QDSS_CONS + 1)
#define IPA_CLIENT_WLAN2_PROD IPA_CLIENT_A5_WLAN_AMPDU_PROD
#define IPA_CLIENT_Q6_DL_NLO_DATA_PROD IPA_CLIENT_Q6_DL_NLO_DATA_PROD
@ -778,6 +781,7 @@ enum ipa_rm_resource_name {
* @IPA_HW_v4_7: IPA hardware version 4.7
* @IPA_HW_v4_9: IPA hardware version 4.9
* @IPA_HW_v4_11: IPA hardware version 4.11
* @IPA_HW_v5_0: IPA hardware version 5.0
*/
enum ipa_hw_type {
IPA_HW_None = 0,
@ -799,8 +803,9 @@ enum ipa_hw_type {
IPA_HW_v4_7 = 18,
IPA_HW_v4_9 = 19,
IPA_HW_v4_11 = 20,
IPA_HW_v5_0 = 21,
};
#define IPA_HW_MAX (IPA_HW_v4_11 + 1)
#define IPA_HW_MAX (IPA_HW_v5_0 + 1)
#define IPA_HW_v4_0 IPA_HW_v4_0
#define IPA_HW_v4_1 IPA_HW_v4_1
@ -809,6 +814,7 @@ enum ipa_hw_type {
#define IPA_HW_v4_7 IPA_HW_v4_7
#define IPA_HW_v4_9 IPA_HW_v4_9
#define IPA_HW_v4_11 IPA_HW_v4_11
#define IPA_HW_v5_0 IPA_HW_v5_0
/**
* struct ipa_rule_attrib - attributes of a routing/filtering
@ -1077,6 +1083,8 @@ struct ipa_flt_rule {
* flt rule.
* @cnt_idx: if 0 means disable, otherwise use for index.
* will be assigned by ipa driver.
* @close_aggr_irq_mod: close aggregation/coalescing and close GSI
* interrupt moderation
*/
struct ipa_flt_rule_v2 {
uint8_t retain_hdr;
@ -1094,6 +1102,7 @@ struct ipa_flt_rule_v2 {
uint8_t pdn_idx;
uint8_t enable_stats;
uint8_t cnt_idx;
uint8_t close_aggr_irq_mod;
};
/**
@ -1186,6 +1195,8 @@ struct ipa_rt_rule {
* rt rule.
* @cnt_idx: if enable_stats is 1 and cnt_idx is 0, then cnt_idx
* will be assigned by ipa driver.
* @close_aggr_irq_mod: close aggregation/coalescing and close GSI
* interrupt moderation
*/
struct ipa_rt_rule_v2 {
enum ipa_client_type dst;
@ -1198,6 +1209,7 @@ struct ipa_rt_rule_v2 {
uint8_t coalesce;
uint8_t enable_stats;
uint8_t cnt_idx;
uint8_t close_aggr_irq_mod;
};
/**