Skip to contentSkip to conversation

p54: enable Mesh Point support

PATCH In review Christian Lamparter 2 participants 3 messages Nov 14, 2008 – Nov 15, 2008 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/4 p54: enable Mesh Point support

This patch enables Mesh Point operation for any p54 device.

---

drivers/net/wireless/p54/p54common.c +5 -0
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
@@ -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 */
Acked-by on v1 1/4
#1 lore raw

Thanks!

Quoted 48 lines · Christian Lamparter

This patch enables Mesh Point operation for any p54 device.

---
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c

drivers/net/wireless/p54/p54common.c 2008-11-02 13:34:24.000000000 +0100 renamed from drivers/net/wireless/p54/p54common.c 2008-11-01 20:41:08.000000000 +0100 +5 -0
@@ -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 */
#2 lore raw

PATCH 1/4 p54: enable Mesh Point support v2

This patch enables Mesh Point operation for any p54 device.

---

drivers/net/wireless/p54/p54common.c +8 -3
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
@@ -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 */