Merge "msm: ipa3: added a check to ignore WIGIG client in IPA 4_11"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
67cb15e19c
86
drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c
Executable file → Normal file
86
drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c
Executable file → Normal file
@@ -90,6 +90,9 @@ enum ipa_ap_ingress_ep_enum {
|
||||
#define RMNET_IPA_ULSO_FEATURE \
|
||||
(NETIF_F_SG | NETIF_F_ALL_TSO)
|
||||
#define RMNET_IPA_ULSO_SIZE_LIMIT 64000
|
||||
#define MAX_WIGIG_CLIENTS_IPA_5_5 3
|
||||
#define MAX_WIGIG_CLIENTS_IPA_4_11 0
|
||||
#define MAX_WIGIG_CLIENTS 4
|
||||
|
||||
static void rmnet_ipa_free_msg(void *buff, u32 len, u32 type);
|
||||
static void rmnet_ipa_get_stats_and_update(void);
|
||||
@@ -4835,15 +4838,28 @@ static inline enum ipa_client_type rmnet_ipa3_get_wigig_cons(int idx)
|
||||
}
|
||||
}
|
||||
|
||||
static inline int rmnet_ipa3_get_max_wigig_clnt(void)
|
||||
{
|
||||
switch (ipa3_ctx->ipa_hw_type) {
|
||||
case IPA_HW_v5_5:
|
||||
return MAX_WIGIG_CLIENTS_IPA_5_5;
|
||||
case IPA_HW_v4_11:
|
||||
return MAX_WIGIG_CLIENTS_IPA_4_11;
|
||||
default:
|
||||
return MAX_WIGIG_CLIENTS;
|
||||
}
|
||||
}
|
||||
|
||||
static int rmnet_ipa3_query_tethering_stats_hw(
|
||||
struct wan_ioctl_query_tether_stats *data, bool reset)
|
||||
{
|
||||
#define MAX_WIGIG_CLIENTS 4
|
||||
|
||||
int rc = 0, index = 0, i = 0;
|
||||
struct ipa_quota_stats_all *con_stats;
|
||||
enum ipa_client_type wlan_client;
|
||||
int ep_idx,wlan_ep_idx,usb_ep_idx;
|
||||
int ep_idx, wlan_ep_idx, usb_ep_idx, max_wigig_clnts;
|
||||
|
||||
max_wigig_clnts = rmnet_ipa3_get_max_wigig_clnt();
|
||||
|
||||
/* qet HW-stats */
|
||||
rc = ipa_get_teth_stats();
|
||||
@@ -4907,19 +4923,10 @@ static int rmnet_ipa3_query_tethering_stats_hw(
|
||||
con_stats->client[usb_ep_idx].num_ipv6_pkts,
|
||||
con_stats->client[usb_ep_idx].num_ipv6_bytes);
|
||||
|
||||
for (i = 0; i < MAX_WIGIG_CLIENTS; i++) {
|
||||
for (i = 0; i < max_wigig_clnts; i++) {
|
||||
enum ipa_client_type wigig_client =
|
||||
rmnet_ipa3_get_wigig_cons(i);
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v5_5) {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG3_CONS)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG4_CONS)
|
||||
break;
|
||||
}
|
||||
|
||||
ep_idx = ipa_get_ep_mapping( wigig_client );
|
||||
|
||||
if (ep_idx == -1 || ep_idx >= ipa3_get_max_num_pipes())
|
||||
@@ -4948,19 +4955,10 @@ static int rmnet_ipa3_query_tethering_stats_hw(
|
||||
con_stats->client[wlan_ep_idx].num_ipv6_bytes +
|
||||
con_stats->client[usb_ep_idx].num_ipv6_bytes;
|
||||
|
||||
for (i = 0; i < MAX_WIGIG_CLIENTS; i++) {
|
||||
for (i = 0; i < max_wigig_clnts; i++) {
|
||||
enum ipa_client_type wigig_client =
|
||||
rmnet_ipa3_get_wigig_cons(i);
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v5_5) {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG3_CONS)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG4_CONS)
|
||||
break;
|
||||
}
|
||||
|
||||
ep_idx = ipa_get_ep_mapping( wigig_client );
|
||||
|
||||
if (ep_idx == -1 || ep_idx >= ipa3_get_max_num_pipes())
|
||||
@@ -5018,19 +5016,10 @@ static int rmnet_ipa3_query_tethering_stats_hw(
|
||||
con_stats->client[usb_ep_idx].num_ipv6_pkts,
|
||||
con_stats->client[usb_ep_idx].num_ipv6_bytes);
|
||||
|
||||
for (i = 0; i < MAX_WIGIG_CLIENTS; i++) {
|
||||
for (i = 0; i < max_wigig_clnts; i++) {
|
||||
enum ipa_client_type wigig_client =
|
||||
rmnet_ipa3_get_wigig_cons(i);
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v5_5) {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG3_CONS)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG4_CONS)
|
||||
break;
|
||||
}
|
||||
|
||||
ep_idx = ipa_get_ep_mapping( wigig_client );
|
||||
|
||||
if (ep_idx == -1 || ep_idx >= ipa3_get_max_num_pipes())
|
||||
@@ -5058,19 +5047,10 @@ static int rmnet_ipa3_query_tethering_stats_hw(
|
||||
con_stats->client[wlan_ep_idx].num_ipv6_bytes +
|
||||
con_stats->client[usb_ep_idx].num_ipv6_bytes;
|
||||
|
||||
for (i = 0; i < MAX_WIGIG_CLIENTS; i++) {
|
||||
for (i = 0; i < max_wigig_clnts; i++) {
|
||||
enum ipa_client_type wigig_client =
|
||||
rmnet_ipa3_get_wigig_cons(i);
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v5_5) {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG3_CONS)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG4_CONS)
|
||||
break;
|
||||
}
|
||||
|
||||
ep_idx = ipa_get_ep_mapping( wigig_client );
|
||||
|
||||
if (ep_idx == -1 || ep_idx >= ipa3_get_max_num_pipes())
|
||||
@@ -5127,19 +5107,10 @@ static int rmnet_ipa3_query_tethering_stats_hw(
|
||||
con_stats->client[usb_ep_idx].num_ipv6_pkts,
|
||||
con_stats->client[usb_ep_idx].num_ipv6_bytes);
|
||||
|
||||
for (i = 0; i < MAX_WIGIG_CLIENTS; i++) {
|
||||
for (i = 0; i < max_wigig_clnts; i++) {
|
||||
enum ipa_client_type wigig_client =
|
||||
rmnet_ipa3_get_wigig_cons(i);
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v5_5) {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG3_CONS)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG4_CONS)
|
||||
break;
|
||||
}
|
||||
|
||||
ep_idx = ipa_get_ep_mapping( wigig_client );
|
||||
|
||||
if (ep_idx == -1 || ep_idx >= ipa3_get_max_num_pipes())
|
||||
@@ -5167,19 +5138,10 @@ static int rmnet_ipa3_query_tethering_stats_hw(
|
||||
con_stats->client[wlan_ep_idx].num_ipv6_bytes +
|
||||
con_stats->client[IPA_CLIENT_USB_CONS].num_ipv6_bytes;
|
||||
|
||||
for (i = 0; i < MAX_WIGIG_CLIENTS; i++) {
|
||||
for (i = 0; i < max_wigig_clnts; i++) {
|
||||
enum ipa_client_type wigig_client =
|
||||
rmnet_ipa3_get_wigig_cons(i);
|
||||
|
||||
if (ipa3_ctx->ipa_hw_type >= IPA_HW_v5_5) {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG3_CONS)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
if (wigig_client > IPA_CLIENT_WIGIG4_CONS)
|
||||
break;
|
||||
}
|
||||
|
||||
ep_idx = ipa_get_ep_mapping( wigig_client );
|
||||
|
||||
if (ep_idx == -1 || ep_idx >= ipa3_get_max_num_pipes())
|
||||
|
Reference in New Issue
Block a user