Search Linux Wireless

Re: [PATCH v2 1/2] cfg80211: Add support to set tx power for a station associated

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2017-02-01 23:06, Ben Greear wrote:
On 02/01/2017 09:27 AM, Ashok Raj Nagarajan wrote:

+static int nl80211_parse_sta_txpower_setting(struct genl_info *info,
+                         struct station_parameters *params)
+{
+    struct cfg80211_registered_device *rdev = info->user_ptr[0];
+    enum nl80211_tx_power_setting type;
+    int idx;
+
+    if (!rdev->ops->set_tx_power ||
+        !wiphy_ext_feature_isset(&rdev->wiphy,
+                     NL80211_EXT_FEATURE_STA_TX_PWR))
+        return -EOPNOTSUPP;

Maybe always let a user set to default value even if the driver does not
support setting specific values?


IMHO, having some default value in place of non-valid values may not be the right way.

If a user or user-space script wants to always be able to initialize
things to default
values, it would be nice if it did not have to pay specific attention
to whether the
NIC supports STA_TX_PWR feature or not.  Since a NIC that does not
support this feature will always
have sta TX power set to default by definition, that is why I think
you should let
the call succeed in that case.


I think it would be better/easier to handle the error cases in the user-space scripts than at the driver here, no? NIC that doesn't support this feature will set the tx power to the station depending on the rate algorithm in place. So the same NIC and same station will have different txpower depending on the environment? On the other hand, how do we decide what constant (?) default value to be sent to userspace?

Thanks,
Ashok

Thanks,
Ben



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux