On 2010-11-10 1:23 PM, Vivek Natarajan wrote: > Enable beamforming if the driver and the AP are capable of sending > and receiving beam-formed frames. > > Signed-off-by: Vivek Natarajan <vnatarajan@xxxxxxxxxxx> > --- > include/linux/ieee80211.h | 41 ++++++++++++++++++++++++++++++++++++++++- > include/net/cfg80211.h | 6 ++++++ > include/net/mac80211.h | 9 +++++++-- > net/mac80211/cfg.c | 7 +++++++ > net/mac80211/ht.c | 18 ++++++++++++++++++ > net/mac80211/ieee80211_i.h | 1 + > net/mac80211/mlme.c | 19 +++++++++++++++++++ > net/mac80211/rx.c | 10 ++++++++++ > net/mac80211/sta_info.c | 2 ++ > net/mac80211/sta_info.h | 6 ++++++ > net/mac80211/status.c | 19 +++++++++++++++++++ > net/mac80211/tx.c | 27 ++++++++++++++++++++++++--- > net/mac80211/work.c | 1 + > 13 files changed, 160 insertions(+), 6 deletions(-) > > diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h > index ed5a03c..ba92b73 100644 > --- a/include/linux/ieee80211.h > +++ b/include/linux/ieee80211.h [...] > /** > * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set > * @fc: frame control bytes in little-endian byteorder > @@ -827,6 +843,29 @@ struct ieee80211_mcs_info { > u8 reserved[3]; > } __attribute__((packed)); > > +struct ieee80211_txbf_caps { > + u32 implicit_rx_capable:1, > + rx_staggered_sounding:1, > + tx_staggered_sounding:1, > + rx_ndp_capable:1, > + tx_ndp_capable:1, > + implicit_txbf_capable:1, > + calibration:2, > + explicit_csi_txbf_capable:1, > + explicit_noncomp_steering:1, > + explicit_comp_steering:1, > + explicit_csi_feedback:2, > + explicit_noncomp_bf:2, > + explicit_comp_bf:2, > + minimal_grouping:2, > + csi_bfer_antennas:2, > + noncomp_bfer_antennas:2, > + comp_bfer_antennas:2, > + csi_max_rows_bfer:2, > + channel_estimation_cap:2, > + reserved:3; > +}; > + > /* 802.11n HT capability MSC set */ > #define IEEE80211_HT_MCS_RX_HIGHEST_MASK 0x3ff > #define IEEE80211_HT_MCS_TX_DEFINED 0x01 > @@ -862,7 +901,7 @@ struct ieee80211_ht_cap { > struct ieee80211_mcs_info mcs; > > __le16 extended_ht_cap_info; > - __le32 tx_BF_cap_info; > + struct ieee80211_txbf_caps tx_BF_cap_info; > u8 antenna_selection_info; > } __attribute__ ((packed)); What about big endian? I think it's better to just use defines with the proper masks - bitfields make handling endian differences harder. - Felix -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html