diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-10-24 04:17:18 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-10-30 04:11:34 -0400 |
commit | c8442118ad9cd05cfe3b993f058e70ab25b1009a (patch) | |
tree | e9d454ef6461e70cf99de76f9dda52952b665e44 /net/wireless/rdev-ops.h | |
parent | 71fe96bf9db8b117d28de6f9ced606cae2ad9661 (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.h | 11 |
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 | ||
478 | static inline int rdev_set_tx_power(struct cfg80211_registered_device *rdev, | 478 | static 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 | ||
488 | static inline int rdev_get_tx_power(struct cfg80211_registered_device *rdev, | 489 | static 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 | } |