.plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.temperature_kelvin = true,
- .off_channel_workaround = true,
.max_event_log_size = 512,
+
+ /*
+ * Force use of chains B and C for scan RX on 5 GHz band
+ * because the device has off-channel reception on chain A.
+ */
+ .scan_antennas[IEEE80211_BAND_5GHZ] = ANT_BC,
};
/* Module firmware */
* detect transmissions.
*/
scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH : 0;
-
- /* Force use of chains B and C (0x6) for scan Rx
- * Avoid A (0x1) for the device has off-channel reception
- * on A-band.
- */
- if (priv->cfg->off_channel_workaround)
- rx_ant = ANT_BC;
break;
default:
IWL_WARN(priv, "Invalid scan band count\n");
band = priv->scan_band;
+ if (priv->cfg->scan_antennas[band])
+ rx_ant = priv->cfg->scan_antennas[band];
+
priv->scan_tx_ant[band] =
iwl_toggle_tx_ant(priv, priv->scan_tx_ant[band]);
rate_flags |= iwl_ant_idx_to_flags(priv->scan_tx_ant[band]);
/* timer period for monitor the driver queues */
u32 monitor_recover_period;
bool temperature_kelvin;
- bool off_channel_workaround;
u32 max_event_log_size;
+ u8 scan_antennas[IEEE80211_NUM_BANDS];
};
/***************************