iwlwifi: mvm: change when the BT_COEX is sent

The BT_COEX command should not be sent to the INIT
firmware image starting from 8000 family.
The firmware team also requested to send the BT_COEX
command after the PHY_DB_CMD and the PHY_CFG_CMD.

While at it:
s/iwl_send_bt_init_conf/iwl_mvm_send_bt_init_conf/

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
Emmanuel Grumbach 2017-05-29 14:01:06 +03:00 committed by Luca Coelho
parent 3bfdee768c
commit b3de3ef48a
4 changed files with 12 additions and 10 deletions

View File

@ -406,7 +406,7 @@ iwl_get_coex_type(struct iwl_mvm *mvm, const struct ieee80211_vif *vif)
return ret; return ret;
} }
int iwl_send_bt_init_conf(struct iwl_mvm *mvm) int iwl_mvm_send_bt_init_conf(struct iwl_mvm *mvm)
{ {
struct iwl_bt_coex_cmd bt_cmd = {}; struct iwl_bt_coex_cmd bt_cmd = {};
u32 mode; u32 mode;

View File

@ -644,7 +644,7 @@ iwl_dbgfs_bt_force_ant_write(struct iwl_mvm *mvm, char *buf,
modes_str[mvm->bt_force_ant_mode]); modes_str[mvm->bt_force_ant_mode]);
if (iwl_mvm_firmware_running(mvm)) if (iwl_mvm_firmware_running(mvm))
ret = iwl_send_bt_init_conf(mvm); ret = iwl_mvm_send_bt_init_conf(mvm);
else else
ret = 0; ret = 0;

View File

@ -836,9 +836,11 @@ int iwl_run_init_mvm_ucode(struct iwl_mvm *mvm, bool read_nvm)
goto error; goto error;
} }
ret = iwl_send_bt_init_conf(mvm); if (mvm->cfg->device_family < IWL_DEVICE_FAMILY_8000) {
if (ret) ret = iwl_mvm_send_bt_init_conf(mvm);
goto error; if (ret)
goto error;
}
/* Read the NVM only at driver load time, no need to do this twice */ /* Read the NVM only at driver load time, no need to do this twice */
if (read_nvm) { if (read_nvm) {
@ -1545,10 +1547,6 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
if (ret) if (ret)
goto error; goto error;
ret = iwl_send_bt_init_conf(mvm);
if (ret)
goto error;
/* Send phy db control command and then phy db calibration*/ /* Send phy db control command and then phy db calibration*/
if (!iwl_mvm_has_new_tx_api(mvm)) { if (!iwl_mvm_has_new_tx_api(mvm)) {
ret = iwl_send_phy_db_data(mvm->phy_db); ret = iwl_send_phy_db_data(mvm->phy_db);
@ -1560,6 +1558,10 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
goto error; goto error;
} }
ret = iwl_mvm_send_bt_init_conf(mvm);
if (ret)
goto error;
/* Init RSS configuration */ /* Init RSS configuration */
/* TODO - remove a000 disablement when we have RXQ config API */ /* TODO - remove a000 disablement when we have RXQ config API */
if (iwl_mvm_has_new_rx_api(mvm) && !iwl_mvm_has_new_tx_api(mvm)) { if (iwl_mvm_has_new_rx_api(mvm) && !iwl_mvm_has_new_tx_api(mvm)) {

View File

@ -1680,7 +1680,7 @@ int iwl_mvm_exit_d0i3(struct iwl_op_mode *op_mode);
int _iwl_mvm_exit_d0i3(struct iwl_mvm *mvm); int _iwl_mvm_exit_d0i3(struct iwl_mvm *mvm);
/* BT Coex */ /* BT Coex */
int iwl_send_bt_init_conf(struct iwl_mvm *mvm); int iwl_mvm_send_bt_init_conf(struct iwl_mvm *mvm);
void iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm, void iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm,
struct iwl_rx_cmd_buffer *rxb); struct iwl_rx_cmd_buffer *rxb);
void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif,