mirror of
https://github.com/torvalds/linux.git
synced 2024-12-20 18:11:47 +00:00
zd1211rw: initial IBSS support
this adds initial IBSS support for the zydas zd1211rw: convince driver that it can do IBSS mode. add mac80211 beacon_update callback. IBSS merge and TSF updates don't work yet, but it makes the driver usable in ad-hoc networks. Signed-off-by: Bruno Randolf <br1@einfach.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
736bc924fe
commit
84e6dc9acf
@ -751,6 +751,7 @@ static int zd_op_add_interface(struct ieee80211_hw *hw,
|
||||
case IEEE80211_IF_TYPE_MNTR:
|
||||
case IEEE80211_IF_TYPE_MESH_POINT:
|
||||
case IEEE80211_IF_TYPE_STA:
|
||||
case IEEE80211_IF_TYPE_IBSS:
|
||||
mac->type = conf->type;
|
||||
break;
|
||||
default:
|
||||
@ -781,7 +782,8 @@ static int zd_op_config_interface(struct ieee80211_hw *hw,
|
||||
struct zd_mac *mac = zd_hw_mac(hw);
|
||||
int associated;
|
||||
|
||||
if (mac->type == IEEE80211_IF_TYPE_MESH_POINT) {
|
||||
if (mac->type == IEEE80211_IF_TYPE_MESH_POINT ||
|
||||
mac->type == IEEE80211_IF_TYPE_IBSS) {
|
||||
associated = true;
|
||||
if (conf->beacon) {
|
||||
zd_mac_config_beacon(hw, conf->beacon);
|
||||
@ -941,6 +943,18 @@ static void zd_op_bss_info_changed(struct ieee80211_hw *hw,
|
||||
}
|
||||
}
|
||||
|
||||
static int zd_op_beacon_update(struct ieee80211_hw *hw,
|
||||
struct sk_buff *skb,
|
||||
struct ieee80211_tx_control *ctl)
|
||||
{
|
||||
struct zd_mac *mac = zd_hw_mac(hw);
|
||||
zd_mac_config_beacon(hw, skb);
|
||||
kfree_skb(skb);
|
||||
zd_set_beacon_interval(&mac->chip, BCN_MODE_IBSS |
|
||||
hw->conf.beacon_int);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct ieee80211_ops zd_ops = {
|
||||
.tx = zd_op_tx,
|
||||
.start = zd_op_start,
|
||||
@ -951,6 +965,7 @@ static const struct ieee80211_ops zd_ops = {
|
||||
.config_interface = zd_op_config_interface,
|
||||
.configure_filter = zd_op_configure_filter,
|
||||
.bss_info_changed = zd_op_bss_info_changed,
|
||||
.beacon_update = zd_op_beacon_update,
|
||||
};
|
||||
|
||||
struct ieee80211_hw *zd_mac_alloc_hw(struct usb_interface *intf)
|
||||
|
Loading…
Reference in New Issue
Block a user