aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYin, Fengwei <fengwei.yin@linaro.org>2015-08-15 11:37:48 +0800
committerYin, Fengwei <fengwei.yin@linaro.org>2015-08-15 11:37:48 +0800
commitad6910282dfe5aaa2151735b4c1452e49711d6f4 (patch)
treed5417d4646a9a56a4f3721c0f94c2ae4c2e4d9f0
parent106bfa727add4cae5a4a00226a95ae75e710b057 (diff)
HACK: copy two cmds from prima driver.mcast_bcast_issue
1. start cmd with some cfgs. 2. cfg update. Signed-off-by: Yin, Fengwei <fengwei.yin@linaro.org>
-rw-r--r--drivers/net/wireless/ath/wcn36xx/main.c9
-rw-r--r--drivers/net/wireless/ath/wcn36xx/smd.c179
-rw-r--r--drivers/net/wireless/ath/wcn36xx/smd.h1
3 files changed, 189 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index 919ad979b242..3b32e1926d60 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -295,6 +295,11 @@ static int wcn36xx_start(struct ieee80211_hw *hw)
wcn36xx_feat_caps_info(wcn);
}
+ ret = wcn36xx_smd_init_cfg(wcn);
+ if (ret) {
+ wcn36xx_err("update init cfg failed\n");
+ }
+
/* DMA channel initialization */
ret = wcn36xx_dxe_init(wcn);
if (ret) {
@@ -614,10 +619,14 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
wcn36xx_dbg(WCN36XX_DBG_MAC,
"mac bss PS set %d\n",
bss_conf->ps);
+ wcn36xx_info("mac bss PS set %d\n",
+ bss_conf->ps);
if (bss_conf->ps) {
wcn36xx_pmc_enter_bmps_state(wcn, vif);
+ wcn36xx_smd_disable_mcast_bcast_filter(wcn);
} else {
wcn36xx_pmc_exit_bmps_state(wcn, vif);
+ wcn36xx_smd_disable_mcast_bcast_filter(wcn);
}
}
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index a350fd1ffefa..3393c6744701 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -247,6 +247,22 @@ static void wcn36xx_smd_set_sta_params(struct wcn36xx *wcn,
}
}
+static void dump_buf(void *buf, int len)
+{
+ int i;
+ unsigned char *tmp = buf;
+
+ printk("\n%s: enter with type: %d\n\t", __func__, tmp[0]);
+ if (tmp[0] == 55) return;
+
+
+ for (i = 0; i < len; i++) {
+ printk("%03d ", tmp[i]);
+ if (((i + 1) % 16) == 0)
+ printk("\n\t");
+ }
+}
+
static int wcn36xx_smd_send_and_wait(struct wcn36xx *wcn, size_t len)
{
int ret = 0;
@@ -255,6 +271,7 @@ static int wcn36xx_smd_send_and_wait(struct wcn36xx *wcn, size_t len)
init_completion(&wcn->hal_rsp_compl);
start = jiffies;
+ dump_buf(wcn->hal_buf, len);
ret = wcn->ctrl_ops->tx(wcn->hal_buf, len);
if (ret) {
wcn36xx_err("HAL TX failed\n");
@@ -321,6 +338,39 @@ static int wcn36xx_smd_rsp_status_check_v2(struct wcn36xx *wcn, void *buf,
return 0;
}
+static unsigned char int_cfg[] = {
+ 48, 00, 00, 00, 144, 000, 000, 000, 132, 000, 000, 000, 54, 000, 004, 000,
+ 00, 00, 00, 00, 00 , 000, 000, 000, 49, 000, 004, 000, 00, 000, 000, 000,
+ 40, 00, 00, 00, 55 , 000, 04 , 000, 00, 000, 000, 000, 00, 000, 000, 000,
+ 48, 00, 04, 00, 00 , 000, 000, 000, 01, 000, 000, 000, 51, 000, 004, 000,
+ 00, 00, 00, 00, 00 , 000, 000, 000, 52, 000, 004, 000, 00, 000, 000, 000,
+ 10, 00, 00, 00, 50 , 000, 04 , 000, 00, 000, 000, 000, 50, 000, 000, 000,
+ 56, 00, 04, 00, 00 , 000, 000, 000, 00, 000, 000, 000, 71, 000, 004, 000,
+ 00, 00, 00, 00, 03 , 000, 000, 000, 31, 000, 004, 000, 00, 000, 000, 000,
+ 20, 00, 00, 00, 53 , 000, 004, 000, 00, 000, 000, 000, 05, 000, 000, 000,
+};
+
+int wcn36xx_smd_init_cfg(struct wcn36xx *wcn)
+{
+ int ret = 0;
+
+ mutex_lock(&wcn->hal_mutex);
+ memcpy(wcn->hal_buf, int_cfg, sizeof(int_cfg));
+ ret = wcn36xx_smd_send_and_wait(wcn, sizeof(int_cfg));
+ if (ret) {
+ wcn36xx_err("Sending int cfg failed\n");
+ goto out;
+ }
+ ret = wcn36xx_smd_rsp_status_check(wcn->hal_buf, wcn->hal_rsp_len);
+ if (ret) {
+ wcn36xx_err("hal init cfg response failed err=%d\n", ret);
+ goto out;
+ }
+out:
+ mutex_unlock(&wcn->hal_mutex);
+ return ret;
+}
+
int wcn36xx_smd_load_nv(struct wcn36xx *wcn)
{
struct nv_data *nv_d;
@@ -427,6 +477,133 @@ static int wcn36xx_smd_start_rsp(struct wcn36xx *wcn, void *buf, size_t len)
return 0;
}
+static unsigned char smd_start_pkg[] = {
+0x00, 0x00, 0x00, 0x00, 0xbc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x07, 0x00, 0x00,
+0x00, 0x00, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf5, 0x89, 0x89, 0xff, 0x00, 0x00,
+0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x03, 0x00, 0x00,
+0x05, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x15, 0x00, 0x00, 0x0a, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x2b, 0x09, 0x00, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
+0x0d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x40, 0x1f, 0x00, 0x00, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+0x11, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x12, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x15, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
+0x19, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x28, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00,
+0x1d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+0x21, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x00, 0x00, 0x22, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x11, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0f,
+0x03, 0xff, 0x00, 0x00, 0x0f, 0x03, 0xff, 0x00, 0x00, 0x0f, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00,
+0x25, 0x00, 0x11, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0f, 0x03, 0xff, 0x00, 0x00,
+0x0f, 0x03, 0xff, 0x00, 0x00, 0x0f, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x11, 0x00,
+0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x07, 0x2f, 0x00, 0x03, 0x00, 0x07, 0x66,
+0x00, 0x03, 0x00, 0x07, 0x2f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x11, 0x00, 0x03, 0x00, 0x00, 0x00,
+0x00, 0x02, 0x00, 0x07, 0x00, 0x0f, 0x5e, 0x00, 0x07, 0x00, 0x0f, 0xbc, 0x00, 0x07, 0x00, 0x0f,
+0x5e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+0x29, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x39, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+0x3e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x4e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x54, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xc0, 0xd4, 0x01, 0x00, 0x55, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xc0, 0xd4, 0x01, 0x00, 0x56, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xd4, 0x01, 0x00,
+0x57, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xd4, 0x01, 0x00, 0x58, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x00, 0x00, 0x59, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x30, 0x75, 0x00, 0x00, 0x5a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x00, 0x00,
+0x5b, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x00, 0x00, 0x5c, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x90, 0xd0, 0x03, 0x00, 0x5d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xc8, 0xaf, 0x00, 0x00, 0x5e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0x5f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x76, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x77, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x7b, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x7f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x83, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x87, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x8b, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x8f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x93, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x97, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x9b, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x9f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xa3, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x01, 0x05, 0x01, 0x51, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+0x52, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x53, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x00, 0x62, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+0x64, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x66, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0x6e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0x72, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xa6, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xea, 0x00, 0x00, 0xa7, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x90, 0x5f, 0x01, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x30, 0x75, 0x00, 0x00, 0xa9, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x00, 0x00,
+0xab, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xac, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xad, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x32, 0x00, 0x00, 0x00, 0xae, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xc2, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0xc6, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0a, 0x00, 0x00, 0x00, 0xca, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
+0xcb, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0xcc, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xf4, 0x01, 0x00, 0x00, 0xce, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xcf, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x04, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xd3, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+};
+
int wcn36xx_smd_start(struct wcn36xx *wcn)
{
struct wcn36xx_hal_mac_start_req_msg msg_body, *body;
@@ -457,6 +634,7 @@ int wcn36xx_smd_start(struct wcn36xx *wcn)
wcn36xx_dbg(WCN36XX_DBG_HAL, "hal start type %d\n",
msg_body.params.type);
+ memcpy(wcn->hal_buf, smd_start_pkg, sizeof(smd_start_pkg));
ret = wcn36xx_smd_send_and_wait(wcn, body->header.len);
if (ret) {
wcn36xx_err("Sending hal_start failed\n");
@@ -2133,6 +2311,7 @@ out:
mutex_unlock(&wcn->hal_mutex);
return ret;
}
+
static void wcn36xx_smd_rsp_process(struct wcn36xx *wcn, void *buf, size_t len)
{
struct wcn36xx_hal_msg_header *msg_header = buf;
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.h b/drivers/net/wireless/ath/wcn36xx/smd.h
index 1f98dd28fb1d..87adabe7349d 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.h
+++ b/drivers/net/wireless/ath/wcn36xx/smd.h
@@ -137,4 +137,5 @@ int wcn36xx_smd_trigger_ba(struct wcn36xx *wcn, u8 sta_index);
int wcn36xx_smd_update_cfg(struct wcn36xx *wcn, u32 cfg_id, u32 value);
int wcn36xx_smd_disable_mcast_bcast_filter(struct wcn36xx *wcn);
+int wcn36xx_smd_init_cfg(struct wcn36xx *wcn);
#endif /* _SMD_H_ */