aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/bwn
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2016-05-19 05:06:48 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2016-05-19 05:06:48 +0000
commit4afc7f78aa85cf112da05f9811a0adeb5cef7c6f (patch)
treec3c84525f837bc897794b783f35c63582a9ff694 /sys/dev/bwn
parent1230b0df52e35a36e8ddfeeedd2cffd851b75fd1 (diff)
downloadsrc-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.c13
-rw-r--r--sys/dev/bwn/if_bwnreg.h3
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