diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2013-06-17 22:34:58 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-06-25 06:11:31 -0400 |
commit | e715c3a939071bacf33296b0b8dc58a29bbc5cf8 (patch) | |
tree | 6b799de00b3cb80499cac1b2fc06155055b35a00 /drivers/net/wireless | |
parent | 49464ae502680e362be519ac024a0f5998faaa7e (diff) |
iwlwifi: mvm: add BT-Coex LUT for 1x1 products
1x1 products will need a special LUT.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-config.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/bt-coex.c | 21 |
2 files changed, 21 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-config.h b/drivers/net/wireless/iwlwifi/iwl-config.h index 0189b9050f22..83b9ff6ff3ad 100644 --- a/drivers/net/wireless/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/iwlwifi/iwl-config.h | |||
@@ -222,6 +222,7 @@ struct iwl_cfg { | |||
222 | const u32 max_inst_size; | 222 | const u32 max_inst_size; |
223 | u8 valid_tx_ant; | 223 | u8 valid_tx_ant; |
224 | u8 valid_rx_ant; | 224 | u8 valid_rx_ant; |
225 | bool bt_shared_single_ant; | ||
225 | u16 nvm_ver; | 226 | u16 nvm_ver; |
226 | u16 nvm_calib_ver; | 227 | u16 nvm_calib_ver; |
227 | /* params not likely to change within a device family */ | 228 | /* params not likely to change within a device family */ |
diff --git a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c index 9a4d94a1f90d..dbd622a3929c 100644 --- a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c +++ b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c | |||
@@ -202,6 +202,22 @@ static const __le32 iwl_concurrent_lookup[BT_COEX_LUT_SIZE] = { | |||
202 | cpu_to_le32(0x00000000), | 202 | cpu_to_le32(0x00000000), |
203 | }; | 203 | }; |
204 | 204 | ||
205 | /* single shared antenna */ | ||
206 | static const __le32 iwl_single_shared_ant_lookup[BT_COEX_LUT_SIZE] = { | ||
207 | cpu_to_le32(0x40000000), | ||
208 | cpu_to_le32(0x00000000), | ||
209 | cpu_to_le32(0x44000000), | ||
210 | cpu_to_le32(0x00000000), | ||
211 | cpu_to_le32(0x40000000), | ||
212 | cpu_to_le32(0x00000000), | ||
213 | cpu_to_le32(0x44000000), | ||
214 | cpu_to_le32(0x00000000), | ||
215 | cpu_to_le32(0xC0004000), | ||
216 | cpu_to_le32(0xF0005000), | ||
217 | cpu_to_le32(0xC0004000), | ||
218 | cpu_to_le32(0xF0005000), | ||
219 | }; | ||
220 | |||
205 | int iwl_send_bt_init_conf(struct iwl_mvm *mvm) | 221 | int iwl_send_bt_init_conf(struct iwl_mvm *mvm) |
206 | { | 222 | { |
207 | struct iwl_bt_coex_cmd cmd = { | 223 | struct iwl_bt_coex_cmd cmd = { |
@@ -225,7 +241,10 @@ int iwl_send_bt_init_conf(struct iwl_mvm *mvm) | |||
225 | BT_VALID_REDUCED_TX_POWER | | 241 | BT_VALID_REDUCED_TX_POWER | |
226 | BT_VALID_LUT); | 242 | BT_VALID_LUT); |
227 | 243 | ||
228 | if (is_loose_coex()) | 244 | if (mvm->cfg->bt_shared_single_ant) |
245 | memcpy(&cmd.decision_lut, iwl_single_shared_ant_lookup, | ||
246 | sizeof(iwl_single_shared_ant_lookup)); | ||
247 | else if (is_loose_coex()) | ||
229 | memcpy(&cmd.decision_lut, iwl_loose_lookup, | 248 | memcpy(&cmd.decision_lut, iwl_loose_lookup, |
230 | sizeof(iwl_tight_lookup)); | 249 | sizeof(iwl_tight_lookup)); |
231 | else | 250 | else |