Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56784229 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa: add support for HW stats to QMI"

parents 76f60b6d 88861a1e
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -425,6 +425,20 @@ static int ipa3_qmi_init_modem_send_sync_msg(void)
	req.v6_hash_filter_tbl_start_addr =
		IPA_MEM_PART(v6_flt_hash_ofst) + smem_restr_bytes;

	req.hw_stats_quota_base_addr_valid = true;
	req.hw_stats_quota_base_addr =
		IPA_MEM_PART(stats_quota_ofst) + smem_restr_bytes;

	req.hw_stats_quota_size_valid = true;
	req.hw_stats_quota_size = IPA_MEM_PART(stats_quota_size);

	req.hw_drop_stats_base_addr_valid = true;
	req.hw_drop_stats_base_addr =
		IPA_MEM_PART(stats_drop_ofst) + smem_restr_bytes;

	req.hw_drop_stats_table_size_valid = true;
	req.hw_drop_stats_table_size = IPA_MEM_PART(stats_drop_size);

	if (!ipa3_uc_loaded_check()) {  /* First time boot */
		req.is_ssr_bootup_valid = false;
		req.is_ssr_bootup = 0;
+81 −0
Original line number Diff line number Diff line
@@ -1092,11 +1092,92 @@ struct qmi_elem_info ipa3_init_modem_driver_req_msg_data_v01_ei[] = {
			struct ipa_init_modem_driver_req_msg_v01,
			v6_hash_filter_tbl_start_addr),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x1F,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_stats_quota_base_addr_valid),
	},
	{
		.data_type	= QMI_UNSIGNED_4_BYTE,
		.elem_len	= 1,
		.elem_size	= sizeof(uint32_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x1F,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_stats_quota_base_addr),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x20,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_stats_quota_size_valid),
	},
	{
		.data_type	= QMI_UNSIGNED_4_BYTE,
		.elem_len	= 1,
		.elem_size	= sizeof(uint32_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x20,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_stats_quota_size),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x21,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_drop_stats_base_addr_valid),
	},
	{
		.data_type	= QMI_UNSIGNED_4_BYTE,
		.elem_len	= 1,
		.elem_size	= sizeof(uint32_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x21,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_drop_stats_base_addr),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x22,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_drop_stats_table_size_valid),
	},
	{
		.data_type	= QMI_UNSIGNED_4_BYTE,
		.elem_len	= 1,
		.elem_size	= sizeof(uint32_t),
		.is_array	= NO_ARRAY,
		.tlv_type	= 0x22,
		.offset		= offsetof(
			struct ipa_init_modem_driver_req_msg_v01,
			hw_drop_stats_table_size),
	},
	{
		.data_type	= QMI_EOTI,
		.is_array	= NO_ARRAY,
		.tlv_type	= QMI_COMMON_TLV_TYPE,
	},

};

struct qmi_elem_info ipa3_init_modem_driver_resp_msg_data_v01_ei[] = {
+38 −1
Original line number Diff line number Diff line
@@ -56,6 +56,11 @@
#define QMI_IPA_MAX_CLIENT_DST_PIPES_V01 8
#define QMI_IPA_MAX_UL_FIREWALL_RULES_V01 64

/*
 * Indicates presence of newly added member to support HW stats.
 */
#define IPA_QMI_SUPPORTS_STATS

#define IPA_INT_MAX	((int)(~0U>>1))
#define IPA_INT_MIN	(-IPA_INT_MAX - 1)

@@ -316,6 +321,38 @@ struct ipa_init_modem_driver_req_msg_v01 {
	 * table in IPAv3 onwards. Denotes the offset from the start of
	 * the IPA shared memory.
	 */

	/* Optional
	 * Modem HW Stats Quota Base address
	 * Must be set to true if hw_stats_quota_base_addr
	 * is being passed
	 */
	uint8_t hw_stats_quota_base_addr_valid;
	uint32_t hw_stats_quota_base_addr;

	/* Optional
	 * Modem HW Stats Quota Size
	 * Must be set to true if hw_stats_quota_size
	 * is being passed
	 */
	uint8_t hw_stats_quota_size_valid;
	uint32_t hw_stats_quota_size;

	/* Optional
	 * Modem HW Drop Stats Table Start Address
	 * Must be set to true if hw_drop_stats_base_addr
	 * is being passed
	 */
	uint8_t hw_drop_stats_base_addr_valid;
	uint32_t hw_drop_stats_base_addr;

	/* Optional
	 * Modem HW Drop Stats Table size
	 * Must be set to true if hw_drop_stats_table_size
	 * is being passed
	 */
	uint8_t hw_drop_stats_table_size_valid;
	uint32_t hw_drop_stats_table_size;
};  /* Message */

/* Response Message; Requests the modem IPA driver about initialization */
@@ -1953,7 +1990,7 @@ struct ipa_configure_ul_firewall_rules_ind_msg_v01 {
#define QMI_IPA_INSTALL_UL_FIREWALL_RULES_IND_V01 0x003A

/* add for max length*/
#define QMI_IPA_INIT_MODEM_DRIVER_REQ_MAX_MSG_LEN_V01 134
#define QMI_IPA_INIT_MODEM_DRIVER_REQ_MAX_MSG_LEN_V01 162
#define QMI_IPA_INIT_MODEM_DRIVER_RESP_MAX_MSG_LEN_V01 25
#define QMI_IPA_INDICATION_REGISTER_REQ_MAX_MSG_LEN_V01 8
#define QMI_IPA_INDICATION_REGISTER_RESP_MAX_MSG_LEN_V01 7