msm: ipa3: add new ETH PDU QMI

Add new QMI messages and struct to support ETH PDU FR.

Change-Id: I2fa969330898e7e08b7ab3dcf0fea6b4239b253a
Signed-off-by: Michael Adisumarta <quic_madisuma@quicinc.com>
This commit is contained in:
Michael Adisumarta 2022-11-22 12:14:28 -08:00
commit 16d47db67b

View file

@ -1,6 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
/*
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
/*
@ -52,6 +54,9 @@
#define QMI_IPA_IPFLTR_NUM_MEQ_32_EQNS_V01 2
#define QMI_IPA_MAX_PIPES_V01 20
#define QMI_IPA_MAX_PER_CLIENTS_V01 64
#define QMI_IPA_MAX_RMNET_ETH_INFO_V01 19
#define QMI_IPA_MAX_MAC_ADDR_LEN_V01 6
#define QMI_IPA_MAX_IPV4_ADDR_LEN_V01 4
/*
* Indicates presence of newly added member to support HW stats.
@ -113,6 +118,19 @@ enum ipa_platform_type_enum_v01 {
/* To force a 32 bit signed enum. Do not change or use */
};
enum ipa_eth_hw_config_enum_v01 {
IPA_QMI_ETH_HW_CONFIG_ENUM_MIN_ENUM_VAL_V01 = -2147483647,
/**< To force a 32 bit signed enum. Do not change or use*/
IPA_QMI_ETH_HW_NONE_V01 = 0x00,
/**< Ethernet Setting HW Default \n */
IPA_QMI_ETH_HW_VLAN_IP_V01 = 0x01,
/**< Ethernet HW VLAN+IP supported \n */
IPA_QMI_ETH_HW_NON_VLAN_IP_V01 = 0x02,
/**< Ethernet HW NON_VLAN+IP supported */
IPA_QMI_ETH_HW_CONFIG_ENUM_MAX_ENUM_VAL_V01 = 2147483647
/**< To force a 32 bit signed enum. Do not change or use*/
};
#define QMI_IPA_PLATFORM_TYPE_LE_MHI_V01 \
QMI_IPA_PLATFORM_TYPE_LE_MHI_V01
@ -538,6 +556,18 @@ struct ipa_indication_reg_req_msg_v01 {
* message makes sense only when the QMI_IPA_INDICATION_REGISTER_REQ
* is being originated from the master driver.
*/
/* Optional */
/* Rmnet Ethernet MAC Information */
__u8 rmnet_eth_mac_info_valid;
/* Must be set to true if rmnet_eth_mac_info is being passed */
__u8 rmnet_eth_mac_info;
/* If set to TRUE, this field indicates that the client wants to
* receive indications about embeddd rmnet_eth mac info via
* QMI_IPA_RMNET_ETH_INFO_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 */
@ -2559,6 +2589,7 @@ enum ipa_ic_type_enum_v01 {
DATA_IC_TYPE_AP_V01 = 0x04,
DATA_IC_TYPE_Q6_V01 = 0x05,
DATA_IC_TYPE_UC_V01 = 0x06,
DATA_IC_TYPE_ETH_V01 = 0x07,
IPA_IC_TYPE_ENUM_MAX_VAL_V01 = IPA_INT_MAX,
};
@ -2781,6 +2812,78 @@ struct ipa_move_nat_table_complt_ind_msg_v01 {
}; /* Message */
#define QMI_IPA_NAT_TABLE_MOVE_COMPLETE_IND_MAX_MSG_LEN_V01 7
/*
* Request Message; QMI request message to request for a dual-backhaul traffic
* offloading with ethernet and WWAN and notify the eth-header
*/
struct ipa_eth_backhaul_info_req_msg_v01 {
/* Mandatory */
/* SRC MAC ADDR */
__u8 src_mac_addr[QMI_IPA_MAX_MAC_ADDR_LEN_V01];
/* src mac addr of eth hdr */
/* Mandatory */
/* DST MAC ADDR */
__u8 dst_mac_addr[QMI_IPA_MAX_MAC_ADDR_LEN_V01];
/* dst mac addr of eth hdr */
/* Mandatory */
/* IPv4 ADDR of ETH0 */
__u32 ipv4_addr_eth0[QMI_IPA_MAX_IPV4_ADDR_LEN_V01];
/* ipv4 addr of eth0 */
/* Mandatory */
/* ETH PIPE */
__u8 eth_pipe;
/* Specifies eth pipe for Q6 to route UL pkts for ETH backhaul */
/* Mandatory */
/* ACTION */
__u8 enable;
/* Specifies whether eth backhaul is enabled or disabled */
}; /* Message */
#define IPA_ETH_BACKHAUL_INFO_REQ_MSG_V01_MAX_MSG_LEN 45
/* Response Message; to notify the status of the dual-backhaul traffic
* offloading request using QMI_IPA_ETH_BACKHAUL_INFO_REQ
*/
struct ipa_eth_backhaul_info_resp_msg_v01 {
/* Mandatory */
/* Result Code */
struct ipa_qmi_response_type_v01 resp;
/*
* Standard response type.
* Standard response type. Contains the following data members:
* qmi_result_type -- QMI_RESULT_SUCCESS or QMI_RESULT_FAILURE
* qmi_error_type -- Error code. Possible error code values are
* described in the error codes section of each message definition.
*/
}; /* Message */
#define IPA_ETH_BACKHAUL_INFO_RESP_MSG_V01_MAX_MSG_LEN 7
struct ipa_rmnet_eth_info_type_v01 {
__u8 mac_addr[QMI_IPA_MAX_MAC_ADDR_LEN_V01];
/* mac addr of rmnet_eth */
__u32 mux_id;
/* QMAP Mux ID. As a part of the QMAP protocol,
* several data calls may be multiplexed over the same physical transport
* channel. This identifier is used to identify one such data call.
* The maximum value for this identifier is 255.
*/
}; /* Type */
/* Indication Message; This is an indication to send rmnet ethernet information
* for embedded wireless ethernet PDU from the modem processor to
* the application processor
*/
struct ipa_rmnet_eth_info_indication_msg_v01 {
/* Optional */
/* Rmnet Ethernet Information */
__u8 rmnet_eth_info_valid;
/* Must be set to true if rmnet_eth_info is being passed */
__u32 rmnet_eth_info_len;
/* Must be set to # of elements in rmnet_eth_info */
struct ipa_rmnet_eth_info_type_v01 rmnet_eth_info[QMI_IPA_MAX_RMNET_ETH_INFO_V01];
/* Rmnet Ethernet Info array */
}; /* Message */
#define IPA_RMNET_ETH_INFO_INDICATION_MSG_V01_MAX_MSG_LEN 194
/*Service Message Definition*/
#define QMI_IPA_INDICATION_REGISTER_REQ_V01 0x0020
#define QMI_IPA_INDICATION_REGISTER_RESP_V01 0x0020
@ -2839,6 +2942,9 @@ struct ipa_move_nat_table_complt_ind_msg_v01 {
#define QMI_IPA_MOVE_NAT_REQ_V01 0x0046
#define QMI_IPA_MOVE_NAT_RESP_V01 0x0046
#define QMI_IPA_MOVE_NAT_COMPLETE_IND_V01 0x0046
#define QMI_IPA_ETH_BACKHAUL_INFO_REQ_V01 0x0047
#define QMI_IPA_ETH_BACKHAUL_INFO_RESP_V01 0x0047
#define QMI_IPA_RMNET_ETH_INFO_INDICATION_V01 0x0048
/* add for max length*/
#define QMI_IPA_INIT_MODEM_DRIVER_REQ_MAX_MSG_LEN_V01 197