aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/p54
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@web.de>2008-11-15 11:02:31 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-11-25 16:41:37 -0500
commitd131bb59c142585c389b5284d93743e4e065e393 (patch)
treed1f063fa174974545545fb7f4b72cffc636754a8 /drivers/net/wireless/p54
parentf16f33df4d27f18bc6512dbe83ebbeaa693f0359 (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.c11
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 */