return mode;\r
}\r
\r
+void\r
+dhd_conf_set_eapol_status(dhd_pub_t *dhd, char *ifname, char *dump_data)\r
+{\r
+ unsigned char type;\r
+ int pair, ack, mic, kerr, req, sec, install;\r
+ unsigned short us_tmp;\r
+\r
+ if (!(dhd->conf->in4way&DONT_DELETE_GC_AFTER_WPS) || strncmp(ifname, "p2p", 3)) {\r
+ return;\r
+ }\r
+\r
+ type = dump_data[15];\r
+ if ((type == 0) && (dump_data[22] == 254) && (dump_data[30] == 5)) {\r
+ dhd->conf->eapol_status = EAPOL_STATUS_WPS_DONE;\r
+ CONFIG_TRACE(("EAP Packet, WSC Done\n"));\r
+ } else if (type == 3 && dump_data[18] == 2) {\r
+ us_tmp = (dump_data[19] << 8) | dump_data[20];\r
+ pair = 0 != (us_tmp & 0x08);\r
+ ack = 0 != (us_tmp & 0x80);\r
+ mic = 0 != (us_tmp & 0x100);\r
+ kerr = 0 != (us_tmp & 0x400);\r
+ req = 0 != (us_tmp & 0x800);\r
+ sec = 0 != (us_tmp & 0x200);\r
+ install = 0 != (us_tmp & 0x40);\r
+ if (pair && !install && !ack && mic && sec && !req && !kerr) {\r
+ dhd->conf->eapol_status = EAPOL_STATUS_M4;\r
+ CONFIG_TRACE(("EAPOL Packet, 4-way handshake, M4\n"));\r
+ }\r
+ }\r
+\r
+ return;\r
+}\r
+\r
#ifdef PROP_TXSTATUS\r
int\r
dhd_conf_get_disable_proptx(dhd_pub_t *dhd)\r
conf->sd_f2_blocksize = (int)simple_strtol(data, NULL, 10);\r
printf("%s: sd_f2_blocksize = %d\n", __FUNCTION__, conf->sd_f2_blocksize);\r
}\r
+#if defined(HW_OOB)\r
else if (!strncmp("oob_enabled_later=", full_param, len_param)) {\r
if (!strncmp(data, "0", 1))\r
conf->oob_enabled_later = FALSE;\r
conf->oob_enabled_later = TRUE;\r
printf("%s: oob_enabled_later = %d\n", __FUNCTION__, conf->oob_enabled_later);\r
}\r
+#endif\r
else if (!strncmp("dpc_cpucore=", full_param, len_param)) {\r
conf->dpc_cpucore = (int)simple_strtol(data, NULL, 10);\r
printf("%s: dpc_cpucore = %d\n", __FUNCTION__, conf->dpc_cpucore);\r
printf("%s: deferred_tx_len = %d\n", __FUNCTION__, conf->deferred_tx_len);\r
}\r
else if (!strncmp("txctl_tmo_fix=", full_param, len_param)) {\r
- conf->txctl_tmo_fix = (int)simple_strtol(data, NULL, 10);\r
+ conf->txctl_tmo_fix = (int)simple_strtol(data, NULL, 0);\r
printf("%s: txctl_tmo_fix = %d\n", __FUNCTION__, conf->txctl_tmo_fix);\r
}\r
else if (!strncmp("tx_max_offset=", full_param, len_param)) {\r
conf->in4way = (int)simple_strtol(data, NULL, 0);\r
printf("%s: in4way = 0x%x\n", __FUNCTION__, conf->in4way);\r
}\r
+ else if (!strncmp("max_wait_gc_time=", full_param, len_param)) {\r
+ conf->max_wait_gc_time = (int)simple_strtol(data, NULL, 0);\r
+ printf("%s: max_wait_gc_time = %d\n", __FUNCTION__, conf->max_wait_gc_time);\r
+ }\r
else if (!strncmp("wl_preinit=", full_param, len_param)) {\r
if (!(conf->wl_preinit = kmalloc(len_param+1, GFP_KERNEL))) {\r
CONFIG_ERROR(("%s: kmalloc failed\n", __FUNCTION__));\r
char name[32], *pch, *pick_tmp, *pick_tmp2;\r
\r
/* Process wl_preinit:\r
- * wl_preinit=[cmd]/[val], [cmd]/[val] \\r
- * Ex: wl_preinit=86/0, mpc/0\r
+ * wl_preinit=[cmd]=[val], [cmd]=[val]\r
+ * Ex: wl_preinit=86=0, mpc=0\r
*/\r
pick_tmp = data;\r
while (pick_tmp && (pick_tmp2 = bcmstrtok(&pick_tmp, ",", 0)) != NULL) {\r
conf->txglom_ext = FALSE;\r
conf->tx_max_offset = 0;\r
conf->txglomsize = SDPCM_DEFGLOM_SIZE;\r
- conf->txctl_tmo_fix = 300;\r
+ conf->txctl_tmo_fix = -1;\r
conf->txglom_mode = SDPCM_TXGLOM_CPY;\r
conf->deferred_tx_len = 0;\r
conf->dhd_txminmax = 1;\r
conf->txinrx_thres = -1;\r
conf->sd_f2_blocksize = 0;\r
+#if defined(HW_OOB)\r
conf->oob_enabled_later = FALSE;\r
+#endif\r
conf->orphan_move = 0;\r
#endif\r
#ifdef BCMPCIE\r
conf->ctrl_resched = 2;\r
conf->dhd_ioctl_timeout_msec = 0;\r
conf->in4way = NO_SCAN_IN4WAY;\r
+ conf->max_wait_gc_time = 300;\r
#ifdef ISAM_PREINIT\r
memset(conf->isam_init, 0, sizeof(conf->isam_init));\r
memset(conf->isam_config, 0, sizeof(conf->isam_config));\r
#ifdef CUSTOMER_HW_AMLOGIC\r
dhd_slpauto = FALSE;\r
#endif\r
- if (conf->chip == BCM4354_CHIP_ID || conf->chip == BCM4356_CHIP_ID ||\r
- conf->chip == BCM4371_CHIP_ID || conf->chip == BCM43569_CHIP_ID ||\r
- conf->chip == BCM4359_CHIP_ID || conf->chip == BCM4362_CHIP_ID) {\r
+ if (conf->chip == BCM4335_CHIP_ID || conf->chip == BCM4339_CHIP_ID ||\r
+ conf->chip == BCM4354_CHIP_ID || conf->chip == BCM4356_CHIP_ID ||\r
+ conf->chip == BCM4345_CHIP_ID || conf->chip == BCM4371_CHIP_ID ||\r
+ conf->chip == BCM43569_CHIP_ID || conf->chip == BCM4359_CHIP_ID ||\r
+ conf->chip == BCM4362_CHIP_ID) {\r
#ifdef DHDTCPACK_SUPPRESS\r
#ifdef BCMSDIO\r
conf->tcpack_sup_mode = TCPACK_SUP_REPLACE;\r
conf->dhd_txminmax = -1;\r
conf->txinrx_thres = 128;\r
conf->sd_f2_blocksize = CUSTOM_SDIO_F2_BLKSIZE;\r
- conf->oob_enabled_later = TRUE;\r
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0))\r
conf->orphan_move = 1;\r
#else\r