2008-11-14 18:41:09

by Christian Lamparter

[permalink] [raw]
Subject: [PATCH 1/4] p54: enable Mesh Point support

This patch enables Mesh Point operation for any p54 device.

Signed-off-by: Christian Lamparter <[email protected]>
---
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
--- a/drivers/net/wireless/p54/p54common.c 2008-11-01 20:41:08.000000000 +0100
+++ b/drivers/net/wireless/p54/p54common.c 2008-11-02 13:34:24.000000000 +0100
@@ -1059,6 +1059,7 @@ static int p54_tx_fill(struct ieee80211_
break;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_ADHOC:
+ case NL80211_IFTYPE_MESH_POINT:
if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) {
*aid = 0;
*queue = 3;
@@ -1571,6 +1572,7 @@ static int p54_add_interface(struct ieee
case NL80211_IFTYPE_STATION:
case NL80211_IFTYPE_ADHOC:
case NL80211_IFTYPE_AP:
+ case NL80211_IFTYPE_MESH_POINT:
priv->mode = conf->type;
break;
default:
@@ -1590,6 +1592,7 @@ static int p54_add_interface(struct ieee
p54_setup_mac(dev, P54_FILTER_TYPE_AP, priv->mac_addr);
break;
case NL80211_IFTYPE_ADHOC:
+ case NL80211_IFTYPE_MESH_POINT:
p54_setup_mac(dev, P54_FILTER_TYPE_IBSS, NULL);
break;
default:
@@ -1654,6 +1657,7 @@ static int p54_config_interface(struct i
break;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_ADHOC:
+ case NL80211_IFTYPE_MESH_POINT:
memcpy(priv->bssid, conf->bssid, ETH_ALEN);
ret = p54_set_freq(dev, dev->conf.channel->center_freq);
if (ret)
@@ -1829,6 +1833,7 @@ struct ieee80211_hw *p54_init_common(siz

dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION |
NL80211_IFTYPE_ADHOC |
+ NL80211_IFTYPE_MESH_POINT |
NL80211_IFTYPE_AP);

dev->channel_change_time = 1000; /* TODO: find actual value */


2008-11-15 16:02:34

by Christian Lamparter

[permalink] [raw]
Subject: [PATCH 1/4] p54: enable Mesh Point support v2

This patch enables Mesh Point operation for any p54 device.

Signed-off-by: Christian Lamparter <[email protected]>
---
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
--- a/drivers/net/wireless/p54/p54common.c 2008-11-15 16:50:58.000000000 +0100
+++ b/drivers/net/wireless/p54/p54common.c 2008-11-15 16:50:19.000000000 +0100
@@ -1059,6 +1059,7 @@ static int p54_tx_fill(struct ieee80211_
break;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_ADHOC:
+ case NL80211_IFTYPE_MESH_POINT:
if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) {
*aid = 0;
*queue = 3;
@@ -1571,6 +1572,7 @@ static int p54_add_interface(struct ieee
case NL80211_IFTYPE_STATION:
case NL80211_IFTYPE_ADHOC:
case NL80211_IFTYPE_AP:
+ case NL80211_IFTYPE_MESH_POINT:
priv->mode = conf->type;
break;
default:
@@ -1590,6 +1592,7 @@ static int p54_add_interface(struct ieee
p54_setup_mac(dev, P54_FILTER_TYPE_AP, priv->mac_addr);
break;
case NL80211_IFTYPE_ADHOC:
+ case NL80211_IFTYPE_MESH_POINT:
p54_setup_mac(dev, P54_FILTER_TYPE_IBSS, NULL);
break;
default:
@@ -1654,6 +1657,7 @@ static int p54_config_interface(struct i
break;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_ADHOC:
+ case NL80211_IFTYPE_MESH_POINT:
memcpy(priv->bssid, conf->bssid, ETH_ALEN);
ret = p54_set_freq(dev, dev->conf.channel->center_freq);
if (ret)
@@ -1827,9 +1831,10 @@ struct ieee80211_hw *p54_init_common(siz
IEEE80211_HW_SIGNAL_DBM |
IEEE80211_HW_NOISE_DBM;

- dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION |
- NL80211_IFTYPE_ADHOC |
- NL80211_IFTYPE_AP);
+ dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
+ BIT(NL80211_IFTYPE_ADHOC) |
+ BIT(NL80211_IFTYPE_AP) |
+ BIT(NL80211_IFTYPE_MESH_POINT);

dev->channel_change_time = 1000; /* TODO: find actual value */
priv->tx_stats[0].limit = 1; /* Beacon queue */

2008-11-14 22:22:04

by Andrey Yurovsky

[permalink] [raw]
Subject: Re: [PATCH 1/4] p54: enable Mesh Point support

Thanks!

Acked-by: Andrey Yurovsky <[email protected]>

On Fri, Nov 14, 2008 at 10:41 AM, Christian Lamparter <[email protected]> wrote:
> This patch enables Mesh Point operation for any p54 device.
>
> Signed-off-by: Christian Lamparter <[email protected]>
> ---
> diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
> --- a/drivers/net/wireless/p54/p54common.c 2008-11-01 20:41:08.000000000 +0100
> +++ b/drivers/net/wireless/p54/p54common.c 2008-11-02 13:34:24.000000000 +0100
> @@ -1059,6 +1059,7 @@ static int p54_tx_fill(struct ieee80211_
> break;
> case NL80211_IFTYPE_AP:
> case NL80211_IFTYPE_ADHOC:
> + case NL80211_IFTYPE_MESH_POINT:
> if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) {
> *aid = 0;
> *queue = 3;
> @@ -1571,6 +1572,7 @@ static int p54_add_interface(struct ieee
> case NL80211_IFTYPE_STATION:
> case NL80211_IFTYPE_ADHOC:
> case NL80211_IFTYPE_AP:
> + case NL80211_IFTYPE_MESH_POINT:
> priv->mode = conf->type;
> break;
> default:
> @@ -1590,6 +1592,7 @@ static int p54_add_interface(struct ieee
> p54_setup_mac(dev, P54_FILTER_TYPE_AP, priv->mac_addr);
> break;
> case NL80211_IFTYPE_ADHOC:
> + case NL80211_IFTYPE_MESH_POINT:
> p54_setup_mac(dev, P54_FILTER_TYPE_IBSS, NULL);
> break;
> default:
> @@ -1654,6 +1657,7 @@ static int p54_config_interface(struct i
> break;
> case NL80211_IFTYPE_AP:
> case NL80211_IFTYPE_ADHOC:
> + case NL80211_IFTYPE_MESH_POINT:
> memcpy(priv->bssid, conf->bssid, ETH_ALEN);
> ret = p54_set_freq(dev, dev->conf.channel->center_freq);
> if (ret)
> @@ -1829,6 +1833,7 @@ struct ieee80211_hw *p54_init_common(siz
>
> dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION |
> NL80211_IFTYPE_ADHOC |
> + NL80211_IFTYPE_MESH_POINT |
> NL80211_IFTYPE_AP);
>
> dev->channel_change_time = 1000; /* TODO: find actual value */
>