aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/rdev-ops.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-10-24 04:17:18 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-10-30 04:11:34 -0400
commitc8442118ad9cd05cfe3b993f058e70ab25b1009a (patch)
treee9d454ef6461e70cf99de76f9dda52952b665e44 /net/wireless/rdev-ops.h
parent71fe96bf9db8b117d28de6f9ced606cae2ad9661 (diff)
cfg80211: allow per interface TX power setting
The TX power setting is currently per wiphy (hardware device) but with multi-channel capabilities that doesn't make much sense any more. Allow drivers (and mac80211) to advertise support for per-interface TX power configuration. When the TX power is configured for the wiphy, the wdev will be NULL and the driver can still handle that, but when a wdev is given the TX power can be set only for that wdev now. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/rdev-ops.h')
-rw-r--r--net/wireless/rdev-ops.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/net/wireless/rdev-ops.h b/net/wireless/rdev-ops.h
index eb5f8974e148..6e5fa659068d 100644
--- a/net/wireless/rdev-ops.h
+++ b/net/wireless/rdev-ops.h
@@ -476,21 +476,22 @@ rdev_set_wiphy_params(struct cfg80211_registered_device *rdev, u32 changed)
476} 476}
477 477
478static inline int rdev_set_tx_power(struct cfg80211_registered_device *rdev, 478static inline int rdev_set_tx_power(struct cfg80211_registered_device *rdev,
479 struct wireless_dev *wdev,
479 enum nl80211_tx_power_setting type, int mbm) 480 enum nl80211_tx_power_setting type, int mbm)
480{ 481{
481 int ret; 482 int ret;
482 trace_rdev_set_tx_power(&rdev->wiphy, type, mbm); 483 trace_rdev_set_tx_power(&rdev->wiphy, wdev, type, mbm);
483 ret = rdev->ops->set_tx_power(&rdev->wiphy, type, mbm); 484 ret = rdev->ops->set_tx_power(&rdev->wiphy, wdev, type, mbm);
484 trace_rdev_return_int(&rdev->wiphy, ret); 485 trace_rdev_return_int(&rdev->wiphy, ret);
485 return ret; 486 return ret;
486} 487}
487 488
488static inline int rdev_get_tx_power(struct cfg80211_registered_device *rdev, 489static inline int rdev_get_tx_power(struct cfg80211_registered_device *rdev,
489 int *dbm) 490 struct wireless_dev *wdev, int *dbm)
490{ 491{
491 int ret; 492 int ret;
492 trace_rdev_get_tx_power(&rdev->wiphy); 493 trace_rdev_get_tx_power(&rdev->wiphy, wdev);
493 ret = rdev->ops->get_tx_power(&rdev->wiphy, dbm); 494 ret = rdev->ops->get_tx_power(&rdev->wiphy, wdev, dbm);
494 trace_rdev_return_int_int(&rdev->wiphy, ret, *dbm); 495 trace_rdev_return_int_int(&rdev->wiphy, ret, *dbm);
495 return ret; 496 return ret;
496} 497}