forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_android.c
old mode 100644new mode 100755
....@@ -88,6 +88,8 @@
8888 #define WL_BSSIDX_MAX 16
8989 #endif /* WL_STATIC_IF */
9090
91
+uint android_msg_level = ANDROID_ERROR_LEVEL | ANDROID_MSG_LEVEL;
92
+
9193 #define ANDROID_ERROR_MSG(x, args...) \
9294 do { \
9395 if (android_msg_level & ANDROID_ERROR_LEVEL) { \
....@@ -726,24 +728,8 @@
726728 #define CMD_TWT_SETUP "TWT_SETUP"
727729 #define CMD_TWT_TEARDOWN "TWT_TEARDOWN"
728730 #define CMD_TWT_INFO "TWT_INFO_FRM"
729
-#define CMD_TWT_STATUS_QUERY "GET_TWT_STATUS"
730
-#define CMD_TWT_CAPABILITY "GET_TWT_CAP"
731
-#define CMD_TWT_GET_STATS "GET_TWT_STATISTICS"
732
-#define CMD_TWT_CLR_STATS "CLEAR_TWT_STATISTICS"
733
-#define WL_TWT_CMD_INVAL 255
734
-
735
-/* setup command name to value conversion */
736
-static struct {
737
- const char *name;
738
- uint8 val;
739
-} setup_cmd_val[] = {
740
- {"request", TWT_SETUP_CMD_REQUEST_TWT},
741
- {"suggest", TWT_SETUP_CMD_SUGGEST_TWT},
742
- {"demand", TWT_SETUP_CMD_DEMAND_TWT},
743
- {"accept", TWT_SETUP_CMD_ACCEPT_TWT},
744
- {"alternate", TWT_SETUP_CMD_ALTER_TWT},
745
- {"reject", TWT_SETUP_CMD_REJECT_TWT}
746
-};
731
+#define CMD_TWT_STATUS_QUERY "TWT_STATUS"
732
+#define CMD_TWT_CAPABILITY "TWT_CAP"
747733 #endif /* WL_TWT */
748734
749735 /* drv command info structure */
....@@ -910,9 +896,7 @@
910896 char *command, int total_len);
911897 static int wlc_wbtext_get_roam_prof(struct net_device *ndev, wl_roamprof_band_t *rp,
912898 uint8 band, uint8 *roam_prof_ver, uint8 *roam_prof_size);
913
-#ifdef WES_SUPPORT
914899 static int wl_android_wbtext_enable(struct net_device *dev, int mode);
915
-#endif // WES_SUPPORT
916900 #endif /* WBTEXT */
917901 #ifdef WES_SUPPORT
918902 /* wl_roam.c */
....@@ -1693,6 +1677,14 @@
16931677
16941678 #ifdef CUSTOMER_HW4_PRIVATE_CMD
16951679 #ifdef ROAM_API
1680
+#ifdef WBTEXT
1681
+static bool wl_android_check_wbtext_support(struct net_device *dev)
1682
+{
1683
+ dhd_pub_t *dhdp = wl_cfg80211_get_dhdp(dev);
1684
+ return dhdp->wbtext_support;
1685
+}
1686
+#endif /* WBTEXT */
1687
+
16961688 static bool
16971689 wl_android_check_wbtext_policy(struct net_device *dev)
16981690 {
....@@ -4298,13 +4290,6 @@
42984290 return error;
42994291 }
43004292
4301
-#ifdef WES_SUPPORT
4302
-static bool wl_android_check_wbtext_support(struct net_device *dev)
4303
-{
4304
- dhd_pub_t *dhdp = wl_cfg80211_get_dhdp(dev);
4305
- return dhdp->wbtext_support;
4306
-}
4307
-
43084293 static int
43094294 wl_android_wbtext_enable(struct net_device *dev, int mode)
43104295 {
....@@ -4323,7 +4308,6 @@
43234308
43244309 return error;
43254310 }
4326
-#endif /* WES_SUPPORT */
43274311
43284312 static int wl_cfg80211_wbtext_btm_timer_threshold(struct net_device *dev,
43294313 char *command, int total_len)
....@@ -6840,8 +6824,7 @@
68406824 }
68416825 }
68426826
6843
- chosen = wl_ext_autochannel(dev, ACS_DRV_BIT, band);
6844
- channel = wf_chspec_ctlchan(chosen);
6827
+ channel = wl_ext_autochannel(dev, ACS_DRV_BIT, band);
68456828 if (channel) {
68466829 acs_band = CHSPEC_BAND(channel);
68476830 goto done2;
....@@ -10283,17 +10266,8 @@
1028310266 exit:
1028410267 #ifdef DHD_SEND_HANG_PRIVCMD_ERRORS
1028510268 if (ret) {
10286
- /* Avoid incrementing priv_cmd_errors in case of unsupported feature
10287
- * or BUSY state specific to TWT commands
10288
- */
10289
- if (
10290
-#ifdef WL_TWT
10291
- ((ret != BCME_BUSY) &&
10292
- ((strnicmp(command, CMD_TWT_SETUP, strlen(CMD_TWT_SETUP)) == 0) ||
10293
- (strnicmp(command, CMD_TWT_TEARDOWN, strlen(CMD_TWT_TEARDOWN)) == 0) ||
10294
- (strnicmp(command, CMD_TWT_INFO, strlen(CMD_TWT_INFO)) == 0))) ||
10295
-#endif /* WL_TWT */
10296
- (ret != BCME_UNSUPPORTED)) {
10269
+ /* Avoid incrementing priv_cmd_errors in case of unsupported feature */
10270
+ if (ret != BCME_UNSUPPORTED) {
1029710271 wl_android_check_priv_cmd_errors(net);
1029810272 }
1029910273 } else {
....@@ -11173,31 +11147,18 @@
1117311147
1117411148 #ifdef WL_TWT
1117511149
11176
-static uint8
11177
-wl_twt_cmd2val(const char *name)
11178
-{
11179
- uint i;
11180
-
11181
- for (i = 0; i < ARRAYSIZE(setup_cmd_val); i ++) {
11182
- if (strcmp(name, setup_cmd_val[i].name) == 0) {
11183
- return setup_cmd_val[i].val;
11184
- }
11185
- }
11186
-
11187
- return WL_TWT_CMD_INVAL;
11188
-}
11189
-
1119011150 static int
1119111151 wl_android_twt_setup(struct net_device *ndev, char *command, int total_len)
1119211152 {
11193
- wl_twt_setup_t val;
11194
- s32 bw = 0;
11153
+ wl_twt_config_t val;
11154
+ s32 bw;
1119511155 char *token, *pos;
1119611156 u8 mybuf[WLC_IOCTL_SMLEN] = {0};
1119711157 u8 resp_buf[WLC_IOCTL_SMLEN] = {0};
11158
+ u64 twt;
1119811159 uint8 *rem = mybuf;
1119911160 uint16 rem_len = sizeof(mybuf);
11200
- uint8 tmp;
11161
+ int32 val32;
1120111162
1120211163 WL_DBG_MEM(("Enter. cmd:%s\n", command));
1120311164
....@@ -11211,26 +11172,16 @@
1121111172 val.version = WL_TWT_SETUP_VER;
1121211173 val.length = sizeof(val.version) + sizeof(val.length);
1121311174
11214
- val.desc.bid = WL_TWT_INV_BCAST_ID;
11215
- val.desc.flow_id = WL_TWT_INV_FLOW_ID;
11216
- val.desc.btwt_persistence = WL_TWT_INFINITE_BTWT_PERSIST;
11217
- val.desc.wake_type = WL_TWT_TIME_TYPE_AUTO;
11175
+ /* Default values, Overide Below */
11176
+ val.desc.wake_time_h = 0xFFFFFFFF;
11177
+ val.desc.wake_time_l = 0xFFFFFFFF;
11178
+ val.desc.wake_int_min = 0xFFFFFFFF;
11179
+ val.desc.wake_int_max = 0xFFFFFFFF;
11180
+ val.desc.wake_dur_min = 0xFFFFFFFF;
11181
+ val.desc.wake_dur_max = 0xFFFFFFFF;
11182
+ val.desc.avg_pkt_num = 0xFFFFFFFF;
1121811183
1121911184 pos = command + sizeof(CMD_TWT_SETUP);
11220
-
11221
- /* setup_cmd */
11222
- token = strsep((char**)&pos, " ");
11223
- if (!token) {
11224
- ANDROID_ERROR(("Mandaory param setup_cmd not present\n"));
11225
- bw = -EINVAL;
11226
- goto exit;
11227
- }
11228
-
11229
- val.desc.setup_cmd = wl_twt_cmd2val(token);
11230
- if (val.desc.setup_cmd == WL_TWT_CMD_INVAL) {
11231
- ANDROID_ERROR(("Unrecognized TWT Setup command '%s'\n", token));
11232
- }
11233
- ANDROID_INFO(("TWT_SETUP val.desc.setup_cmd %s\n", token));
1123411185
1123511186 /* negotiation_type */
1123611187 token = strsep((char**)&pos, " ");
....@@ -11239,101 +11190,108 @@
1123911190 bw = -EINVAL;
1124011191 goto exit;
1124111192 }
11242
- val.desc.negotiation_type = htod32((u32)bcm_atoi(token));
11243
- ANDROID_INFO(("TWT_SETUP val.desc.negotiation_type %d\n", val.desc.negotiation_type));
11193
+ val.desc.negotiation_type = htod32((u32)bcm_atoi(token));
1124411194
11245
- if (pos != NULL) {
11246
- ANDROID_INFO(("TWT_SETUP string %s\n", pos));
11247
- while ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11248
- ANDROID_INFO(("TWT_SETUP token is %s\n", token));
11195
+ /* Wake Duration */
11196
+ token = strsep((char**)&pos, " ");
11197
+ if (!token) {
11198
+ ANDROID_ERROR(("Mandatory param wake Duration not present\n"));
11199
+ bw = -EINVAL;
11200
+ goto exit;
11201
+ }
11202
+ val.desc.wake_dur = htod32((u32)bcm_atoi(token));
1124911203
11250
- if (!strnicmp(token, "u", 1)) {
11251
- val.desc.flow_flags |= WL_TWT_FLOW_FLAG_UNANNOUNCED;
11252
- }
11253
- else if (!strnicmp(token, "t", 1)) {
11254
- val.desc.flow_flags |= WL_TWT_FLOW_FLAG_TRIGGER;
11255
- }
11256
- else if (!strnicmp(token, "n", 1)) {
11257
- val.desc.flow_flags |= WL_TWT_FLOW_FLAG_UNSOLICITED;
11258
- }
11259
- else if (!strnicmp(token, "p", 1)) {
11260
- token++;
11261
- val.desc.btwt_persistence = (int)simple_strtol(token, NULL, 0);
11262
- ANDROID_INFO(("TWT_SETUP broadcast persistence %d\n",
11263
- val.desc.btwt_persistence));
11264
- }
11265
- /* Wake Duration */
11266
- else if (!strnicmp(token, "-d", 2)) {
11267
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11268
- val.desc.wake_dur = (int)simple_strtol(token, NULL, 0);
11269
- ANDROID_INFO(("TWT_SETUP val.desc.wake_dur %d\n",
11270
- val.desc.wake_dur));
11271
- }
11272
- }
11273
- /* Wake Interval */
11274
- else if (!strnicmp(token, "-i", 2)) {
11275
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11276
- val.desc.wake_int = (int)simple_strtol(token, NULL, 0);
11277
- ANDROID_INFO(("TWT_SETUP val.desc.wake_int %d\n",
11278
- val.desc.wake_int));
11279
- }
11280
- }
11281
- /* flow id */
11282
- else if (!strnicmp(token, "-f", 2)) {
11283
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11284
- val.desc.flow_id = (int)simple_strtol(token, NULL, 0);
11285
- ANDROID_INFO(("TWT_SETUP val.desc.flow_id %d\n",
11286
- val.desc.flow_id));
11287
- }
11288
- }
11289
- else if (!strnicmp(token, "-b", 2)) {
11290
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11291
- val.desc.bid = (int)simple_strtol(token, NULL, 0);
11292
- ANDROID_INFO(("TWT_SETUP val.desc.bid %d\n", val.desc.bid));
11293
- }
11294
- }
11295
- else if (!strnicmp(token, "-r", 2)) {
11296
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11297
- tmp = (int)simple_strtol(token, NULL, 0);
11298
- if (tmp > TWT_BCAST_FRAME_RECOMM_3) {
11299
- bw = -EINVAL;
11300
- goto exit;
11301
- }
11302
- val.desc.bid = tmp;
11303
- ANDROID_INFO(("TWT_SETUP frame recommendation %d\n",
11304
- val.desc.frame_recomm));
11305
- }
11306
- }
11307
- else if (!strnicmp(token, "-s", 2)) {
11308
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11309
- val.desc.duty_cycle_min =
11310
- (int)simple_strtol(token, NULL, 0);
11311
- ANDROID_INFO(("TWT_SETUP duty_cycle_min %d\n",
11312
- val.desc.duty_cycle_min));
11313
- }
11314
- }
11315
- else if (!strnicmp(token, "-v", 2)) {
11316
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11317
- val.desc.wake_int_max = (int)simple_strtol(token, NULL, 0);
11318
- ANDROID_INFO(("TWT_SETUP wake_int_max %d\n",
11319
- val.desc.wake_int_max));
11320
- }
11321
- }
11322
- /* a peer_address */
11323
- else if (!strnicmp(token, "-a", 2)) {
11324
- if ((token = bcmstrtok(&pos, " ", 0)) != NULL) {
11325
- if (!bcm_ether_atoe(token, &val.peer)) {
11326
- ANDROID_ERROR(("%s : Malformed peer addr\n",
11327
- __FUNCTION__));
11328
- bw = -EINVAL;
11329
- goto exit;
11330
- }
11331
- }
11332
- }
11204
+ /* Wake interval */
11205
+ token = strsep((char**)&pos, " ");
11206
+ if (!token) {
11207
+ ANDROID_ERROR(("Mandaory param Wake Interval not present\n"));
11208
+ bw = -EINVAL;
11209
+ goto exit;
11210
+ }
11211
+ val.desc.wake_int = htod32((u32)bcm_atoi(token));
11212
+
11213
+ /* Wake Time parameter */
11214
+ token = strsep((char**)&pos, " ");
11215
+ if (!token) {
11216
+ ANDROID_ERROR(("No Wake Time parameter provided, using default\n"));
11217
+ } else {
11218
+ twt = (u64)bcm_atoi(token);
11219
+ val32 = htod32((u32)(twt >> 32));
11220
+ if ((val32 != -1) && ((int32)(htod32((u32)twt)) != -1)) {
11221
+ val.desc.wake_time_h = htod32((u32)(twt >> 32));
11222
+ val.desc.wake_time_l = htod32((u32)twt);
1133311223 }
1133411224 }
1133511225
11336
- bw = bcm_pack_xtlv_entry(&rem, &rem_len, WL_TWT_CMD_SETUP,
11226
+ /* Minimum allowed Wake interval */
11227
+ token = strsep((char**)&pos, " ");
11228
+ if (!token) {
11229
+ ANDROID_ERROR(("No Minimum allowed Wake interval provided, using default\n"));
11230
+ } else {
11231
+ val32 = htod32((u32)bcm_atoi(token));
11232
+ if (val32 != -1) {
11233
+ val.desc.wake_int_min = htod32((u32)bcm_atoi(token));
11234
+ }
11235
+ }
11236
+
11237
+ /* Max Allowed Wake interval */
11238
+ token = strsep((char**)&pos, " ");
11239
+ if (!token) {
11240
+ ANDROID_ERROR(("Maximum allowed Wake interval not provided, using default\n"));
11241
+ } else {
11242
+ val32 = htod32((u32)bcm_atoi(token));
11243
+ if (val32 != -1) {
11244
+ val.desc.wake_int_max = htod32((u32)bcm_atoi(token));
11245
+ }
11246
+ }
11247
+
11248
+ /* Minimum allowed Wake duration */
11249
+ token = strsep((char**)&pos, " ");
11250
+ if (!token) {
11251
+ ANDROID_ERROR(("Maximum allowed Wake duration not provided, using default\n"));
11252
+ } else {
11253
+ val32 = htod32((u32)bcm_atoi(token));
11254
+ if (val32 != -1) {
11255
+ val.desc.wake_dur_min = htod32((u32)bcm_atoi(token));
11256
+ }
11257
+ }
11258
+
11259
+ /* Maximum allowed Wake duration */
11260
+ token = strsep((char**)&pos, " ");
11261
+ if (!token) {
11262
+ ANDROID_ERROR(("Maximum allowed Wake duration not provided, using default\n"));
11263
+ } else {
11264
+ val32 = htod32((u32)bcm_atoi(token));
11265
+ if (val32 != -1) {
11266
+ val.desc.wake_dur_max = htod32((u32)bcm_atoi(token));
11267
+ }
11268
+ }
11269
+
11270
+ /* Average number of packets */
11271
+ token = strsep((char**)&pos, " ");
11272
+ if (!token) {
11273
+ ANDROID_ERROR(("Average number of packets not provided, using default\n"));
11274
+ } else {
11275
+ val32 = htod32((u32)bcm_atoi(token));
11276
+ if (val32 != -1) {
11277
+ val.desc.avg_pkt_num = htod32((u32)bcm_atoi(token));
11278
+ }
11279
+ }
11280
+
11281
+ /* a peer_address */
11282
+ token = strsep((char**)&pos, " ");
11283
+ if (!token) {
11284
+ ANDROID_ERROR(("Average number of packets not provided, using default\n"));
11285
+ } else {
11286
+ /* get peer mac */
11287
+ if (!bcm_ether_atoe(token, &val.peer)) {
11288
+ ANDROID_ERROR(("%s : Malformed peer addr\n", __FUNCTION__));
11289
+ bw = BCME_ERROR;
11290
+ goto exit;
11291
+ }
11292
+ }
11293
+
11294
+ bw = bcm_pack_xtlv_entry(&rem, &rem_len, WL_TWT_CMD_CONFIG,
1133711295 sizeof(val), (uint8 *)&val, BCM_XTLV_OPTION_ALIGN32);
1133811296 if (bw != BCME_OK) {
1133911297 goto exit;
....@@ -11342,7 +11300,7 @@
1134211300 bw = wldev_iovar_setbuf(ndev, "twt",
1134311301 mybuf, sizeof(mybuf) - rem_len, resp_buf, WLC_IOCTL_SMLEN, NULL);
1134411302 if (bw < 0) {
11345
- ANDROID_ERROR(("twt setup failed. ret:%d\n", bw));
11303
+ ANDROID_ERROR(("twt config set failed. ret:%d\n", bw));
1134611304 }
1134711305 exit:
1134811306 return bw;
....@@ -11950,116 +11908,6 @@
1195011908 }
1195111909 exit:
1195211910 return bw;
11953
-}
11954
-
11955
-/* wl twt stats result display version 2 */
11956
-static int
11957
-wl_android_twt_stats_display_v2(wl_twt_stats_v2_t *stats, char *command, int total_len)
11958
-{
11959
- u32 i;
11960
- wl_twt_peer_stats_v2_t *peer_stats;
11961
- int rem_len = 0, bytes_written = 0;
11962
-
11963
- rem_len = total_len;
11964
- for (i = 0; i < stats->num_stats; i++) {
11965
- peer_stats = &stats->peer_stats_list[i];
11966
-
11967
- bytes_written = scnprintf(command, rem_len,
11968
- "%u %u %u %u %u",
11969
- peer_stats->eosp_dur_avg, peer_stats->tx_pkts_avg, peer_stats->rx_pkts_avg,
11970
- peer_stats->tx_pkt_sz_avg, peer_stats->rx_pkt_sz_avg);
11971
- CHECK_SCNPRINTF_RET_VAL(bytes_written);
11972
- command += bytes_written;
11973
- rem_len -= bytes_written;
11974
- }
11975
-
11976
- if ((total_len - rem_len) > 0) {
11977
- return (total_len - rem_len);
11978
- } else {
11979
- return BCME_ERROR;
11980
- }
11981
-}
11982
-
11983
-static int
11984
-wl_android_twt_stats(struct net_device *ndev, char *command, int total_len)
11985
-{
11986
- wl_twt_stats_cmd_v1_t query;
11987
- wl_twt_stats_v2_t stats_v2;
11988
- int ret = BCME_OK;
11989
- char iovbuf[WLC_IOCTL_SMLEN] = {0, };
11990
- uint8 *pxtlv = NULL;
11991
- uint8 *iovresp = NULL;
11992
- char *token, *pos;
11993
- uint16 buflen = 0, bufstart = 0;
11994
- struct bcm_cfg80211 *cfg = wl_get_cfg(ndev);
11995
-
11996
- WL_DBG_MEM(("Enter. cmd:%s\n", command));
11997
-
11998
- bzero(&query, sizeof(query));
11999
- query.version = WL_TWT_STATS_CMD_VERSION_1;
12000
- query.length = sizeof(query) - OFFSETOF(wl_twt_stats_cmd_v1_t, peer);
12001
-
12002
- /* Default values, Overide Below */
12003
- query.num_bid = 0xFF;
12004
- query.num_fid = 0xFF;
12005
-
12006
- if (!(strnicmp(command, CMD_TWT_CLR_STATS, strlen(CMD_TWT_CLR_STATS)))) {
12007
- query.flags |= WL_TWT_STATS_CMD_FLAGS_RESET;
12008
- pos = command + sizeof(CMD_TWT_CLR_STATS);
12009
- } else if (!(strnicmp(command, CMD_TWT_GET_STATS, strlen(CMD_TWT_GET_STATS)))) {
12010
- pos = command + sizeof(CMD_TWT_GET_STATS);
12011
- }
12012
-
12013
- /* Config ID */
12014
- token = strsep((char**)&pos, " ");
12015
- if (!token) {
12016
- ANDROID_ERROR(("Mandatory param config ID not present\n"));
12017
- ret = -EINVAL;
12018
- goto exit;
12019
- }
12020
- query.configID = (u8)bcm_atoi(token);
12021
-
12022
- iovresp = (uint8 *)MALLOCZ(cfg->osh, WLC_IOCTL_MEDLEN);
12023
- if (iovresp == NULL) {
12024
- ANDROID_ERROR(("%s: iov resp memory alloc exited\n", __FUNCTION__));
12025
- goto exit;
12026
- }
12027
-
12028
- buflen = bufstart = WLC_IOCTL_SMLEN;
12029
- pxtlv = (uint8 *)iovbuf;
12030
- ret = bcm_pack_xtlv_entry(&pxtlv, &buflen, WL_TWT_CMD_STATS,
12031
- sizeof(query), (uint8 *)&query, BCM_XTLV_OPTION_ALIGN32);
12032
- if (ret != BCME_OK) {
12033
- ANDROID_ERROR(("%s : Error return during pack xtlv :%d\n", __FUNCTION__, ret));
12034
- goto exit;
12035
- }
12036
-
12037
- if ((ret = wldev_iovar_getbuf(ndev, "twt", iovbuf, bufstart-buflen,
12038
- iovresp, WLC_IOCTL_MEDLEN, NULL))) {
12039
- ANDROID_ERROR(("twt status failed with err=%d \n", ret));
12040
- goto exit;
12041
- }
12042
-
12043
- (void)memcpy_s(&stats_v2, sizeof(stats_v2), iovresp, sizeof(stats_v2));
12044
-
12045
- if (dtoh16(stats_v2.version) == WL_TWT_STATS_VERSION_2) {
12046
- if (!(strnicmp(command, CMD_TWT_GET_STATS, strlen(CMD_TWT_GET_STATS)))) {
12047
- ANDROID_ERROR(("stats query ver %d, \n", dtoh16(stats_v2.version)));
12048
- ret = wl_android_twt_stats_display_v2((wl_twt_stats_v2_t*)iovresp,
12049
- command, total_len);
12050
- }
12051
- } else {
12052
- ret = BCME_UNSUPPORTED;
12053
- ANDROID_ERROR(("Version 1 unsupported. ver %d, \n", dtoh16(stats_v2.version)));
12054
- goto exit;
12055
- }
12056
-
12057
-exit:
12058
- if (iovresp) {
12059
- MFREE(cfg->osh, iovresp, WLC_IOCTL_MEDLEN);
12060
- }
12061
-
12062
- return ret;
1206311911 }
1206411912 #endif /* WL_TWT */
1206511913
....@@ -13027,10 +12875,6 @@
1302712875 }
1302812876 else if (strnicmp(command, CMD_TWT_CAPABILITY, strlen(CMD_TWT_CAPABILITY)) == 0) {
1302912877 bytes_written = wl_android_twt_cap(net, command, priv_cmd.total_len);
13030
- }
13031
- else if ((strnicmp(command, CMD_TWT_GET_STATS, strlen(CMD_TWT_GET_STATS)) == 0) ||
13032
- (strnicmp(command, CMD_TWT_CLR_STATS, strlen(CMD_TWT_CLR_STATS)) == 0)) {
13033
- bytes_written = wl_android_twt_stats(net, command, priv_cmd.total_len);
1303412878 }
1303512879 #endif /* WL_TWT */
1303612880 #ifdef WL_P2P_6G