wifi: update broadcom wifi driver bcmdhd to 1.201.34.2
authorhwg <hwg@rock-chips.com>
Thu, 5 Mar 2015 00:46:05 +0000 (08:46 +0800)
committerhwg <hwg@rock-chips.com>
Thu, 5 Mar 2015 00:46:29 +0000 (08:46 +0800)
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_linux.c
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_linux_platdev.c
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/bcmsdh.h
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/epivers.h
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/hndrte_armtrap.h [deleted file]
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/hndrte_cons.h [deleted file]
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/rkversion.c
drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_cfg80211.c

index 8ca3b8aeac38f7cd0eca54d42044c16eef35592f..98667ca39e1c5a073a083166cd0e11a2038750b9 100755 (executable)
@@ -352,7 +352,8 @@ int bcmsdh_oob_intr_register(bcmsdh_info_t *bcmsdh, bcmsdh_cb_fn_t oob_irq_handl
 #endif
        bcmsdh_osinfo->oob_irq_enabled = TRUE;
        bcmsdh_osinfo->oob_irq_registered = TRUE;
-       return err;
+
+       return 0;
 }
 
 void bcmsdh_oob_intr_unregister(bcmsdh_info_t *bcmsdh)
@@ -377,7 +378,7 @@ void bcmsdh_oob_intr_unregister(bcmsdh_info_t *bcmsdh)
        free_irq(bcmsdh_osinfo->oob_irq_num, bcmsdh);
        bcmsdh_osinfo->oob_irq_registered = FALSE;
 }
-#endif 
+#endif
 
 /* Module parameters specific to each host-controller driver */
 
index 4c31ca721e6282292f6ae3b4b9ec90c506f81ec9..ed1477a58f0b4ceb79d0dfd31c15849175def7e0 100755 (executable)
@@ -1068,6 +1068,169 @@ dhd_conf_read_log_level(dhd_pub_t *dhd, char *bufp, uint len)
        }\r
 }\r
 \r
