diff options
author | Yin, Fengwei <fengwei.yin@linaro.org> | 2015-08-15 11:37:48 +0800 |
---|---|---|
committer | Yin, Fengwei <fengwei.yin@linaro.org> | 2015-08-15 11:37:48 +0800 |
commit | ad6910282dfe5aaa2151735b4c1452e49711d6f4 (patch) | |
tree | d5417d4646a9a56a4f3721c0f94c2ae4c2e4d9f0 | |
parent | 106bfa727add4cae5a4a00226a95ae75e710b057 (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.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wcn36xx/smd.c | 179 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wcn36xx/smd.h | 1 |
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_ */ |