CHROMIUM: ath9k: Merges for BTCOEX on 9462
This commit has the suggested upstream merge list for Bluetooth
coexistence for the Atheros AR9462. There are a lot of untested
changes here, so we leave the current ath9k driver alone for the
most part and create a new "ath9k_btcoex" driver and apply the
merge list to that. This way, we can carry the original driver
in parallel (modified only to remove support for ar9462).
The symbols in the ath9k_btcoex driver tree are modified so they
do not match those from ath9k, and modprobe dependencies work
correctly. Also, the rate control algorithm has been renamed to
"ath9k_btcoex_rate_control" so ath9k and ath9k_btcoex modules
can be loaded simultaneously.
This driver is accessible using the following configuration
options:
ATH9K_BTCOEX (ATH9K)
ATH9K_BTCOEX_COMMON (ATH9K_COMMON)
ATH9K_BTCOEX_HW (ATH9K_HW)
Committed changes follow below:
ath9k: Use atomic operations
(cherry picked with fixup from
781b14a3153a722fec820374271316537881076e)
ath9k: Reconfigure VIF state properly
(cherry picked from commit
6dcc344469d60a1f0d72cc638967e8c83c6e166e)
ath9k: Cleanup the beacon tasklet
(cherry picked from commit
fb6e252f8d262d05da3ae023b4a6f83d0eec17d9)
ath9k: Set the TSF adjust value properly
(cherry picked from commit
2f8e82e8ab4629e648925c566cc26bdcf25f0aec)
ath9k: Cleanup beacon queue configuration
(cherry picked from commit
7e52c8aa35c987236a80b7063c418a3d29b51052)
ath9k: Remove is_bslot_active
(cherry picked from commit
aa45fe9683ba861bf49d51479b11b3d482b57416)
ath9k: Cleanup beacon logic
(cherry picked with fixup from
ef4ad63368e6162fb0b18861748fac49edfcbd03)
ath9k: Simplify ASSOC handling
(cherry picked with fixup from
6c43c090a92938c3e89ce3b7459f91c5159535e2)
ath9k: Cleanup interface handling
(cherry picked with fixup from
df35d29e171ef043976b339812276ff96d1f4c21)
ath9k_hw: Cleanup ath9k_hw_set_tsfadjust
(cherry picked with fixup from
60ca9f8744d29b8fdfd33d3dec8fc2cfc9ec381a)
ath9k: Fix beacon setup
(cherry picked with fixup from
130ef6e9dc76f821caf98fa9ed6e2dafe15f3b1f)
ath9k_hw: remove debugging masks from AR_MCI_INTERRUPT_RX_MSG_DEFAULT
(cherry picked from commit
d081257c78ace442db2a59f0aa4c52c69b252663)
ath9k: Stop the BTCOEX timers before disabling BTCOEX
(cherry picked from commit
6454bf2921c73b47dde9f989bd99aeff25171110)
ath9k: Fix MCI cleanup
(cherry picked from commit
df171637109b8760dd28dc15eb06eb0901689117)
ath9k_hw: fix AR9462 2g5g switch on full reset
(cherry picked from commit
2250fe4a94863a647683e09b0b798772e01e062c)
ath9k: fix power consumption on network sleep when BTCOEX is enabled
(cherry picked from commit
8a795aec91c98b6e5a734b32e0e37205ba2c95d2)
ath9k: fix fullsleep power consumption when BTCOEX is enabled
(cherry picked from commit
84db9667b177cb4ba01b117297a89b0a34d8c45a)
ath9k_hw: start noisefloor calibration after MCI reset
(cherry picked with fixup from
678dffdcb7e53c11e93ac5beb4ca8ac710720f93)
ath9k: fixing register bit shift values of control packets to support TPC
(cherry picked from commit
912f81412f9362737deae9dd4f9472e0b73fc4b5)
ath9k: Fix clearing of BTCOEX flags
(cherry picked from commit
e790eab9ef203ff2843b5f9c80efb1339e1d867b)
ath9k: de-duplicate initvals
(cherry picked with fixup from
469979173ecda9c472c495608d6d540ec33ab85d)
ath9k: update AR934x initvals to latest version
(cherry picked from commit
589ebd85268293e64ff6b7e0dd4ed8fb26811aa7)
ath9k: Fix signedness in a MCI debug message
(cherry picked from commit
d8fffb4a9e13d1130b4fd0e577973704cad79f40)
ath9k_hw: make use of the wrapper to check for MCI init
(cherry picked from commit
812944891c598300afcc5628905d775019f25310)
ath9k: Fix compilation breakage
(cherry picked from commit
bf52592fe4901f486a5266fd73e4ee80205b18b4)
ath9k: Fix lockdep splat
(cherry picked from commit
fad29cd2f59949581050a937786c2c9bc78b2f04)
ath9k: raise aggregation limit to 64k for HT IBSS
(cherry picked from commit
313eb87f1e2f93d83836de7f5c1947b75d7752c8)
ath9k_hw: fix smatch warning in ar9003_hw_spur_mitigate_mrc_cck
(cherry picked from commit
4b5237cc86872319a321ca1a694dee8866f7d9a3)
ath9k_hw: rename mrcCCKOff to fix smatch warning
(cherry picked from commit
81b67fd60a75cac36092aa37cd0728aab3a7a938)
ath9k: do not sampling on ani timer when chip is in sleep
(cherry picked with fixup from
5039f38e16695a0a5c72b08c6a6cc66844a657b1)
ath9k_hw: fix LNA control on WLAN sleep
(cherry picked from commit
4ff6a9d200c66f192da61822c36ad14424e218d6)
ath9k_hw: update ar9462 dac_async_fifo initval
(cherry picked from commit
0967d862315366e2ef2401301ff2b1756928b4c1)
ath9k: fix mci_is_enabled utility
(cherry picked from commit
e1ecad78e5c5c32f331925f340141a38aaa64cef)
ath9k_hw: fix BT mute at hw init
(cherry picked from commit
a68807e9177a083dc09c24b141158539d71db21c)
ath9k: fix incorrect profile type manupulation
(cherry picked from commit
305dd09f8ce05cc8a8cce4e790a6d3d02e5c4f1d)
ath9k_hw: clean up ANI OFDM trigger handling
(cherry picked from commit
058a6385cb876d4b1b97610ee4e73a845e7bea71)
ath9k: remove MIB interrupt support
(cherry picked from commit
198823fd002a7f9784648c24c72b7e8c9e73fd14)
ath9k_hw: clean up defines and variables from the ANI implementation split
(cherry picked from commit
465dce62cdb35f49bc0e859fb23787e1229b62a3)
ath9k_hw: remove the old ANI implementation
(cherry picked with fixup from
6790ae7a1383db07842b3fd03208dd86f55da57e)
ath9k_hw: clean up / fix ANI mode checks related to beacon RSSI
(cherry picked from commit
5330df7b178f4f050c67451413020bdd4ec75262)
ath9k_hw: remove confusing logic inversion in an ANI variable
(cherry picked with fixup from
7067e7014d7013645f7e866b74814f1e59e6a7cd)
ath9k_hw: fix OFDM weak signal detection handling
(cherry picked with fixup from
0b81cc3922bce79d0f21189648bf4f9992e9a533)
ath9k_hw: remove aniState->noiseFloor
(cherry picked from commit
35e808b7e4e9ddac1086716867fe686f52fb78ff)
ath9k_hw: remove MCI_STATE_SET_BT_SLEEP
(cherry picked from commit
9330969b8fd1304fdcb7c1825f1528eea38d321c)
ath9k_hw: remove MCI_STATE_CONT_* state
(cherry picked from commit
26e942b790eddc757b5be179ef67907e025ff87b)
ath9k_hw: remove MCI_STATE_BT
(cherry picked from commit
6d97be48e27603f99743fc0e94e57dce2edb9cbf)
ath9k_hw: remove p_data argument from ar9003_mci_state
(cherry picked from commit
b98ccec0a497a9f08d705f1a7d63d5690bb48e70)
ath9k_hw: remove MCI_STATE_NEED_FLUSH_BT_INFO
(cherry picked from commit
d02ca07e6fdf89ed6f453fe1c9229c71a0358886)
ath9k_hw: remove MCI_STATE_SEND_WLAN_CHANNELS
(cherry picked from commit
2d340ac81e7474535db7a14f35c80b45b02b63a1)
ath9k_hw: add utility function to set BT version
(cherry picked from commit
e1763d3f3388968d622a340fed711ae16fc1bc11)
ath9k_hw: cleanup MCI gpm offset state
(cherry picked from commit
506847ad34c08fe4f766ffe1b955713628acf6bd)
ath9k: fix btcoex duty cycle
(cherry picked from commit
a197b76c230725962dc8e13102b24468e8621bfb)
ath9k: defer btcoex scheme update
(cherry picked from commit
3c7992e33ab8d0c625a45ded11cc10d5b622bcd4)
ath9k: keep btcoex period in milliseconds
(cherry picked from commit
dfd0587a7d99d42cc2d608324991169494d2dbba)
ath9k: simplify btcoex profile management
(cherry picked from commit
9e2e0c84699ce7adeddb5cd5763956493ca7d331)
ath9k_hw: process MCI interrupts only when btcoex is enabled
(cherry picked from commit
92a33298e9a329d4bed9f723811c5bedc7d92b9c)
ath9k_hw: program OBS register only when MCI is disabled
(cherry picked from commit
ed6ebd8bc852845e34e8160eed43b29236b1892f)
ath9k_hw: fix incorrect LNA register settings
(cherry picked from commit
1bde95fa7ed84094d0606d9e79356a9dd8d0e01b)
ath9k_hw: check GPM HW write pointer before chip reset
(cherry picked from commit
3863495b86d8ee8e7e70a328de5b88d555d7305a)
ath9k_hw: Fix AR9462 power consumption on idle associated
(cherry picked from commit
9dd9b0dc1de8031a31b3eaebc6a9c0ab60612026)
ath9k: restore power state on set channel failure
(cherry picked from commit
8389fb3fd7c0bbe3289578f698917f594e0b6fc9)
ath9k: choose legacy rate as last rate of MRR series
(cherry picked from commit
cec429dd65ef1ccc693e5fa1468b0a12982b4283)
ath9k_hw: Update initvals for AR9462
(cherry picked from commit
6304c20167337e21699bb3f7d25fcf099263416e)
ath9k: Move LNA code to antenna.c
(cherry picked with fixup from
8da07830e10a91cbe7badf9767230aafdd520b9c)
ath9k: improve BT FTP/PAN performance
(cherry picked from commit
6995fb805ed5de852a7d49413730980bc7173e82)
ath9k_hw: fix power state for MCI
(cherry picked from commit
153dccd467b818b1dd3a6801b14e94a7a48ef859)
ath9k: BT coex performance tuning for AR9462
(cherry picked from commit
0603143e47a34d0485a13fd7f46e56a97e687e34)
ath9k_hw: fix BT RF performance
(cherry picked from commit
99922a45e96b22df387823ad5ecfe4dc26a96c9e)
ath9k_hw: program BT to control SPDT
(cherry picked from commit
9dc08eceb7491331e81acde625e0d9c82aa86a16)
ath9k: cleanup MCI indentation
(cherry picked from commit
4f6bd1a8dfcc649912310777a44c49849ae2a63d)
ath9k: Use separate operational flags for BTCOEX
(cherry picked from commit
e6930c4b32aaa30fb9510984509afcc9f61fa39c)
ath9k: Remove SC_OP_OFFCHANNEL
(cherry picked with fixup from
4cb54fa3a2456e66d8e3bae663d66f00cbb9e483)
ath9k_hw: Fix variable usage
(cherry picked from commit
2fd5d35bc87a301d5c10397c5b38a4ec8532a975)
ath9k: Add MCI interrupt to debugfs statistics
(cherry picked with fixup from
97ba515a201bc61c7d36c41ad728b0a7debd5d88)
ath9k_hw: Cleanup power mode API
(cherry picked from commit
31604cf0a73ffd63929f3a646d5402d5901c6e4b)
ath9k: Ensure a fair beacon distribution in IBSS mode
(cherry picked from commit
d202caff28d69f4ec6cf56568f79b0916294cade)
ath9k: fix beacon descriptor
(cherry picked from commit
cd484aeb4976899a4c6efbed951ac2fc8c51e097)
ath9k: skip beaconing when reset work is pending
(cherry picked from commit
4e7fb7187d69132cf8223d4f8a49f86a6aba529d)
ath9k: add possible wiphy interface combinations
(cherry picked from commit
20c8e8dc4e9baf0c1b7c77c860726788896f2d9c)
ath9k_hw: remove ATH_BTCOEX_CFG_MCI
(cherry picked from commit
0466e2547d05a9ae8d49afc67a3851d034a528f8)
ath9k: stop rx dma before stopping tx
(cherry picked from commit
ceea2a51969f8b578777c99ec2718021427770c3)
ath9k: fix a tx rate duration calculation bug
(cherry picked from commit
76591bea9714a58d8924154068c78d702eb2cb17)
ath9k: fix invalid pointer access in the tx path
(cherry picked from commit
80b08a8d8829a58b5db14b1417151094cc28face)
Signed-off-by: Paul Stewart <pstew@chromium.org>
BUG=chrome-os-partner:11082
TEST=Boot device, join WiFi (no Bluetooth testing done yet)
Change-Id: I114ad8a5a1068da0dc2c3c84dd89738d2116401b
Reviewed-on: https://gerrit.chromium.org/gerrit/28420
Commit-Ready: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>