diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-04 11:47:58 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-04 11:47:58 -0700 | 
| commit | 6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7 (patch) | |
| tree | 8f3892fc44f1e403675a6d7e88fda5c70e56ee4c /drivers/net/wireless/libertas/ethtool.c | |
| parent | 5abd9ccced7a726c817dd6b5b96bc933859138d1 (diff) | |
| parent | 3ff1c25927e3af61c6bf0e4ed959504058ae4565 (diff) | |
| download | olio-linux-3.10-6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7.tar.xz olio-linux-3.10-6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)
  phy/marvell: add 88ec048 support
  igb: Program MDICNFG register prior to PHY init
  e1000e: correct MAC-PHY interconnect register offset for 82579
  hso: Add new product ID
  can: Add driver for esd CAN-USB/2 device
  l2tp: fix export of header file for userspace
  can-raw: Fix skb_orphan_try handling
  Revert "net: remove zap_completion_queue"
  net: cleanup inclusion
  phy/marvell: add 88e1121 interface mode support
  u32: negative offset fix
  net: Fix a typo from "dev" to "ndev"
  igb: Use irq_synchronize per vector when using MSI-X
  ixgbevf: fix null pointer dereference due to filter being set for VLAN 0
  e1000e: Fix irq_synchronize in MSI-X case
  e1000e: register pm_qos request on hardware activation
  ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice
  net: Add getsockopt support for TCP thin-streams
  cxgb4: update driver version
  cxgb4: add new PCI IDs
  ...
Manually fix up conflicts in:
 - drivers/net/e1000e/netdev.c: due to pm_qos registration
   infrastructure changes
 - drivers/net/phy/marvell.c: conflict between adding 88ec048 support
   and cleaning up the IDs
 - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req
   conflict (registration change vs marking it static)
Diffstat (limited to 'drivers/net/wireless/libertas/ethtool.c')
| -rw-r--r-- | drivers/net/wireless/libertas/ethtool.c | 29 | 
1 files changed, 10 insertions, 19 deletions
diff --git a/drivers/net/wireless/libertas/ethtool.c b/drivers/net/wireless/libertas/ethtool.c index 3804a58d7f4..50193aac679 100644 --- a/drivers/net/wireless/libertas/ethtool.c +++ b/drivers/net/wireless/libertas/ethtool.c @@ -2,13 +2,8 @@  #include <linux/ethtool.h>  #include <linux/delay.h> -#include "host.h"  #include "decl.h" -#include "defs.h" -#include "dev.h" -#include "wext.h"  #include "cmd.h" -#include "mesh.h"  static void lbs_ethtool_get_drvinfo(struct net_device *dev, @@ -69,14 +64,11 @@ static void lbs_ethtool_get_wol(struct net_device *dev,  {  	struct lbs_private *priv = dev->ml_priv; -	if (priv->wol_criteria == 0xffffffff) { -		/* Interface driver didn't configure wake */ -		wol->supported = wol->wolopts = 0; -		return; -	} -  	wol->supported = WAKE_UCAST|WAKE_MCAST|WAKE_BCAST|WAKE_PHY; +	if (priv->wol_criteria == EHS_REMOVE_WAKEUP) +		return; +  	if (priv->wol_criteria & EHS_WAKE_ON_UNICAST_DATA)  		wol->wolopts |= WAKE_UCAST;  	if (priv->wol_criteria & EHS_WAKE_ON_MULTICAST_DATA) @@ -91,23 +83,22 @@ static int lbs_ethtool_set_wol(struct net_device *dev,  			       struct ethtool_wolinfo *wol)  {  	struct lbs_private *priv = dev->ml_priv; -	uint32_t criteria = 0;  	if (wol->wolopts & ~(WAKE_UCAST|WAKE_MCAST|WAKE_BCAST|WAKE_PHY))  		return -EOPNOTSUPP; +	priv->wol_criteria = 0;  	if (wol->wolopts & WAKE_UCAST) -		criteria |= EHS_WAKE_ON_UNICAST_DATA; +		priv->wol_criteria |= EHS_WAKE_ON_UNICAST_DATA;  	if (wol->wolopts & WAKE_MCAST) -		criteria |= EHS_WAKE_ON_MULTICAST_DATA; +		priv->wol_criteria |= EHS_WAKE_ON_MULTICAST_DATA;  	if (wol->wolopts & WAKE_BCAST) -		criteria |= EHS_WAKE_ON_BROADCAST_DATA; +		priv->wol_criteria |= EHS_WAKE_ON_BROADCAST_DATA;  	if (wol->wolopts & WAKE_PHY) -		criteria |= EHS_WAKE_ON_MAC_EVENT; +		priv->wol_criteria |= EHS_WAKE_ON_MAC_EVENT;  	if (wol->wolopts == 0) -		criteria |= EHS_REMOVE_WAKEUP; - -	return lbs_host_sleep_cfg(priv, criteria, (struct wol_config *)NULL); +		priv->wol_criteria |= EHS_REMOVE_WAKEUP; +	return 0;  }  const struct ethtool_ops lbs_ethtool_ops = {  |