Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 150444
b: refs/heads/master
c: 9656e85
h: refs/heads/master
v: v3
  • Loading branch information
Jussi Kivilinna authored and John W. Linville committed May 22, 2009
1 parent a7aa6ae commit f587d20
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 39 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 59620e9fd631703ecdc7a6d304231b45560b8d26
refs/heads/master: 9656e85ba24a9814f1705e0e3639281d15d6a419
46 changes: 8 additions & 38 deletions trunk/drivers/net/wireless/rndis_wlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* Driver for RNDIS based wireless USB devices.
*
* Copyright (C) 2007 by Bjorge Dijkstra <bjd@jooz.net>
* Copyright (C) 2008 by Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
* Copyright (C) 2008-2009 by Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -309,7 +309,6 @@ enum wpa_key_mgmt { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE,
#define CAP_MODE_80211B 2
#define CAP_MODE_80211G 4
#define CAP_MODE_MASK 7
#define CAP_SUPPORT_TXPOWER 8

#define WORK_LINK_UP (1<<0)
#define WORK_LINK_DOWN (1<<1)
Expand Down Expand Up @@ -1849,18 +1848,10 @@ static int rndis_iw_get_txpower(struct net_device *dev,
struct usbnet *usbdev = netdev_priv(dev);
struct rndis_wext_private *priv = get_rndis_wext_priv(usbdev);
__le32 tx_power;
int ret = 0, len;

if (priv->radio_on) {
if (priv->caps & CAP_SUPPORT_TXPOWER) {
len = sizeof(tx_power);
ret = rndis_query_oid(usbdev, OID_802_11_TX_POWER_LEVEL,
&tx_power, &len);
if (ret != 0)
return ret;
} else
/* fake incase not supported */
tx_power = cpu_to_le32(get_bcm4320_power(priv));
/* fake since changing tx_power (by userlevel) not supported */
tx_power = cpu_to_le32(get_bcm4320_power(priv));

wrqu->txpower.flags = IW_TXPOW_MWATT;
wrqu->txpower.value = le32_to_cpu(tx_power);
Expand All @@ -1873,7 +1864,7 @@ static int rndis_iw_get_txpower(struct net_device *dev,

devdbg(usbdev, "SIOCGIWTXPOW: %d", wrqu->txpower.value);

return ret;
return 0;
}


Expand All @@ -1883,7 +1874,6 @@ static int rndis_iw_set_txpower(struct net_device *dev,
struct usbnet *usbdev = netdev_priv(dev);
struct rndis_wext_private *priv = get_rndis_wext_priv(usbdev);
__le32 tx_power = 0;
int ret = 0;

if (!wrqu->txpower.disabled) {
if (wrqu->txpower.flags == IW_TXPOW_MWATT)
Expand All @@ -1906,22 +1896,10 @@ static int rndis_iw_set_txpower(struct net_device *dev,
devdbg(usbdev, "SIOCSIWTXPOW: %d", le32_to_cpu(tx_power));

if (le32_to_cpu(tx_power) != 0) {
if (priv->caps & CAP_SUPPORT_TXPOWER) {
/* turn radio on first */
if (!priv->radio_on)
disassociate(usbdev, 1);

ret = rndis_set_oid(usbdev, OID_802_11_TX_POWER_LEVEL,
&tx_power, sizeof(tx_power));
if (ret != 0)
ret = -EOPNOTSUPP;
return ret;
} else {
/* txpower unsupported, just turn radio on */
if (!priv->radio_on)
return disassociate(usbdev, 1);
return 0; /* all ready on */
}
/* txpower unsupported, just turn radio on */
if (!priv->radio_on)
return disassociate(usbdev, 1);
return 0; /* all ready on */
}

/* tx_power == 0, turn off radio */
Expand Down Expand Up @@ -2130,16 +2108,8 @@ static int rndis_wext_get_caps(struct usbnet *usbdev)
__le32 items[8];
} networks_supported;
int len, retval, i, n;
__le32 tx_power;
struct rndis_wext_private *priv = get_rndis_wext_priv(usbdev);

/* determine if supports setting txpower */
len = sizeof(tx_power);
retval = rndis_query_oid(usbdev, OID_802_11_TX_POWER_LEVEL, &tx_power,
&len);
if (retval == 0 && le32_to_cpu(tx_power) != 0xFF)
priv->caps |= CAP_SUPPORT_TXPOWER;

/* determine supported modes */
len = sizeof(networks_supported);
retval = rndis_query_oid(usbdev, OID_802_11_NETWORK_TYPES_SUPPORTED,
Expand Down

0 comments on commit f587d20

Please sign in to comment.