diff options
author | Christian Lamparter <chunkeey@web.de> | 2008-11-15 11:02:31 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-11-25 16:41:37 -0500 |
commit | d131bb59c142585c389b5284d93743e4e065e393 (patch) | |
tree | d1f063fa174974545545fb7f4b72cffc636754a8 /drivers/net/wireless/p54 | |
parent | f16f33df4d27f18bc6512dbe83ebbeaa693f0359 (diff) |
p54: enable Mesh Point support
This patch enables Mesh Point operation for any p54 device.
Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/p54')
-rw-r--r-- | drivers/net/wireless/p54/p54common.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c index 1796b8c6c5b8..e0066c4c0346 100644 --- a/drivers/net/wireless/p54/p54common.c +++ b/drivers/net/wireless/p54/p54common.c | |||
@@ -1058,6 +1058,7 @@ static int p54_tx_fill(struct ieee80211_hw *dev, struct sk_buff *skb, | |||
1058 | break; | 1058 | break; |
1059 | case NL80211_IFTYPE_AP: | 1059 | case NL80211_IFTYPE_AP: |
1060 | case NL80211_IFTYPE_ADHOC: | 1060 | case NL80211_IFTYPE_ADHOC: |
1061 | case NL80211_IFTYPE_MESH_POINT: | ||
1061 | if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) { | 1062 | if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) { |
1062 | *aid = 0; | 1063 | *aid = 0; |
1063 | *queue = 3; | 1064 | *queue = 3; |
@@ -1570,6 +1571,7 @@ static int p54_add_interface(struct ieee80211_hw *dev, | |||
1570 | case NL80211_IFTYPE_STATION: | 1571 | case NL80211_IFTYPE_STATION: |
1571 | case NL80211_IFTYPE_ADHOC: | 1572 | case NL80211_IFTYPE_ADHOC: |
1572 | case NL80211_IFTYPE_AP: | 1573 | case NL80211_IFTYPE_AP: |
1574 | case NL80211_IFTYPE_MESH_POINT: | ||
1573 | priv->mode = conf->type; | 1575 | priv->mode = conf->type; |
1574 | break; | 1576 | break; |
1575 | default: | 1577 | default: |
@@ -1589,6 +1591,7 @@ static int p54_add_interface(struct ieee80211_hw *dev, | |||
1589 | p54_setup_mac(dev, P54_FILTER_TYPE_AP, priv->mac_addr); | 1591 | p54_setup_mac(dev, P54_FILTER_TYPE_AP, priv->mac_addr); |
1590 | break; | 1592 | break; |
1591 | case NL80211_IFTYPE_ADHOC: | 1593 | case NL80211_IFTYPE_ADHOC: |
1594 | case NL80211_IFTYPE_MESH_POINT: | ||
1592 | p54_setup_mac(dev, P54_FILTER_TYPE_IBSS, NULL); | 1595 | p54_setup_mac(dev, P54_FILTER_TYPE_IBSS, NULL); |
1593 | break; | 1596 | break; |
1594 | default: | 1597 | default: |
@@ -1653,6 +1656,7 @@ static int p54_config_interface(struct ieee80211_hw *dev, | |||
1653 | break; | 1656 | break; |
1654 | case NL80211_IFTYPE_AP: | 1657 | case NL80211_IFTYPE_AP: |
1655 | case NL80211_IFTYPE_ADHOC: | 1658 | case NL80211_IFTYPE_ADHOC: |
1659 | case NL80211_IFTYPE_MESH_POINT: | ||
1656 | memcpy(priv->bssid, conf->bssid, ETH_ALEN); | 1660 | memcpy(priv->bssid, conf->bssid, ETH_ALEN); |
1657 | ret = p54_set_freq(dev, dev->conf.channel->center_freq); | 1661 | ret = p54_set_freq(dev, dev->conf.channel->center_freq); |
1658 | if (ret) | 1662 | if (ret) |
@@ -1826,9 +1830,10 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len) | |||
1826 | IEEE80211_HW_SIGNAL_DBM | | 1830 | IEEE80211_HW_SIGNAL_DBM | |
1827 | IEEE80211_HW_NOISE_DBM; | 1831 | IEEE80211_HW_NOISE_DBM; |
1828 | 1832 | ||
1829 | dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION | | 1833 | dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | |
1830 | NL80211_IFTYPE_ADHOC | | 1834 | BIT(NL80211_IFTYPE_ADHOC) | |
1831 | NL80211_IFTYPE_AP); | 1835 | BIT(NL80211_IFTYPE_AP) | |
1836 | BIT(NL80211_IFTYPE_MESH_POINT); | ||
1832 | 1837 | ||
1833 | dev->channel_change_time = 1000; /* TODO: find actual value */ | 1838 | dev->channel_change_time = 1000; /* TODO: find actual value */ |
1834 | priv->tx_stats[0].limit = 1; /* Beacon queue */ | 1839 | priv->tx_stats[0].limit = 1; /* Beacon queue */ |