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

This commit is contained in:
qctecmdr
2023-10-11 22:09:30 -07:00
committed by Gerrit - the friendly Code Review server

86
drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c Executable file → Normal file
View 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())