Merge "msm: ipa: update the ipa eth client interfaces"

This commit is contained in:
qctecmdr 2021-10-08 17:29:52 -07:00 • committed by Gerrit - the friendly Code Review server
commit c577d254cd
4 changed files with 18 additions and 47 deletions

View file

@ -427,10 +427,6 @@ struct ipa_fmwk_contex {
int (*ipa_eth_client_set_perf_profile)(struct ipa_eth_client *client,
struct ipa_eth_perf_profile *profile);
int (*ipa_eth_client_conn_evt)(struct ipa_ecm_msg *msg);
int (*ipa_eth_client_disconn_evt)(struct ipa_ecm_msg *msg);
int (*ipa_get_default_aggr_time_limit)(enum ipa_client_type client,
u32 *default_aggr_time_limit);
@ -2162,8 +2158,6 @@ int ipa_fmwk_register_ipa_eth(const struct ipa_eth_data *in)
|| ipa_fmwk_ctx->ipa_eth_client_reg_intf
|| ipa_fmwk_ctx->ipa_eth_client_unreg_intf
|| ipa_fmwk_ctx->ipa_eth_client_set_perf_profile
|| ipa_fmwk_ctx->ipa_eth_client_conn_evt
|| ipa_fmwk_ctx->ipa_eth_client_disconn_evt
|| ipa_fmwk_ctx->ipa_eth_get_ipa_client_type_from_eth_type
|| ipa_fmwk_ctx->ipa_eth_client_exist) {
pr_err("ipa_eth APIs were already initialized\n");
@ -2180,9 +2174,6 @@ int ipa_fmwk_register_ipa_eth(const struct ipa_eth_data *in)
ipa_fmwk_ctx->ipa_eth_client_unreg_intf = in->ipa_eth_client_unreg_intf;
ipa_fmwk_ctx->ipa_eth_client_set_perf_profile =
in->ipa_eth_client_set_perf_profile;
ipa_fmwk_ctx->ipa_eth_client_conn_evt = in->ipa_eth_client_conn_evt;
ipa_fmwk_ctx->ipa_eth_client_disconn_evt =
in->ipa_eth_client_disconn_evt;
ipa_fmwk_ctx->ipa_eth_get_ipa_client_type_from_eth_type =
in->ipa_eth_get_ipa_client_type_from_eth_type;
ipa_fmwk_ctx->ipa_eth_client_exist =
@ -2285,28 +2276,6 @@ int ipa_eth_client_set_perf_profile(struct ipa_eth_client *client,
}
EXPORT_SYMBOL(ipa_eth_client_set_perf_profile);
int ipa_eth_client_conn_evt(struct ipa_ecm_msg *msg)
{
int ret;
IPA_FMWK_DISPATCH_RETURN_DP(ipa_eth_client_conn_evt,
msg);
return ret;
}
EXPORT_SYMBOL(ipa_eth_client_conn_evt);
int ipa_eth_client_disconn_evt(struct ipa_ecm_msg *msg)
{
int ret;
IPA_FMWK_DISPATCH_RETURN_DP(ipa_eth_client_disconn_evt,
msg);
return ret;
}
EXPORT_SYMBOL(ipa_eth_client_disconn_evt);
int ipa_get_default_aggr_time_limit(enum ipa_client_type client,
u32 *default_aggr_time_limit)
{

View file

@ -10,6 +10,8 @@
#include <linux/msm_ipa.h>
#include <linux/msm_gsi.h>
#define IPA_ETH_API_VER 2
/* New architecture prototypes */
typedef void (*ipa_eth_ready_cb)(void *user_data);
@ -41,6 +43,7 @@ enum ipa_eth_client_type {
IPA_ETH_CLIENT_RTK8125B,
IPA_ETH_CLIENT_NTN,
IPA_ETH_CLIENT_EMAC,
IPA_ETH_CLIENT_NTN3,
IPA_ETH_CLIENT_MAX,
};
@ -195,13 +198,13 @@ struct ipa_eth_client_pipe_info {
* provided by offload client
* @client_type: ethernet client type
* @inst_id: instance id for dual NIC support
* @net_dev: network device client belongs to
* @traffic_type: traffic type
* @pipe_list: list of pipes with same traffic type
* @priv: private data for client
* @test: is test client
*/
struct ipa_eth_client {
/* vendor driver */
enum ipa_eth_client_type client_type;
u8 inst_id;
@ -212,6 +215,9 @@ struct ipa_eth_client {
/* client specific priv data*/
void *priv;
bool test;
/* vendor driver */
struct net_device *net_dev;
};
/**
@ -242,18 +248,18 @@ struct ipa_eth_hdr_info {
* struct ipa_eth_intf_info - parameters for ipa offload
* interface registration
*
* @netdev_name: network interface name
* @hdr: hdr for ipv4/ipv6
* @pipe_hdl_list_size: number of pipes prop needed for this interface
* @pipe_hdl_list: array of pipes used for this interface
* @client: ipa ethernet client associated with the interface
* @is_conn_evt: whether or not trigger periph conn/disconn event
* @net_dev: network device
*/
struct ipa_eth_intf_info {
const char *netdev_name;
struct ipa_eth_hdr_info hdr[IPA_IP_MAX];
struct ipa_eth_client *client;
/* tx/rx pipes for same netdev */
int pipe_hdl_list_size;
ipa_eth_hdl_t *pipe_hdl_list;
/* trigger iface peripheral event */
bool is_conn_evt;
/* IPA internal fields */
struct net_device *net_dev;
};
int ipa_eth_register_ready_cb(struct ipa_eth_ready *ready_info);
@ -264,8 +270,6 @@ int ipa_eth_client_reg_intf(struct ipa_eth_intf_info *intf);
int ipa_eth_client_unreg_intf(struct ipa_eth_intf_info *intf);
int ipa_eth_client_set_perf_profile(struct ipa_eth_client *client,
struct ipa_eth_perf_profile *profile);
int ipa_eth_client_conn_evt(struct ipa_ecm_msg *msg);
int ipa_eth_client_disconn_evt(struct ipa_ecm_msg *msg);
enum ipa_client_type ipa_eth_get_ipa_client_type_from_eth_type(
enum ipa_eth_client_type eth_client_type, enum ipa_eth_pipe_direction dir);
bool ipa_eth_client_exist(

View file

@ -328,10 +328,6 @@ struct ipa_eth_data {
int (*ipa_eth_client_set_perf_profile)(struct ipa_eth_client *client,
struct ipa_eth_perf_profile *profile);
int (*ipa_eth_client_conn_evt)(struct ipa_ecm_msg *msg);
int (*ipa_eth_client_disconn_evt)(struct ipa_ecm_msg *msg);
enum ipa_client_type (*ipa_eth_get_ipa_client_type_from_eth_type)(
enum ipa_eth_client_type eth_client_type,
enum ipa_eth_pipe_direction dir);

View file

@ -3123,6 +3123,8 @@ struct ipa_tether_device_info {
*/
enum ipa_vlan_ifaces {
IPA_VLAN_IF_ETH,
IPA_VLAN_IF_ETH0,
IPA_VLAN_IF_ETH1,
IPA_VLAN_IF_RNDIS,
IPA_VLAN_IF_ECM
};