iwlwifi: support different num of tx and rx antennas
This patch adds infrastructure for supporting different number of tx and rx antennas Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
5425e49047
commit
ec35cf2afb
@ -269,11 +269,10 @@ struct iwl_cmd_header {
|
|||||||
* 10 B active, A inactive
|
* 10 B active, A inactive
|
||||||
* 11 Both active
|
* 11 Both active
|
||||||
*/
|
*/
|
||||||
#define RATE_MCS_ANT_A_POS 14
|
#define RATE_MCS_ANT_POS 14
|
||||||
#define RATE_MCS_ANT_B_POS 15
|
#define RATE_MCS_ANT_A_MSK 0x04000
|
||||||
#define RATE_MCS_ANT_A_MSK 0x4000
|
#define RATE_MCS_ANT_B_MSK 0x08000
|
||||||
#define RATE_MCS_ANT_B_MSK 0x8000
|
#define RATE_MCS_ANT_AB_MSK 0x0C000
|
||||||
#define RATE_MCS_ANT_AB_MSK 0xc000
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -410,7 +410,7 @@ void iwl4965_hwrate_to_tx_control(struct iwl_priv *priv, u32 rate_n_flags,
|
|||||||
int rate_index;
|
int rate_index;
|
||||||
|
|
||||||
control->antenna_sel_tx =
|
control->antenna_sel_tx =
|
||||||
((rate_n_flags & RATE_MCS_ANT_AB_MSK) >> RATE_MCS_ANT_A_POS);
|
((rate_n_flags & RATE_MCS_ANT_AB_MSK) >> RATE_MCS_ANT_POS);
|
||||||
if (rate_n_flags & RATE_MCS_HT_MSK)
|
if (rate_n_flags & RATE_MCS_HT_MSK)
|
||||||
control->flags |= IEEE80211_TXCTL_OFDM_HT;
|
control->flags |= IEEE80211_TXCTL_OFDM_HT;
|
||||||
if (rate_n_flags & RATE_MCS_GF_MSK)
|
if (rate_n_flags & RATE_MCS_GF_MSK)
|
||||||
@ -2040,7 +2040,10 @@ int iwl4965_hw_set_hw_params(struct iwl_priv *priv)
|
|||||||
priv->hw_params.max_stations = IWL4965_STATION_COUNT;
|
priv->hw_params.max_stations = IWL4965_STATION_COUNT;
|
||||||
priv->hw_params.bcast_sta_id = IWL4965_BROADCAST_ID;
|
priv->hw_params.bcast_sta_id = IWL4965_BROADCAST_ID;
|
||||||
|
|
||||||
priv->hw_params.tx_ant_num = 2;
|
priv->hw_params.tx_chains_num = 2;
|
||||||
|
priv->hw_params.rx_chains_num = 2;
|
||||||
|
priv->hw_params.valid_tx_ant = (IWL_ANTENNA_MAIN | IWL_ANTENNA_AUX);
|
||||||
|
priv->hw_params.valid_rx_ant = (IWL_ANTENNA_MAIN | IWL_ANTENNA_AUX);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -580,11 +580,14 @@ struct iwl4965_ibss_seq {
|
|||||||
struct iwl_hw_params {
|
struct iwl_hw_params {
|
||||||
u16 max_txq_num;
|
u16 max_txq_num;
|
||||||
u16 tx_cmd_len;
|
u16 tx_cmd_len;
|
||||||
u16 tx_ant_num;
|
u8 tx_chains_num;
|
||||||
|
u8 rx_chains_num;
|
||||||
|
u8 valid_tx_ant;
|
||||||
|
u8 valid_rx_ant;
|
||||||
u16 max_rxq_size;
|
u16 max_rxq_size;
|
||||||
|
u16 max_rxq_log;
|
||||||
u32 rx_buf_size;
|
u32 rx_buf_size;
|
||||||
u32 max_pkt_size;
|
u32 max_pkt_size;
|
||||||
u16 max_rxq_log;
|
|
||||||
u8 max_stations;
|
u8 max_stations;
|
||||||
u8 bcast_sta_id;
|
u8 bcast_sta_id;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user