diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-06-06 02:18:22 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-06-06 15:18:17 -0400 |
commit | e8c9bd5b8d807cfe6c923265969a523b1ba1e6c2 (patch) | |
tree | e36cab1a3b2fb25bdc84115e3472a19672045dbe /drivers/net/wireless/libertas/cfg.c | |
parent | 7c9c46c16d2d1d232f3296924162de293477f017 (diff) |
cfg80211: clarify set_channel APIs
Now that we've removed all uses of the set_channel
API except for the monitor channel and in libertas,
clarify this. Split the libertas mesh use into a
new libertas_set_mesh_channel() operation, just to
keep backward compatibility, and rename the normal
set_channel() to set_monitor_channel().
Also describe the desired set_monitor_channel()
semantics more clearly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cfg.c')
-rw-r--r-- | drivers/net/wireless/libertas/cfg.c | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c index 2fa879b015b6..f4a203049fb4 100644 --- a/drivers/net/wireless/libertas/cfg.c +++ b/drivers/net/wireless/libertas/cfg.c | |||
@@ -435,24 +435,40 @@ static int lbs_add_wpa_tlv(u8 *tlv, const u8 *ie, u8 ie_len) | |||
435 | * Set Channel | 435 | * Set Channel |
436 | */ | 436 | */ |
437 | 437 | ||
438 | static int lbs_cfg_set_channel(struct wiphy *wiphy, | 438 | static int lbs_cfg_set_monitor_channel(struct wiphy *wiphy, |
439 | struct net_device *netdev, | 439 | struct ieee80211_channel *channel, |
440 | struct ieee80211_channel *channel, | 440 | enum nl80211_channel_type channel_type) |
441 | enum nl80211_channel_type channel_type) | ||
442 | { | 441 | { |
443 | struct lbs_private *priv = wiphy_priv(wiphy); | 442 | struct lbs_private *priv = wiphy_priv(wiphy); |
444 | int ret = -ENOTSUPP; | 443 | int ret = -ENOTSUPP; |
445 | 444 | ||
446 | lbs_deb_enter_args(LBS_DEB_CFG80211, "iface %s freq %d, type %d", | 445 | lbs_deb_enter_args(LBS_DEB_CFG80211, "freq %d, type %d", |
447 | netdev_name(netdev), channel->center_freq, channel_type); | 446 | channel->center_freq, channel_type); |
448 | 447 | ||
449 | if (channel_type != NL80211_CHAN_NO_HT) | 448 | if (channel_type != NL80211_CHAN_NO_HT) |
450 | goto out; | 449 | goto out; |
451 | 450 | ||
452 | if (netdev == priv->mesh_dev) | 451 | ret = lbs_set_channel(priv, channel->hw_value); |
453 | ret = lbs_mesh_set_channel(priv, channel->hw_value); | 452 | |
454 | else | 453 | out: |
455 | ret = lbs_set_channel(priv, channel->hw_value); | 454 | lbs_deb_leave_args(LBS_DEB_CFG80211, "ret %d", ret); |
455 | return ret; | ||
456 | } | ||
457 | |||
458 | static int lbs_cfg_set_mesh_channel(struct wiphy *wiphy, | ||
459 | struct net_device *netdev, | ||
460 | struct ieee80211_channel *channel) | ||
461 | { | ||
462 | struct lbs_private *priv = wiphy_priv(wiphy); | ||
463 | int ret = -ENOTSUPP; | ||
464 | |||
465 | lbs_deb_enter_args(LBS_DEB_CFG80211, "iface %s freq %d", | ||
466 | netdev_name(netdev), channel->center_freq); | ||
467 | |||
468 | if (netdev != priv->mesh_dev) | ||
469 | goto out; | ||
470 | |||
471 | ret = lbs_mesh_set_channel(priv, channel->hw_value); | ||
456 | 472 | ||
457 | out: | 473 | out: |
458 | lbs_deb_leave_args(LBS_DEB_CFG80211, "ret %d", ret); | 474 | lbs_deb_leave_args(LBS_DEB_CFG80211, "ret %d", ret); |
@@ -2029,7 +2045,8 @@ static int lbs_leave_ibss(struct wiphy *wiphy, struct net_device *dev) | |||
2029 | */ | 2045 | */ |
2030 | 2046 | ||
2031 | static struct cfg80211_ops lbs_cfg80211_ops = { | 2047 | static struct cfg80211_ops lbs_cfg80211_ops = { |
2032 | .set_channel = lbs_cfg_set_channel, | 2048 | .set_monitor_channel = lbs_cfg_set_monitor_channel, |
2049 | .libertas_set_mesh_channel = lbs_cfg_set_mesh_channel, | ||
2033 | .scan = lbs_cfg_scan, | 2050 | .scan = lbs_cfg_scan, |
2034 | .connect = lbs_cfg_connect, | 2051 | .connect = lbs_cfg_connect, |
2035 | .disconnect = lbs_cfg_disconnect, | 2052 | .disconnect = lbs_cfg_disconnect, |