Hi,

We only need to set the data->valid_tx_ant and data->valid_rx_ant
values in iwm_parse_nvm_data() for the 8000 family chips.
This matches what iwl_set_radio_cfg() in iwl-nvm-parse.c from Linux's
iwlwifi does.

Also the "if (!data->valid_tx_ant || !data->valid_rx_ant) {" check should
be removed again matching the iwlwifi code. That check actually got
triggered when trying out the updated iwm code with a 3165 chipset (which
seems to work correctly by just adding the pci ids, and treating it like
the 7265 chipset).

Index: sys/dev/pci/if_iwm.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_iwm.c,v
retrieving revision 1.82
diff -u -r1.82 if_iwm.c
--- sys/dev/pci/if_iwm.c        25 May 2016 13:35:12 -0000      1.82
+++ sys/dev/pci/if_iwm.c        26 May 2016 15:02:11 -0000
@@ -2818,21 +2818,12 @@
        data->radio_cfg_step = IWM_NVM_RF_CFG_STEP_MSK(radio_cfg);
        data->radio_cfg_dash = IWM_NVM_RF_CFG_DASH_MSK(radio_cfg);
        data->radio_cfg_pnum = IWM_NVM_RF_CFG_PNUM_MSK(radio_cfg);
-       data->valid_tx_ant = IWM_NVM_RF_CFG_TX_ANT_MSK(radio_cfg);
-       data->valid_rx_ant = IWM_NVM_RF_CFG_RX_ANT_MSK(radio_cfg);
 
        sku = le16_to_cpup(nvm_sw + IWM_SKU);
        data->sku_cap_band_24GHz_enable = sku & IWM_NVM_SKU_CAP_BAND_24GHZ;
        data->sku_cap_band_52GHz_enable = sku & IWM_NVM_SKU_CAP_BAND_52GHZ;
        data->sku_cap_11n_enable = sku & IWM_NVM_SKU_CAP_11N_ENABLE;
        data->sku_cap_mimo_disable = sku & IWM_NVM_SKU_CAP_MIMO_DISABLE;
-
-       if (!data->valid_tx_ant || !data->valid_rx_ant) {
-               DPRINTF(("%s: invalid antennas (0x%x, 0x%x)\n",
-                           DEVNAME(sc), data->valid_tx_ant,
-                           data->valid_rx_ant));
-               return EINVAL;
-       }
 
        data->n_hw_addrs = le16_to_cpup(nvm_sw + IWM_N_HW_ADDRS);
 

Reply via email to