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

Commit a8c7ca35 authored by Michael Adisumarta's avatar Michael Adisumarta Committed by Gerrit - the friendly Code Review server
Browse files

msm: ipa3: add qmi support for clk voting



Add QMI IDL changes for supporing clk_voting
QMI and also UL ipv6 firewall indices list.

Change-Id: I0278a88c975f125b4f0aad64a9ae673d6d919ddb
Signed-off-by: default avatarMichael Adisumarta <madisuma@codeaurora.org>
parent 4a3d1ca8
Loading
Loading
Loading
Loading
+170 −0
Original line number Diff line number Diff line
@@ -1349,6 +1349,26 @@ struct qmi_elem_info ipa3_indication_reg_req_msg_data_v01_ei[] = {
			struct ipa_indication_reg_req_msg_v01,
				ipa_mhi_ready_ind_valid),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(u8),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x13,
		.offset		= offsetof(
			struct ipa_indication_reg_req_msg_v01,
				endpoint_desc_ind_valid),
	},
	{
		.data_type	= QMI_UNSIGNED_1_BYTE,
		.elem_len	= 1,
		.elem_size	= sizeof(u8),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x13,
		.offset		= offsetof(
			struct ipa_indication_reg_req_msg_v01,
				endpoint_desc_ind),
	},
	{
		.data_type	= QMI_UNSIGNED_1_BYTE,
		.elem_len	= 1,
@@ -1911,6 +1931,36 @@ struct qmi_elem_info ipa3_install_fltr_rule_req_msg_data_v01_ei[] = {
			filter_spec_ex2_list),
		.ei_array      = ipa_filter_spec_ex2_type_v01_ei,
	},
	{
		.data_type      = QMI_OPT_FLAG,
		.elem_len       = 1,
		.elem_size      = sizeof(uint8_t),
		.array_type       = NO_ARRAY,
		.tlv_type       = 0x17,
		.offset         = offsetof(
			struct ipa_install_fltr_rule_req_msg_v01,
			ul_firewall_indices_list_valid),
	},
	{
		.data_type      = QMI_DATA_LEN,
		.elem_len       = 1,
		.elem_size      = sizeof(uint8_t),
		.array_type       = NO_ARRAY,
		.tlv_type       = 0x17,
		.offset         = offsetof(
			struct ipa_install_fltr_rule_req_msg_v01,
			ul_firewall_indices_list_len),
	},
	{
		.data_type      = QMI_UNSIGNED_4_BYTE,
		.elem_len       = QMI_IPA_MAX_FILTERS_V01,
		.elem_size      = sizeof(uint32_t),
		.array_type       = VAR_LEN_ARRAY,
		.tlv_type       = 0x17,
		.offset         = offsetof(
			struct ipa_install_fltr_rule_req_msg_v01,
			ul_firewall_indices_list),
	},
	{
		.data_type	= QMI_EOTI,
		.array_type	= NO_ARRAY,
@@ -2243,6 +2293,36 @@ struct qmi_elem_info ipa3_fltr_installed_notif_req_msg_data_v01_ei[] = {
			struct ipa_fltr_installed_notif_req_msg_v01,
			dst_pipe_id),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x19,
		.offset		= offsetof(
			struct ipa_fltr_installed_notif_req_msg_v01,
			rule_id_ex_valid),
	},
	{
		.data_type	= QMI_DATA_LEN,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x19,
		.offset		= offsetof(
			struct ipa_fltr_installed_notif_req_msg_v01,
			rule_id_ex_len),
	},
	{
		.data_type	= QMI_UNSIGNED_4_BYTE,
		.elem_len	= QMI_IPA_MAX_FILTERS_EX2_V01,
		.elem_size	= sizeof(uint32_t),
		.array_type	= VAR_LEN_ARRAY,
		.tlv_type	= 0x19,
		.offset		= offsetof(
			struct ipa_fltr_installed_notif_req_msg_v01,
			rule_id_ex),
	},
	{
		.data_type	= QMI_EOTI,
		.array_type	= NO_ARRAY,
@@ -3388,6 +3468,36 @@ struct qmi_elem_info ipa3_install_fltr_rule_req_ex_msg_data_v01_ei[] = {
			filter_spec_ex2_list),
		.ei_array      = ipa_filter_spec_ex2_type_v01_ei,
	},
	{
		.data_type      = QMI_OPT_FLAG,
		.elem_len       = 1,
		.elem_size      = sizeof(uint8_t),
		.array_type       = NO_ARRAY,
		.tlv_type       = 0x16,
		.offset         = offsetof(
			struct ipa_install_fltr_rule_req_ex_msg_v01,
			ul_firewall_indices_list_valid),
	},
	{
		.data_type      = QMI_DATA_LEN,
		.elem_len       = 1,
		.elem_size      = sizeof(uint8_t),
		.array_type       = NO_ARRAY,
		.tlv_type       = 0x16,
		.offset         = offsetof(
			struct ipa_install_fltr_rule_req_ex_msg_v01,
			ul_firewall_indices_list_len),
	},
	{
		.data_type      = QMI_UNSIGNED_4_BYTE,
		.elem_len       = QMI_IPA_MAX_FILTERS_V01,
		.elem_size      = sizeof(uint32_t),
		.array_type       = VAR_LEN_ARRAY,
		.tlv_type       = 0x16,
		.offset         = offsetof(
			struct ipa_install_fltr_rule_req_ex_msg_v01,
			ul_firewall_indices_list),
	},
	{
		.data_type	= QMI_EOTI,
		.array_type	= NO_ARRAY,
@@ -4369,6 +4479,46 @@ struct qmi_elem_info ipa_mhi_clk_vote_req_msg_v01_ei[] = {
		.offset = offsetof(struct ipa_mhi_clk_vote_req_msg_v01,
		mhi_vote),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x10,
		.offset		= offsetof(
			struct ipa_mhi_clk_vote_req_msg_v01,
			tput_value_valid),
	},
	{
		.data_type	= QMI_UNSIGNED_4_BYTE,
		.elem_len	= 1,
		.elem_size	= sizeof(uint32_t),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x10,
		.offset		= offsetof(
			struct ipa_mhi_clk_vote_req_msg_v01,
			tput_value),
	},
	{
		.data_type	= QMI_OPT_FLAG,
		.elem_len	= 1,
		.elem_size	= sizeof(uint8_t),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x11,
		.offset		= offsetof(
			struct ipa_mhi_clk_vote_req_msg_v01,
			clk_rate_valid),
	},
	{
		.data_type	= QMI_SIGNED_4_BYTE_ENUM,
		.elem_len	= 1,
		.elem_size	= sizeof(uint32_t),
		.array_type	= NO_ARRAY,
		.tlv_type	= 0x11,
		.offset		= offsetof(
			struct ipa_mhi_clk_vote_req_msg_v01,
			clk_rate),
	},
	{
		.data_type = QMI_EOTI,
		.array_type = NO_ARRAY,
@@ -4780,6 +4930,26 @@ struct qmi_elem_info ipa_add_offload_connection_req_msg_v01_ei[] = {
			filter_spec_ex2_list),
		.ei_array      = ipa_filter_spec_ex2_type_v01_ei,
	},
	{
		.data_type      = QMI_OPT_FLAG,
		.elem_len       = 1,
		.elem_size      = sizeof(u8),
		.array_type       = NO_ARRAY,
		.tlv_type       = 0x14,
		.offset         = offsetof(
			struct ipa_add_offload_connection_req_msg_v01,
			embedded_call_mux_id_valid),
	},
	{
		.data_type      = QMI_UNSIGNED_4_BYTE,
		.elem_len       = 1,
		.elem_size      = sizeof(uint32_t),
		.array_type       = NO_ARRAY,
		.tlv_type       = 0x14,
		.offset         = offsetof(
			struct ipa_add_offload_connection_req_msg_v01,
			embedded_call_mux_id),
	},
	{
		.data_type      = QMI_EOTI,
		.array_type       = NO_ARRAY,
+90 −6
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@

#define QMI_IPA_REMOTE_MHI_CHANNELS_NUM_MAX_V01 6
#define QMI_IPA_MAX_FILTERS_EX_V01 128
#define QMI_IPA_MAX_FILTERS_EX2_V01 256
#define QMI_IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS_V01 2
#define QMI_IPA_MAX_FILTERS_V01 64
#define QMI_IPA_IPFLTR_NUM_MEQ_128_EQNS_V01 2
@@ -465,6 +466,19 @@ struct ipa_indication_reg_req_msg_v01 {
	 * If set to TRUE, this field indicates that the client wants to
	 * receive indications about MHI ready for Channel allocations.
	 */

	/* Optional */
	/*  Endpoint Desc Info Indication */
	uint8_t endpoint_desc_ind_valid;
	/* Must be set to true if endpoint_desc_ind is being passed */
	uint8_t endpoint_desc_ind;
	/*
	 * If set to TRUE, this field indicates that the client wants to
	 * receive indications for Endpoint descriptor information via
	 * QMI_IPA_ENDP_DESC_INDICATION. Setting this field in the request
	 * message makes sense only when the  QMI_IPA_INDICATION_REGISTER_REQ
	 * is being originated from the master driver.
	 */
};  /* Message */


@@ -1040,6 +1054,20 @@ struct ipa_install_fltr_rule_req_msg_v01 {
	/* Must be set to # of elements in filter_spec_ex2_list */
	struct ipa_filter_spec_ex2_type_v01
		filter_spec_ex2_list[QMI_IPA_MAX_FILTERS_V01];

	/* Optional */
	/* List of modem UL Filters in the Spec List which need be to
	 * replicated with AP UL firewall filters
	 */
	uint8_t ul_firewall_indices_list_valid;
	/* Must be set to # of elements in ul_firewall_indices_list */
	uint32_t ul_firewall_indices_list_len;
	uint32_t ul_firewall_indices_list[QMI_IPA_MAX_FILTERS_V01];
	/* List of UL firewall filter indices.
	 * Filter rules at specified indices must be replicated across
	 * the firewall filters by the receiver and installed on the
	 * associated IPA consumer pipe.
	 */
};  /* Message */

struct ipa_filter_rule_identifier_to_handle_map_v01 {
@@ -1230,6 +1258,18 @@ struct ipa_fltr_installed_notif_req_msg_v01 {
	uint32_t dst_pipe_id[QMI_IPA_MAX_CLIENT_DST_PIPES_V01];
	/* Provides the list of destination pipe IDs for a source pipe. */

	/* Optional */
	/*  List of Rule IDs extended */
	uint8_t rule_id_ex_valid;
	/* Must be set to true if rule_id_ex is being passed. */
	uint32_t rule_id_ex_len;
	/* Must be set to # of elements in rule_id_ex */
	uint32_t rule_id_ex[QMI_IPA_MAX_FILTERS_EX2_V01];
	/* Provides the list of Rule IDs of rules added in IPA on the
	 * given source pipe index. If the install_status TLV indicates
	 * a failure, the Rule IDs in this list must be set to a
	 * reserved index (255).
	 */
};  /* Message */

/* Response Message; This is the message that is exchanged between the
@@ -1847,6 +1887,19 @@ struct ipa_install_fltr_rule_req_ex_msg_v01 {
	/* Must be set to # of elements in filter_spec_ex2_list */
	struct ipa_filter_spec_ex2_type_v01
		filter_spec_ex2_list[QMI_IPA_MAX_FILTERS_V01];
	/* Optional */
	/* List of modem UL Filters in the Spec List which need be to
	 * replicated with AP UL firewall filters
	 */
	uint8_t ul_firewall_indices_list_valid;
	/* Must be set to # of elements in ul_firewall_indices_list */
	uint32_t ul_firewall_indices_list_len;
	uint32_t ul_firewall_indices_list[QMI_IPA_MAX_FILTERS_V01];
	/* List of UL firewall filter indices.
	 * Filter rules at specified indices must be replicated across
	 * the firewall filters by the receiver and installed on the
	 * associated IPA consumer pipe.
	 */
};  /* Message */

/* Response Message; Requests installation of filtering rules in the hardware
@@ -2334,6 +2387,22 @@ struct ipa_mhi_alloc_channel_resp_msg_v01 {
};
#define IPA_MHI_ALLOC_CHANNEL_RESP_MSG_V01_MAX_MSG_LEN 23

enum ipa_clock_rate_enum_v01 {
	IPA_CLOCK_RATE_ENUM_MIN_ENUM_VAL_V01 = IPA_INT_MIN,

	QMI_IPA_CLOCK_RATE_INVALID_V01 = 0,

	QMI_IPA_CLOCK_RATE_LOW_SVS_V01 = 1,

	QMI_IPA_CLOCK_RATE_SVS_V01 = 2,

	QMI_IPA_CLOCK_RATE_NOMINAL_V01 = 3,

	QMI_IPA_CLOCK_RATE_TURBO_V01 = 4,

	IPA_CLOCK_RATE_ENUM_MAX_ENUM_VAL_V01 = IPA_INT_MAX,
};

struct ipa_mhi_clk_vote_req_msg_v01 {
	/* Mandatory */
	uint8_t mhi_vote;
@@ -2342,8 +2411,17 @@ struct ipa_mhi_clk_vote_req_msg_v01 {
	 * TRUE  - ON
	 * FALSE - OFF
	 */
	/* Optional */
	/*  Throughput Value */
	uint8_t tput_value_valid;
	uint32_t tput_value;

	/* Optional */
	/*  IPA Clock Rate */
	uint8_t clk_rate_valid;
	enum ipa_clock_rate_enum_v01 clk_rate;
};
#define IPA_MHI_CLK_VOTE_REQ_MSG_V01_MAX_MSG_LEN 4
#define IPA_MHI_CLK_VOTE_REQ_MSG_V01_MAX_MSG_LEN 18

struct ipa_mhi_clk_vote_resp_msg_v01 {
	/* Mandatory */
@@ -2514,8 +2592,14 @@ struct ipa_add_offload_connection_req_msg_v01 {
	uint32_t filter_spec_ex2_list_len;
	struct ipa_filter_spec_ex2_type_v01
		filter_spec_ex2_list[QMI_IPA_MAX_FILTERS_V01];
	/* Optional */
	/*  Mux ID for embedded call */
	uint8_t embedded_call_mux_id_valid;
	/* Must be set to true if embedded_call_mux_id is being passed */
	uint32_t embedded_call_mux_id;
	/* Mux ID for the new embedded call */
}; /* Message */
#define IPA_ADD_OFFLOAD_CONNECTION_REQ_MSG_V01_MAX_MSG_LEN 11350
#define IPA_ADD_OFFLOAD_CONNECTION_REQ_MSG_V01_MAX_MSG_LEN 11357

struct ipa_add_offload_connection_resp_msg_v01 {
	/*  Result Code */
@@ -2609,11 +2693,11 @@ struct ipa_remove_offload_connection_resp_msg_v01 {
/* add for max length*/
#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 12
#define QMI_IPA_INDICATION_REGISTER_REQ_MAX_MSG_LEN_V01 16
#define QMI_IPA_INDICATION_REGISTER_RESP_MAX_MSG_LEN_V01 7
#define QMI_IPA_INSTALL_FILTER_RULE_REQ_MAX_MSG_LEN_V01 33445
#define QMI_IPA_INSTALL_FILTER_RULE_REQ_MAX_MSG_LEN_V01 33705
#define QMI_IPA_INSTALL_FILTER_RULE_RESP_MAX_MSG_LEN_V01 783
#define QMI_IPA_FILTER_INSTALLED_NOTIF_REQ_MAX_MSG_LEN_V01 870
#define QMI_IPA_FILTER_INSTALLED_NOTIF_REQ_MAX_MSG_LEN_V01 1899
#define QMI_IPA_FILTER_INSTALLED_NOTIF_RESP_MAX_MSG_LEN_V01 7
#define QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_MAX_MSG_LEN_V01 7
#define QMI_IPA_DATA_USAGE_QUOTA_REACHED_IND_MAX_MSG_LEN_V01 15
@@ -2643,7 +2727,7 @@ struct ipa_remove_offload_connection_resp_msg_v01 {
#define QMI_IPA_INIT_MODEM_DRIVER_CMPLT_REQ_MAX_MSG_LEN_V01 4
#define QMI_IPA_INIT_MODEM_DRIVER_CMPLT_RESP_MAX_MSG_LEN_V01 7

#define QMI_IPA_INSTALL_FILTER_RULE_EX_REQ_MAX_MSG_LEN_V01 33761
#define QMI_IPA_INSTALL_FILTER_RULE_EX_REQ_MAX_MSG_LEN_V01 34021
#define QMI_IPA_INSTALL_FILTER_RULE_EX_RESP_MAX_MSG_LEN_V01 523

#define QMI_IPA_ENABLE_PER_CLIENT_STATS_REQ_MAX_MSG_LEN_V01 4