diff options
author | Javier Lopez <jlopex@cozybit.com> | 2012-07-27 14:27:25 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-08-06 15:01:56 -0400 |
commit | da93c26d0b26139f33cebf9af55715452a10f374 (patch) | |
tree | a1520d2bd676544752f0a7fa9b84833c6f4940e1 /drivers | |
parent | c071b9f666beee2b27b5a4667f099026ca539bd7 (diff) |
carl9170: Add support for NL80211_IFTYPE_MESH_POINT interfaces
This patch contains following modifications:
- Add mesh capabilities on fw.c to permit creation of mesh
interfaces using this driver.
- Modify carl9170_set_operating_mode, to use AP-style beaconing
with mesh interfaces.
- Allow beacon updates for NL80211_IFTYPE_MESH_POINT type in
carl9170_handle_command_response.
- Add NL80211_IFTYPE_MESH_POINT case on carl9170_op_add_interfaces to
support mesh/ap/sta virtual interface combinations.
Signed-off-by: Javier Lopez <jlopex@cozybit.com>
Acked-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath/carl9170/fw.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/mac.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/main.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/rx.c | 1 |
4 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/carl9170/fw.c b/drivers/net/wireless/ath/carl9170/fw.c index c5ca6f1f5836..24ac2876a733 100644 --- a/drivers/net/wireless/ath/carl9170/fw.c +++ b/drivers/net/wireless/ath/carl9170/fw.c | |||
@@ -341,6 +341,7 @@ static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len) | |||
341 | if (SUPP(CARL9170FW_WLANTX_CAB)) { | 341 | if (SUPP(CARL9170FW_WLANTX_CAB)) { |
342 | if_comb_types |= | 342 | if_comb_types |= |
343 | BIT(NL80211_IFTYPE_AP) | | 343 | BIT(NL80211_IFTYPE_AP) | |
344 | BIT(NL80211_IFTYPE_MESH_POINT) | | ||
344 | BIT(NL80211_IFTYPE_P2P_GO); | 345 | BIT(NL80211_IFTYPE_P2P_GO); |
345 | } | 346 | } |
346 | } | 347 | } |
diff --git a/drivers/net/wireless/ath/carl9170/mac.c b/drivers/net/wireless/ath/carl9170/mac.c index 53415bfd8bef..f8676280dc36 100644 --- a/drivers/net/wireless/ath/carl9170/mac.c +++ b/drivers/net/wireless/ath/carl9170/mac.c | |||
@@ -318,10 +318,10 @@ int carl9170_set_operating_mode(struct ar9170 *ar) | |||
318 | bssid = common->curbssid; | 318 | bssid = common->curbssid; |
319 | 319 | ||
320 | switch (vif->type) { | 320 | switch (vif->type) { |
321 | case NL80211_IFTYPE_MESH_POINT: | ||
322 | case NL80211_IFTYPE_ADHOC: | 321 | case NL80211_IFTYPE_ADHOC: |
323 | cam_mode |= AR9170_MAC_CAM_IBSS; | 322 | cam_mode |= AR9170_MAC_CAM_IBSS; |
324 | break; | 323 | break; |
324 | case NL80211_IFTYPE_MESH_POINT: | ||
325 | case NL80211_IFTYPE_AP: | 325 | case NL80211_IFTYPE_AP: |
326 | cam_mode |= AR9170_MAC_CAM_AP; | 326 | cam_mode |= AR9170_MAC_CAM_AP; |
327 | 327 | ||
diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c index 858e58dfc4dc..18554ab76733 100644 --- a/drivers/net/wireless/ath/carl9170/main.c +++ b/drivers/net/wireless/ath/carl9170/main.c | |||
@@ -616,10 +616,12 @@ static int carl9170_op_add_interface(struct ieee80211_hw *hw, | |||
616 | 616 | ||
617 | goto unlock; | 617 | goto unlock; |
618 | 618 | ||
619 | case NL80211_IFTYPE_MESH_POINT: | ||
619 | case NL80211_IFTYPE_AP: | 620 | case NL80211_IFTYPE_AP: |
620 | if ((vif->type == NL80211_IFTYPE_STATION) || | 621 | if ((vif->type == NL80211_IFTYPE_STATION) || |
621 | (vif->type == NL80211_IFTYPE_WDS) || | 622 | (vif->type == NL80211_IFTYPE_WDS) || |
622 | (vif->type == NL80211_IFTYPE_AP)) | 623 | (vif->type == NL80211_IFTYPE_AP) || |
624 | (vif->type == NL80211_IFTYPE_MESH_POINT)) | ||
623 | break; | 625 | break; |
624 | 626 | ||
625 | err = -EBUSY; | 627 | err = -EBUSY; |
diff --git a/drivers/net/wireless/ath/carl9170/rx.c b/drivers/net/wireless/ath/carl9170/rx.c index 6f6a34155667..b813f43061f5 100644 --- a/drivers/net/wireless/ath/carl9170/rx.c +++ b/drivers/net/wireless/ath/carl9170/rx.c | |||
@@ -206,6 +206,7 @@ void carl9170_handle_command_response(struct ar9170 *ar, void *buf, u32 len) | |||
206 | 206 | ||
207 | case NL80211_IFTYPE_AP: | 207 | case NL80211_IFTYPE_AP: |
208 | case NL80211_IFTYPE_ADHOC: | 208 | case NL80211_IFTYPE_ADHOC: |
209 | case NL80211_IFTYPE_MESH_POINT: | ||
209 | carl9170_update_beacon(ar, true); | 210 | carl9170_update_beacon(ar, true); |
210 | break; | 211 | break; |
211 | 212 | ||