aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-12-20 04:57:02 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 15:58:38 -0500
commitce292a640228fded0d2e232216a19cba33e2cd0f (patch)
tree443b3881da774d1a81bc1709e2751cd3f8e9a256 /drivers/net/wireless/rt2x00
parent3f787bd6d596ff56625f440910944ef6f937af8d (diff)
rt2x00: Implement WDS support
WDS support should be very easy to handle, mac80211 handles everything for us, so all that is needed is to set the support flags and handle it in the add_interface() callback. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00config.c1
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c9
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mac.c1
3 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c
index a35265cc7540..ab139f2698b8 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -43,6 +43,7 @@ void rt2x00lib_config_intf(struct rt2x00_dev *rt2x00dev,
43 case NL80211_IFTYPE_ADHOC: 43 case NL80211_IFTYPE_ADHOC:
44 case NL80211_IFTYPE_AP: 44 case NL80211_IFTYPE_AP:
45 case NL80211_IFTYPE_MESH_POINT: 45 case NL80211_IFTYPE_MESH_POINT:
46 case NL80211_IFTYPE_WDS:
46 conf.sync = TSF_SYNC_BEACON; 47 conf.sync = TSF_SYNC_BEACON;
47 break; 48 break;
48 case NL80211_IFTYPE_STATION: 49 case NL80211_IFTYPE_STATION:
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 6a5712c6614c..8c0dae530aef 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -191,7 +191,8 @@ static void rt2x00lib_beacondone_iter(void *data, u8 *mac,
191 191
192 if (vif->type != NL80211_IFTYPE_AP && 192 if (vif->type != NL80211_IFTYPE_AP &&
193 vif->type != NL80211_IFTYPE_ADHOC && 193 vif->type != NL80211_IFTYPE_ADHOC &&
194 vif->type != NL80211_IFTYPE_MESH_POINT) 194 vif->type != NL80211_IFTYPE_MESH_POINT &&
195 vif->type != NL80211_IFTYPE_WDS)
195 return; 196 return;
196 197
197 /* 198 /*
@@ -782,7 +783,8 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
782 rt2x00dev->hw->wiphy->interface_modes |= 783 rt2x00dev->hw->wiphy->interface_modes |=
783 BIT(NL80211_IFTYPE_ADHOC) | 784 BIT(NL80211_IFTYPE_ADHOC) |
784 BIT(NL80211_IFTYPE_AP) | 785 BIT(NL80211_IFTYPE_AP) |
785 BIT(NL80211_IFTYPE_MESH_POINT); 786 BIT(NL80211_IFTYPE_MESH_POINT) |
787 BIT(NL80211_IFTYPE_WDS);
786 788
787 /* 789 /*
788 * Let the driver probe the device to detect the capabilities. 790 * Let the driver probe the device to detect the capabilities.
@@ -941,7 +943,8 @@ static void rt2x00lib_resume_intf(void *data, u8 *mac,
941 */ 943 */
942 if (vif->type == NL80211_IFTYPE_AP || 944 if (vif->type == NL80211_IFTYPE_AP ||
943 vif->type == NL80211_IFTYPE_ADHOC || 945 vif->type == NL80211_IFTYPE_ADHOC ||
944 vif->type == NL80211_IFTYPE_MESH_POINT) 946 vif->type == NL80211_IFTYPE_MESH_POINT ||
947 vif->type == NL80211_IFTYPE_WDS)
945 intf->delayed_flags |= DELAYED_UPDATE_BEACON; 948 intf->delayed_flags |= DELAYED_UPDATE_BEACON;
946 949
947 spin_unlock(&intf->lock); 950 spin_unlock(&intf->lock);
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 137386ebf68f..e6fba830d1d3 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -227,6 +227,7 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
227 case NL80211_IFTYPE_STATION: 227 case NL80211_IFTYPE_STATION:
228 case NL80211_IFTYPE_ADHOC: 228 case NL80211_IFTYPE_ADHOC:
229 case NL80211_IFTYPE_MESH_POINT: 229 case NL80211_IFTYPE_MESH_POINT:
230 case NL80211_IFTYPE_WDS:
230 /* 231 /*
231 * We don't support mixed combinations of 232 * We don't support mixed combinations of
232 * sta and ap interfaces. 233 * sta and ap interfaces.