iwlwifi: mvm: fix support for single antenna diversity
authorLuca Coelho <luciano.coelho@intel.com>
Fri, 15 Nov 2019 07:27:25 +0000 (09:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Jan 2020 18:49:02 +0000 (19:49 +0100)
commit bb99ff9baa02beb9216c86678999342197c849cc upstream.

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.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/intel/iwlwifi/mvm/fw.c

index d9eb2b2..c59cbb8 100644 (file)
@@ -514,6 +514,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));
 
@@ -1344,12 +1356,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;