diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2016-05-19 05:06:48 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2016-05-19 05:06:48 +0000 |
commit | 4afc7f78aa85cf112da05f9811a0adeb5cef7c6f (patch) | |
tree | c3c84525f837bc897794b783f35c63582a9ff694 /sys/dev/bwn | |
parent | 1230b0df52e35a36e8ddfeeedd2cffd851b75fd1 (diff) | |
download | src-4afc7f78aa85cf112da05f9811a0adeb5cef7c6f.tar.gz src-4afc7f78aa85cf112da05f9811a0adeb5cef7c6f.zip |
[bwn] program in the MAC capabilities somewhere where later microcode
expects it.
Obtained from: Linux b43
Notes
Notes:
svn path=/head/; revision=300194
Diffstat (limited to 'sys/dev/bwn')
-rw-r--r-- | sys/dev/bwn/if_bwn.c | 13 | ||||
-rw-r--r-- | sys/dev/bwn/if_bwnreg.h | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/sys/dev/bwn/if_bwn.c b/sys/dev/bwn/if_bwn.c index 49d4505a0f95..5eaa2bb3464b 100644 --- a/sys/dev/bwn/if_bwn.c +++ b/sys/dev/bwn/if_bwn.c @@ -2071,6 +2071,19 @@ bwn_core_init(struct bwn_mac *mac) hf &= ~BWN_HF_SKIP_CFP_UPDATE; bwn_hf_write(mac, hf); + /* Tell the firmware about the MAC capabilities */ + if (siba_get_revid(sc->sc_dev) >= 13) { + uint32_t cap; + cap = BWN_READ_4(mac, BWN_MAC_HW_CAP); + DPRINTF(sc, BWN_DEBUG_RESET, + "%s: hw capabilities: 0x%08x\n", + __func__, cap); + bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_MACHW_L, + cap & 0xffff); + bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_MACHW_H, + (cap >> 16) & 0xffff); + } + bwn_set_txretry(mac, BWN_RETRY_SHORT, BWN_RETRY_LONG); bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_SHORT_RETRY_FALLBACK, 3); bwn_shm_write_2(mac, BWN_SHARED, BWN_SHARED_LONG_RETRY_FALLBACK, 2); diff --git a/sys/dev/bwn/if_bwnreg.h b/sys/dev/bwn/if_bwnreg.h index 8735cbe7fe2e..5bebdef04004 100644 --- a/sys/dev/bwn/if_bwnreg.h +++ b/sys/dev/bwn/if_bwnreg.h @@ -169,6 +169,7 @@ #define BWN_RAM_CONTROL 0x130 #define BWN_RAM_DATA 0x134 #define BWN_PS_STATUS 0x140 +#define BWN_MAC_HW_CAP 0x15c /* core rev >= 13 */ #define BWN_RF_HWENABLED_HI 0x158 #define BWN_RF_HWENABLED_HI_MASK (1 << 16) #define BWN_SHM_CONTROL 0x160 @@ -284,6 +285,8 @@ #define BWN_SHARED_SPU_WAKEUP 0x0094 #define BWN_SHARED_PRETBTT 0x0096 #define BWN_SHARED_CHAN 0x00a0 +#define BWN_SHARED_MACHW_L 0x00c0 +#define BWN_SHARED_MACHW_H 0x00c2 #define BWN_SHARED_AUTOINC 0x0100 #define BWN_SHARED_PROBE_RESP_PHYCTL 0x0188 #define BWN_SHARED_EDCFQ 0x0240 |