+void\r
+dhd_conf_read_wme_ac_params(dhd_pub_t *dhd, char *bufp, uint len)\r
+{\r
+       uint len_val;\r
+       char pick[MAXSZ_BUF];\r
+       struct dhd_conf *conf = dhd->conf;\r
+\r
+       /* Process WMM parameters */\r
+       memset(pick, 0, MAXSZ_BUF);\r
+       len_val = process_config_vars(bufp, len, pick, "force_wme_ac=");\r
+       if (len_val) {\r
+               conf->force_wme_ac = (int)simple_strtol(pick, NULL, 10);\r
+               printf("%s: force_wme_ac = %d\n", __FUNCTION__, conf->force_wme_ac);\r
+       }\r
+\r
+       if (conf->force_wme_ac) {\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "bk_aifsn=");\r
+               if (len_val) {\r
+                       conf->wme.aifsn[AC_BK] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_BK aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_BK]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "bk_cwmin=");\r
+               if (len_val) {\r
+                       conf->wme.cwmin[AC_BK] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_BK cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_BK]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "bk_cwmax=");\r
+               if (len_val) {\r
+                       conf->wme.cwmax[AC_BK] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_BK cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_BK]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "be_aifsn=");\r
+               if (len_val) {\r
+                       conf->wme.aifsn[AC_BE] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_BE aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_BE]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "be_cwmin=");\r
+               if (len_val) {\r
+                       conf->wme.cwmin[AC_BE] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_BE cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_BE]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "be_cwmax=");\r
+               if (len_val) {\r
+                       conf->wme.cwmax[AC_BE] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_BE cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_BE]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "vi_aifsn=");\r
+               if (len_val) {\r
+                       conf->wme.aifsn[AC_VI] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_VI aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_VI]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "vi_cwmin=");\r
+               if (len_val) {\r
+                       conf->wme.cwmin[AC_VI] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_VI cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_VI]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "vi_cwmax=");\r
+               if (len_val) {\r
+                       conf->wme.cwmax[AC_VI] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_VI cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_VI]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "vo_aifsn=");\r
+               if (len_val) {\r
+                       conf->wme.aifsn[AC_VO] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_VO aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_VO]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "vo_cwmin=");\r
+               if (len_val) {\r
+                       conf->wme.cwmin[AC_VO] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_VO cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_VO]);\r
+               }\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "vo_cwmax=");\r
+               if (len_val) {\r
+                       conf->wme.cwmax[AC_VO] = (int)simple_strtol(pick, NULL, 10);\r
+                       printf("%s: AC_VO cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_VO]);\r
+               }\r
+       }\r
+\r
+}\r
+\r
+void\r
+dhd_conf_read_roam_params(dhd_pub_t *dhd, char *bufp, uint len)\r
+{\r
+       uint len_val;\r
+       char pick[MAXSZ_BUF];\r
+       struct dhd_conf *conf = dhd->conf;\r
+       \r
+       /* Process roam */\r
+       memset(pick, 0, MAXSZ_BUF);\r
+       len_val = process_config_vars(bufp, len, pick, "roam_off=");\r
+       if (len_val) {\r
+               if (!strncmp(pick, "0", len_val))\r
+                       conf->roam_off = 0;\r
+               else\r
+                       conf->roam_off = 1;\r
+               printf("%s: roam_off = %d\n", __FUNCTION__, conf->roam_off);\r
+       }\r
+\r
+       memset(pick, 0, MAXSZ_BUF);\r
+       len_val = process_config_vars(bufp, len, pick, "roam_off_suspend=");\r
+       if (len_val) {\r
+               if (!strncmp(pick, "0", len_val))\r
+                       conf->roam_off_suspend = 0;\r
+               else\r
+                       conf->roam_off_suspend = 1;\r
+               printf("%s: roam_off_suspend = %d\n", __FUNCTION__,\r
+                       conf->roam_off_suspend);\r
+       }\r
+\r
+       if (!conf->roam_off || !conf->roam_off_suspend) {\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "roam_trigger=");\r
+               if (len_val)\r
+                       conf->roam_trigger[0] = (int)simple_strtol(pick, NULL, 10);\r
+               printf("%s: roam_trigger = %d\n", __FUNCTION__,\r
+                       conf->roam_trigger[0]);\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "roam_scan_period=");\r
+               if (len_val)\r
+                       conf->roam_scan_period[0] = (int)simple_strtol(pick, NULL, 10);\r
+               printf("%s: roam_scan_period = %d\n", __FUNCTION__,\r
+                       conf->roam_scan_period[0]);\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "roam_delta=");\r
+               if (len_val)\r
+                       conf->roam_delta[0] = (int)simple_strtol(pick, NULL, 10);\r
+               printf("%s: roam_delta = %d\n", __FUNCTION__, conf->roam_delta[0]);\r
+\r
+               memset(pick, 0, MAXSZ_BUF);\r
+               len_val = process_config_vars(bufp, len, pick, "fullroamperiod=");\r
+               if (len_val)\r
+                       conf->fullroamperiod = (int)simple_strtol(pick, NULL, 10);\r
+               printf("%s: fullroamperiod = %d\n", __FUNCTION__,\r
+                       conf->fullroamperiod);\r
+       }\r
+\r
+}\r
+\r
 /*\r
  * [fw_by_mac]:\r
  * fw_by_mac=[fw_mac_num] \\r
@@ -1130,6 +1293,8 @@ dhd_conf_read_config(dhd_pub_t *dhd)
 \r
                /* Process log_level */\r
                dhd_conf_read_log_level(dhd, bufp, len);\r
+               dhd_conf_read_roam_params(dhd, bufp, len);\r
+               dhd_conf_read_wme_ac_params(dhd, bufp, len);\r
 \r
                /* Process fw_by_mac */\r
                memset(pick, 0, MAXSZ_BUF);\r
@@ -1280,57 +1445,6 @@ dhd_conf_read_config(dhd_pub_t *dhd)
                        printf("\n");\r
                }\r
 \r
