diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2013-09-11 06:33:28 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-10-11 03:56:56 -0400 |
commit | d1d5e3cda07fc8ddc6c9dc768eca50c17d675abc (patch) | |
tree | e60e40aca6bdd5345e203ab7dccb4e44cbff4ff4 /drivers/net/wireless/iwlwifi/mvm | |
parent | 9145d15128bd3ca68cd7fdf04535a710ac88bdba (diff) |
iwlwifi: mvm: BT Coex - set the proper LUT for single ant devices
Single shared antenna devices need a special LUT.
Address this need.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/bt-coex.c | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c index 57a7503030fc..a007790223d9 100644 --- a/drivers/net/wireless/iwlwifi/mvm/bt-coex.c +++ b/drivers/net/wireless/iwlwifi/mvm/bt-coex.c | |||
@@ -131,6 +131,51 @@ static const __le32 iwl_bt_prio_boost[BT_COEX_BOOST_SIZE] = { | |||
131 | cpu_to_le32(0xff00ff00), | 131 | cpu_to_le32(0xff00ff00), |
132 | }; | 132 | }; |
133 | 133 | ||
134 | static const __le32 iwl_single_shared_ant[BT_COEX_MAX_LUT][BT_COEX_LUT_SIZE] = { | ||
135 | { | ||
136 | cpu_to_le32(0x40000000), | ||
137 | cpu_to_le32(0x00000000), | ||
138 | cpu_to_le32(0x44000000), | ||
139 | cpu_to_le32(0x00000000), | ||
140 | cpu_to_le32(0x40000000), | ||
141 | cpu_to_le32(0x00000000), | ||
142 | cpu_to_le32(0x44000000), | ||
143 | cpu_to_le32(0x00000000), | ||
144 | cpu_to_le32(0xc0004000), | ||
145 | cpu_to_le32(0xf0005000), | ||
146 | cpu_to_le32(0xc0004000), | ||
147 | cpu_to_le32(0xf0005000), | ||
148 | }, | ||
149 | { | ||
150 | cpu_to_le32(0x40000000), | ||
151 | cpu_to_le32(0x00000000), | ||
152 | cpu_to_le32(0x44000000), | ||
153 | cpu_to_le32(0x00000000), | ||
154 | cpu_to_le32(0x40000000), | ||
155 | cpu_to_le32(0x00000000), | ||
156 | cpu_to_le32(0x44000000), | ||
157 | cpu_to_le32(0x00000000), | ||
158 | cpu_to_le32(0xc0004000), | ||
159 | cpu_to_le32(0xf0005000), | ||
160 | cpu_to_le32(0xc0004000), | ||
161 | cpu_to_le32(0xf0005000), | ||
162 | }, | ||
163 | { | ||
164 | cpu_to_le32(0x40000000), | ||
165 | cpu_to_le32(0x00000000), | ||
166 | cpu_to_le32(0x44000000), | ||
167 | cpu_to_le32(0x00000000), | ||
168 | cpu_to_le32(0x40000000), | ||
169 | cpu_to_le32(0x00000000), | ||
170 | cpu_to_le32(0x44000000), | ||
171 | cpu_to_le32(0x00000000), | ||
172 | cpu_to_le32(0xc0004000), | ||
173 | cpu_to_le32(0xf0005000), | ||
174 | cpu_to_le32(0xc0004000), | ||
175 | cpu_to_le32(0xf0005000), | ||
176 | }, | ||
177 | }; | ||
178 | |||
134 | static const __le32 iwl_combined_lookup[BT_COEX_MAX_LUT][BT_COEX_LUT_SIZE] = { | 179 | static const __le32 iwl_combined_lookup[BT_COEX_MAX_LUT][BT_COEX_LUT_SIZE] = { |
135 | { | 180 | { |
136 | /* Tight */ | 181 | /* Tight */ |
@@ -354,8 +399,13 @@ int iwl_send_bt_init_conf(struct iwl_mvm *mvm) | |||
354 | BT_VALID_TXTX_DELTA_FREQ_THRS | | 399 | BT_VALID_TXTX_DELTA_FREQ_THRS | |
355 | BT_VALID_TXRX_MAX_FREQ_0); | 400 | BT_VALID_TXRX_MAX_FREQ_0); |
356 | 401 | ||
357 | memcpy(&bt_cmd->decision_lut, iwl_combined_lookup, | 402 | if (mvm->cfg->bt_shared_single_ant) |
358 | sizeof(iwl_combined_lookup)); | 403 | memcpy(&bt_cmd->decision_lut, iwl_single_shared_ant, |
404 | sizeof(iwl_single_shared_ant)); | ||
405 | else | ||
406 | memcpy(&bt_cmd->decision_lut, iwl_combined_lookup, | ||
407 | sizeof(iwl_combined_lookup)); | ||
408 | |||
359 | memcpy(&bt_cmd->bt_prio_boost, iwl_bt_prio_boost, | 409 | memcpy(&bt_cmd->bt_prio_boost, iwl_bt_prio_boost, |
360 | sizeof(iwl_bt_prio_boost)); | 410 | sizeof(iwl_bt_prio_boost)); |
361 | memcpy(&bt_cmd->bt4_multiprio_lut, iwl_bt_mprio_lut, | 411 | memcpy(&bt_cmd->bt4_multiprio_lut, iwl_bt_mprio_lut, |