From: Luca Coelho <luciano.coe...@intel.com>

When the single antenna diversity support was sent upstream, only some
definitions were sent, due to a bad revert.

Fix this by adding the actual code.

Fixes: 5952e0ec3f05 ("iwlwifi: mvm: add support for single antenna diversity")
Signed-off-by: Luca Coelho <luciano.coe...@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c 
b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index 32a5e4e5461f..7afdf0c1b1e9 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -511,6 +511,18 @@ static int iwl_send_phy_cfg_cmd(struct iwl_mvm *mvm)
        struct iwl_phy_cfg_cmd phy_cfg_cmd;
        enum iwl_ucode_type ucode_type = mvm->fwrt.cur_fw_img;
 
+       if (iwl_mvm_has_unified_ucode(mvm) &&
+           !mvm->trans->cfg->tx_with_siso_diversity) {
+               return 0;
+       } else if (mvm->trans->cfg->tx_with_siso_diversity) {
+               /*
+                * TODO: currently we don't set the antenna but letting the NIC
+                * to decide which antenna to use. This should come from BIOS.
+                */
+               phy_cfg_cmd.phy_cfg =
+                       cpu_to_le32(FW_PHY_CFG_CHAIN_SAD_ENABLED);
+       }
+
        /* Set parameters */
        phy_cfg_cmd.phy_cfg = cpu_to_le32(iwl_mvm_get_phy_config(mvm));
 
@@ -1327,12 +1339,12 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
                ret = iwl_send_phy_db_data(mvm->phy_db);
                if (ret)
                        goto error;
-
-               ret = iwl_send_phy_cfg_cmd(mvm);
-               if (ret)
-                       goto error;
        }
 
+       ret = iwl_send_phy_cfg_cmd(mvm);
+       if (ret)
+               goto error;
+
        ret = iwl_mvm_send_bt_init_conf(mvm);
        if (ret)
                goto error;
-- 
2.23.0

Reply via email to