-               /* Process roam */\r
-               memset(pick, 0, MAXSZ_BUF);\r
-               len_val = process_config_vars(bufp, len, pick, "roam_off=");\r
-               if (len_val) {\r
-                       if (!strncmp(pick, "0", len_val))\r
-                               conf->roam_off = 0;\r
-                       else\r
-                               conf->roam_off = 1;\r
-                       printf("%s: roam_off = %d\n", __FUNCTION__, conf->roam_off);\r
-               }\r
-\r
-               memset(pick, 0, MAXSZ_BUF);\r
-               len_val = process_config_vars(bufp, len, pick, "roam_off_suspend=");\r
-               if (len_val) {\r
-                       if (!strncmp(pick, "0", len_val))\r
-                               conf->roam_off_suspend = 0;\r
-                       else\r
-                               conf->roam_off_suspend = 1;\r
-                       printf("%s: roam_off_suspend = %d\n", __FUNCTION__,\r
-                               conf->roam_off_suspend);\r
-               }\r
-\r
-               if (!conf->roam_off || !conf->roam_off_suspend) {\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "roam_trigger=");\r
-                       if (len_val)\r
-                               conf->roam_trigger[0] = (int)simple_strtol(pick, NULL, 10);\r
-                       printf("%s: roam_trigger = %d\n", __FUNCTION__,\r
-                               conf->roam_trigger[0]);\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "roam_scan_period=");\r
-                       if (len_val)\r
-                               conf->roam_scan_period[0] = (int)simple_strtol(pick, NULL, 10);\r
-                       printf("%s: roam_scan_period = %d\n", __FUNCTION__,\r
-                               conf->roam_scan_period[0]);\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "roam_delta=");\r
-                       if (len_val)\r
-                               conf->roam_delta[0] = (int)simple_strtol(pick, NULL, 10);\r
-                       printf("%s: roam_delta = %d\n", __FUNCTION__, conf->roam_delta[0]);\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "fullroamperiod=");\r
-                       if (len_val)\r
-                               conf->fullroamperiod = (int)simple_strtol(pick, NULL, 10);\r
-                       printf("%s: fullroamperiod = %d\n", __FUNCTION__,\r
-                               conf->fullroamperiod);\r
-               }\r
-\r
                /* Process keep alive period */\r
                memset(pick, 0, MAXSZ_BUF);\r
                len_val = process_config_vars(bufp, len, pick, "keep_alive_period=");\r
@@ -1340,100 +1454,6 @@ dhd_conf_read_config(dhd_pub_t *dhd)
                                conf->keep_alive_period);\r
                }\r
 \r
-               /* Process WMM parameters */\r
-               memset(pick, 0, MAXSZ_BUF);\r
-               len_val = process_config_vars(bufp, len, pick, "force_wme_ac=");\r
-               if (len_val) {\r
-                       conf->force_wme_ac = (int)simple_strtol(pick, NULL, 10);\r
-                       printf("%s: force_wme_ac = %d\n", __FUNCTION__, conf->force_wme_ac);\r
-               }\r
-\r
-               if (conf->force_wme_ac) {\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "bk_aifsn=");\r
-                       if (len_val) {\r
-                               conf->wme.aifsn[AC_BK] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_BK aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_BK]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "bk_cwmin=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmin[AC_BK] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_BK cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_BK]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "bk_cwmax=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmax[AC_BK] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_BK cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_BK]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "be_aifsn=");\r
-                       if (len_val) {\r
-                               conf->wme.aifsn[AC_BE] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_BE aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_BE]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "be_cwmin=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmin[AC_BE] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_BE cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_BE]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "be_cwmax=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmax[AC_BE] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_BE cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_BE]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "vi_aifsn=");\r
-                       if (len_val) {\r
-                               conf->wme.aifsn[AC_VI] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_VI aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_VI]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "vi_cwmin=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmin[AC_VI] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_VI cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_VI]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "vi_cwmax=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmax[AC_VI] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_VI cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_VI]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "vo_aifsn=");\r
-                       if (len_val) {\r
-                               conf->wme.aifsn[AC_VO] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_VO aifsn = %d\n", __FUNCTION__, conf->wme.aifsn[AC_VO]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "vo_cwmin=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmin[AC_VO] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_VO cwmin = %d\n", __FUNCTION__, conf->wme.cwmin[AC_VO]);\r
-                       }\r
-\r
-                       memset(pick, 0, MAXSZ_BUF);\r
-                       len_val = process_config_vars(bufp, len, pick, "vo_cwmax=");\r
-                       if (len_val) {\r
-                               conf->wme.cwmax[AC_VO] = (int)simple_strtol(pick, NULL, 10);\r
-                               printf("%s: AC_VO cwmax = %d\n", __FUNCTION__, conf->wme.cwmax[AC_VO]);\r
-                       }\r
-               }\r
-\r
                /* Process STBC parameters */\r
                memset(pick, 0, MAXSZ_BUF);\r
                len_val = process_config_vars(bufp, len, pick, "stbc=");\r
index a0461c7b96ddf50a49977cdcf1f15aa2d5194459..6690e6e972a6997c89142260f10d3c4ff939d053 100755 (executable)
@@ -484,8 +484,8 @@ void wifi_ctrlfunc_unregister_drv(void)
                adapter = &dhd_wifi_platdata->adapters[0];
                if (is_power_on) {
                        wifi_platform_set_power(adapter, FALSE, WIFI_TURNOFF_DELAY);
-                       wifi_platform_bus_enumerate(adapter, FALSE);
                }
+               wifi_platform_bus_enumerate(adapter, FALSE);
        }
 #endif /* !defined(CONFIG_DTS) */
 
index aeb7dc944d5049a9e0d43df36df251e3e78c75e0..ac4444a32c4669ae431321b91d53b7f5e21739a2 100755 (executable)
@@ -19,7 +19,7 @@
 #define BCMSDH_INFO_VAL                0x0002 /* Info */
 extern const uint bcmsdh_msglevel;
 
-#define BCMSDH_ERROR(x)
+#define BCMSDH_ERROR(x) printf x
 #define BCMSDH_INFO(x)
 
 #if defined(BCMSDIO) && (defined(BCMSDIOH_STD) || defined(BCMSDIOH_BCM) || \
@@ -210,7 +210,7 @@ extern int bcmsdh_oob_intr_register(bcmsdh_info_t *bcmsdh, bcmsdh_cb_fn_t oob_ir
        void* oob_irq_handler_context);
 extern void bcmsdh_oob_intr_unregister(bcmsdh_info_t *sdh);
 extern void bcmsdh_oob_intr_set(bcmsdh_info_t *sdh, bool enable);
-#endif 
+#endif
 extern void bcmsdh_dev_pm_stay_awake(bcmsdh_info_t *sdh);
 extern void bcmsdh_dev_relax(bcmsdh_info_t *sdh);
 extern bool bcmsdh_dev_pm_enabled(bcmsdh_info_t *sdh);
index 40a740a3ff186f96dd2033d77e876d28130269eb..7e5c29e46d99d1c3932177acf1a3ccb8c81d0cf6 100755 (executable)
@@ -25,6 +25,6 @@
 #define EPI_VERSION_DEV                1.201.34
 
 /* Driver Version String, ASCII, 32 chars max */
-#define        EPI_VERSION_STR         "1.201.34.1 (r491657)"
+#define        EPI_VERSION_STR         "1.201.34.2 (r491657)"
 
 #endif /* _epivers_h_ */
diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/hndrte_armtrap.h b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/hndrte_armtrap.h
deleted file mode 100644 (file)
index 83adf38..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * HNDRTE arm trap handling.
- *
- * $Copyright Open Broadcom Corporation$
- *
- * $Id: hndrte_armtrap.h 261365 2011-05-24 20:42:23Z $
- */
-
-#ifndef        _hndrte_armtrap_h
-#define        _hndrte_armtrap_h
-
-
-/* ARM trap handling */
-
-/* Trap types defined by ARM (see arminc.h) */
-
-/* Trap locations in lo memory */
-#define        TRAP_STRIDE     4
-#define FIRST_TRAP     TR_RST
-#define LAST_TRAP      (TR_FIQ * TRAP_STRIDE)
-
-#if defined(__ARM_ARCH_4T__)
-#define        MAX_TRAP_TYPE   (TR_FIQ + 1)
-#elif defined(__ARM_ARCH_7M__)
-#define        MAX_TRAP_TYPE   (TR_ISR + ARMCM3_NUMINTS)
-#endif /* __ARM_ARCH_7M__ */
-
-/* The trap structure is defined here as offsets for assembly */
-#define        TR_TYPE         0x00
-#define        TR_EPC          0x04
-#define        TR_CPSR         0x08
-#define        TR_SPSR         0x0c
-#define        TR_REGS         0x10
-#define        TR_REG(n)       (TR_REGS + (n) * 4)
-#define        TR_SP           TR_REG(13)
-#define        TR_LR           TR_REG(14)
-#define        TR_PC           TR_REG(15)
-
-#define        TRAP_T_SIZE     80
-
-#ifndef        _LANGUAGE_ASSEMBLY
-
-#include <typedefs.h>
-
-typedef struct _trap_struct {
-       uint32          type;
-       uint32          epc;
-       uint32          cpsr;
-       uint32          spsr;
-       uint32          r0;     /* a1 */
-       uint32          r1;     /* a2 */
-       uint32          r2;     /* a3 */
-       uint32          r3;     /* a4 */
-       uint32          r4;     /* v1 */
-       uint32          r5;     /* v2 */
-       uint32          r6;     /* v3 */
-       uint32          r7;     /* v4 */
-       uint32          r8;     /* v5 */
-       uint32          r9;     /* sb/v6 */
-       uint32          r10;    /* sl/v7 */
-       uint32          r11;    /* fp/v8 */
-       uint32          r12;    /* ip */
-       uint32          r13;    /* sp */
-       uint32          r14;    /* lr */
-       uint32          pc;     /* r15 */
-} trap_t;
-
-#endif /* !_LANGUAGE_ASSEMBLY */
-
-#endif /* _hndrte_armtrap_h */
diff --git a/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/hndrte_cons.h b/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/include/hndrte_cons.h
deleted file mode 100644 (file)
index 0af5d88..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Console support for hndrte.
- *
- * $Copyright Open Broadcom Corporation$
- *
- * $Id: hndrte_cons.h 383834 2013-02-07 23:21:51Z $
- */
-#ifndef        _HNDRTE_CONS_H
-#define        _HNDRTE_CONS_H
-
-#include <typedefs.h>
-
-#define CBUF_LEN       (128)
-
-#define LOG_BUF_LEN    1024
-
-typedef struct {
-       uint32          buf;            /* Can't be pointer on (64-bit) hosts */
-       uint            buf_size;
-       uint            idx;
-       char            *_buf_compat;   /* redundant pointer for backward compat. */
-} hndrte_log_t;
-
-typedef struct {
-       /* Virtual UART
-        *   When there is no UART (e.g. Quickturn), the host should write a complete
-        *   input line directly into cbuf and then write the length into vcons_in.
-        *   This may also be used when there is a real UART (at risk of conflicting with
-        *   the real UART).  vcons_out is currently unused.
-        */
-       volatile uint   vcons_in;
-       volatile uint   vcons_out;
-
-       /* Output (logging) buffer
-        *   Console output is written to a ring buffer log_buf at index log_idx.
-        *   The host may read the output when it sees log_idx advance.
-        *   Output will be lost if the output wraps around faster than the host polls.
-        */
-       hndrte_log_t    log;
-
-       /* Console input line buffer
-        *   Characters are read one at a time into cbuf until <CR> is received, then
-        *   the buffer is processed as a command line.  Also used for virtual UART.
-        */
-       uint            cbuf_idx;
-       char            cbuf[CBUF_LEN];
-} hndrte_cons_t;
-
-hndrte_cons_t *hndrte_get_active_cons_state(void);
-
-#endif /* _HNDRTE_CONS_H */
index d33563c82200ec50e0a55bc35090ae6d590c4495..31ad1344544815e4183d5985104a1c2d590c8140 100755 (executable)
@@ -10,7 +10,7 @@
  */
 
 
-const char RKWIFI_DRV_VERSION[] = "5.00.WFD.OOB.64bit";
+const char RKWIFI_DRV_VERSION[] = "5.20.WFD.OOB.64bit";
 
 const char WIFI_MODULE_NAME[] = "";
 const char CONFIG_BCMDHD_FW_PATH[] = "";
index bc01cb028cea94bf12f55af73399153f0b7b0a3f..7a182b0f159fe479c94250e9cf243bc3bcbacdd3 100755 (executable)
@@ -10448,7 +10448,7 @@ static void wl_scan_timeout(unsigned long data)
 {
        wl_event_msg_t msg;
        struct bcm_cfg80211 *cfg = (struct bcm_cfg80211 *)data;
-       struct net_device *dev = bcmcfg_to_prmry_ndev(cfg);
+//     struct net_device *dev = bcmcfg_to_prmry_ndev(cfg);
 
        if (!(cfg->scan_request)) {
                WL_ERR(("timer expired but no scan request\n"));
@@ -10462,10 +10462,10 @@ static void wl_scan_timeout(unsigned long data)
        wl_cfg80211_event(bcmcfg_to_prmry_ndev(cfg), &msg, NULL);
 
        // terence 20130729: workaround to fix out of memory in firmware
-       if (dhd_conf_get_chip(dhd_get_pub(dev)) == BCM43362_CHIP_ID) {
-               WL_ERR(("Send hang event\n"));
-               net_os_send_hang_message(dev);
-       }
+//     if (dhd_conf_get_chip(dhd_get_pub(dev)) == BCM43362_CHIP_ID) {
+//             WL_ERR(("Send hang event\n"));
+//             net_os_send_hang_message(dev);
+//     }
 }
 
 static s32
@@ -10760,7 +10760,7 @@ static s32 wl_escan_handler(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgdev,
                                        goto exit;
                                if ((p2p_ie = wl_cfgp2p_find_p2pie(((u8 *) bi) + bi->ie_offset,
                                        bi->ie_length)) == NULL) {
-                                               WL_INFORM(("Couldn't find P2PIE in probe"
+                                               WL_ERR(("Couldn't find P2PIE in probe"
                                                        " response/beacon\n"));
                                                goto exit;
                                }
@@ -11509,6 +11509,44 @@ static void wl_wakeup_event(struct bcm_cfg80211 *cfg)
        }
 }
 
+#if defined(WL_ENABLE_P2P_IF)
+static int wl_is_p2p_event(struct wl_event_q *e)
+{
+       switch (e->etype) {
+       /* We have to seperate out the P2P events received
+        * on primary interface so that it can be send up
+        * via p2p0 interface.
+       */
+       case WLC_E_P2P_PROBREQ_MSG:
+       case WLC_E_P2P_DISC_LISTEN_COMPLETE:
+       case WLC_E_ACTION_FRAME_RX:
+       case WLC_E_ACTION_FRAME_OFF_CHAN_COMPLETE:
+       case WLC_E_ACTION_FRAME_COMPLETE:
+
+               if (e->emsg.ifidx != 0) {
+                       WL_TRACE(("P2P event(%d) on virtual interface(ifidx:%d)\n",
+                               e->etype, e->emsg.ifidx));
+                       /* We are only bothered about the P2P events received
+                        * on primary interface. For rest of them return false
+                        * so that it is sent over the interface corresponding
+                        * to the ifidx.
+                        */
+                       return FALSE;
+               } else {
+                       WL_TRACE(("P2P event(%d) on interface(ifidx:%d)\n",
+                               e->etype, e->emsg.ifidx));
+                       return TRUE;
+               }
+               break;
+
+       default:
+               WL_TRACE(("NON-P2P event(%d) on interface(ifidx:%d)\n",
+                       e->etype, e->emsg.ifidx));
+               return FALSE;
+       }
+}
+#endif /* BCMDONGLEHOST && (WL_CFG80211_P2P_DEV_IF || WL_ENABLE_P2P_IF) */
+
 static s32 wl_event_handler(void *data)
 {
        struct bcm_cfg80211 *cfg = NULL;
@@ -11541,7 +11579,9 @@ static s32 wl_event_handler(void *data)
                                        cfgdev = ndev_to_wdev(ndev);
                        }
 #elif defined(WL_ENABLE_P2P_IF)
-                       if (WL_IS_P2P_DEV_EVENT(e) && (cfg->p2p_net)) {
+                       // terence 20150116: fix for p2p connection in kernel 3.4
+//                     if (WL_IS_P2P_DEV_EVENT(e) && (cfg->p2p_net)) {
+                       if ((wl_is_p2p_event(e) == TRUE) && (cfg->p2p_net)) {
                                cfgdev = cfg->p2p_net;
                        } else {
                                cfgdev = dhd_idx2net((struct dhd_pub *)(cfg->pub),