linux_dsm_epyc7002/drivers/net
Johannes Berg 5cff20e6c5 mac80211: tell driver when idle
When we aren't doing anything in mac80211, we can turn off
much of the hardware, depending on the driver/hw. Not doing
anything, aka being idle, means:

 * no monitor interfaces
 * no AP/mesh/wds interfaces
 * any station interfaces are in DISABLED state
 * any IBSS interfaces aren't trying to be in a network
 * we aren't trying to scan

By creating a new function that verifies these conditions and calling
it at strategic points where the states of those conditions change,
we can easily make mac80211 tell the driver when we are idle to save
power.

Additionally, this fixes a small quirk where a recalculated powersave
state is passed to the driver even if the hardware is about to stopped
completely.

This patch intentionally doesn't touch radio_enabled because that is
currently implemented to be a soft rfkill which is inappropriate here
when we need to be able to wake up with low latency.

One thing I'm not entirely sure about is this:

  phy0: device no longer idle - in use
  wlan0: direct probe to AP 00:11:24:91:07:4d try 1
  wlan0 direct probe responded
  wlan0: authenticate with AP 00:11:24:91:07:4d
  wlan0: authenticated
> phy0: device now idle
> phy0: device no longer idle - in use
  wlan0: associate with AP 00:11:24:91:07:4d
  wlan0: RX AssocResp from 00:11:24:91:07:4d (capab=0x401 status=0 aid=1)
  wlan0: associated

Is it appropriate to go into idle state for a short time when we have
just authenticated, but not associated yet? This happens only with the
userspace SME, because we cannot really know how long it will wait
before asking us to associate. Would going idle after a short timeout
be more appropriate? We may need to revisit this, depending on what
happens.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-05-06 15:14:51 -04:00
..
appletalk
arcnet
arm ether3: convert to net_device_ops 2009-04-11 02:53:56 -07:00
atl1c atl1c: disable L1/L0s when link detected 2009-04-28 01:53:10 -07:00
atl1e drivers/net: replace BUG() with BUG_ON() if possible 2009-04-13 15:44:36 -07:00
atlx drivers/net: replace BUG() with BUG_ON() if possible 2009-04-13 15:44:36 -07:00
benet Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-16 17:35:26 -07:00
bonding Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-03 14:07:43 -07:00
can
chelsio chelsio: Use generic MDIO definitions and mdio_mii_ioctl() 2009-04-29 17:32:31 -07:00
cris eth_v10: convert to net_device_ops 2009-04-13 15:16:33 -07:00
cxgb3 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-03 14:07:43 -07:00
e1000 e1000/e1000e/igb/ixgb: do not use netif_wake_queue un-necessarily 2009-04-22 00:47:54 -07:00
e1000e e1000/e1000e/igb/ixgb: do not use netif_wake_queue un-necessarily 2009-04-22 00:47:54 -07:00
ehea net: remove driver_data direct access of struct device from more drivers 2009-05-04 21:33:19 -07:00
enic dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
fs_enet fs_enet: Remove dead code 2009-04-28 02:05:21 -07:00
hamradio Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jaswinder/net-next-2.6 2009-03-31 14:43:54 -07:00
ibm_newemac ibm_newemac: convert to netdev_ops 2009-04-11 02:06:45 -07:00
igb igb: Enable SCTP checksum offloading 2009-04-28 01:53:14 -07:00
igbvf igbvf: fix unused external references 2009-04-11 02:55:14 -07:00
irda sa1100_ir: fix build breakage 2009-04-21 18:12:11 -07:00
ixgb ixgb: Use generic MDIO definitions 2009-04-29 17:32:33 -07:00
ixgbe Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-29 20:30:35 -07:00
ixp2000 ixp2000/ixpdev: convert to net_device_ops 2009-04-16 02:20:13 -07:00
mlx4 mlx4_en: Handle page allocation failure during receive 2009-04-27 02:31:31 -07:00
myri10ge myri10ge: fix compile error 2009-04-17 15:45:15 -07:00
netxen netxen: fix firmware download 2009-04-28 22:44:31 -07:00
pcmcia 3c589_cs: add cis(firmware) of 3Com multifunction pcmcia card 2009-05-01 19:21:26 -07:00
phy phylib: add *_direct() variants of phy_connect and phy_attach functions 2009-04-27 02:53:46 -07:00
qlge dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
sfc sfc: Use generic MDIO flow control auto-negotiation functions 2009-04-29 17:32:37 -07:00
skfp trivial: fix typo "varaible" -> "variable" 2009-03-30 15:21:57 +02:00
tokenring dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
tulip net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
usb Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-03 14:07:43 -07:00
vxge Revert "vxge: use max() instead of VXGE_HW_SET_LEVEL" 2009-04-29 17:53:20 -07:00
wan wan/pc300_drv: convert to net_device_ops 2009-04-17 01:14:53 -07:00
wimax
wireless mac80211: tell driver when idle 2009-05-06 15:14:51 -04:00
3c59x.c
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
8139too.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-23 04:08:24 -07:00
8390.c 8390(p): remove old compat_net_dev_ops code 2009-04-16 02:20:06 -07:00
8390.h
8390p.c 8390p: fix build breakage 2009-04-24 04:45:33 -07:00
82596.c
a2065.c a2065: convert to net_device_ops 2009-04-14 21:57:00 -07:00
a2065.h
ac3200.c
acenic.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
acenic.h
amd8111e.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
amd8111e.h
apne.c
ariadne.c ariadne: convert to net_device_ops 2009-04-11 02:53:46 -07:00
ariadne.h
at1700.c
atarilance.c atarilance: convert to net_device_ops 2009-04-14 21:57:01 -07:00
atp.c
atp.h
au1000_eth.c au1000: convert to net_device_ops 2009-04-14 21:57:02 -07:00
au1000_eth.h
ax88796.c
b44.c dma-mapping: replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30) 2009-04-07 08:31:11 -07:00
b44.h
bfin_mac.c bfin_mac: convert to net_device_ops 2009-04-14 21:57:03 -07:00
bfin_mac.h
bmac.c bmac: convert to net_device_ops 2009-04-16 02:20:06 -07:00
bmac.h
bnx2_fw.h bnx2: Use request_firmware() 2009-04-04 16:51:14 -07:00
bnx2.c bnx2: Don't use reserved names 2009-04-08 15:50:07 -07:00
bnx2.h bnx2: Use request_firmware() 2009-04-04 16:51:14 -07:00
bnx2x_dump.h
bnx2x_fw_defs.h
bnx2x_fw_file_hdr.h bnx2x: Separated FW from the source. 2009-04-27 03:27:43 -07:00
bnx2x_hsi.h
bnx2x_init_ops.h bnx2x: Separated FW from the source. 2009-04-27 03:27:43 -07:00
bnx2x_init.h bnx2x: Separated FW from the source. 2009-04-27 03:27:43 -07:00
bnx2x_link.c
bnx2x_link.h
bnx2x_main.c bnx2x: driver version 1.48.105-1 2009-04-27 03:28:25 -07:00
bnx2x_reg.h
bnx2x.h bnx2x: Separated FW from the source. 2009-04-27 03:27:43 -07:00
bsd_comp.c
cassini.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
cassini.h
cpmac.c cpmac: convert to net_device_ops 2009-04-16 02:20:07 -07:00
cs89x0.c
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c declance: convert to net_device_ops 2009-04-14 21:57:04 -07:00
defxx.c
defxx.h
depca.c net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
depca.h
dl2k.c dma-mapping: replace all DMA_48BIT_MASK macro with DMA_BIT_MASK(48) 2009-04-07 08:31:10 -07:00
dl2k.h
dm9000.c dm9000: convert to net_device_ops 2009-04-16 02:20:08 -07:00
dm9000.h
dnet.c dnet: remove unused #include <version.h> 2009-04-02 16:31:45 -07:00
dnet.h
dummy.c
e100.c e100: do not go D3 in shutdown unless system is powering off 2009-04-28 22:42:39 -07:00
e2100.c
eepro.c
eexpress.c
eexpress.h
enc28j60_hw.h
enc28j60.c
epic100.c
eql.c drivers/net/eql.c: Fix a dev leakage. 2009-04-08 15:56:33 -07:00
es3210.c
eth16i.c
ethoc.c
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c net: Rework mpc5200 fec driver to use of_mdio infrastructure. 2009-04-27 02:53:47 -07:00
fec_mpc52xx.c net: Rework mpc5200 fec driver to use of_mdio infrastructure. 2009-04-27 02:53:47 -07:00
fec_mpc52xx.h
fec.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-16 17:35:26 -07:00
fec.h fec: do not typedef struct types 2009-04-16 02:34:48 -07:00
forcedeth.c forcedeth: add clock gating feature <resend> 2009-05-01 15:30:45 -07:00
fsl_pq_mdio.c net: fix fsl_pq_mdio driver to use module_init() 2009-04-27 02:53:53 -07:00
fsl_pq_mdio.h
gianfar_ethtool.c
gianfar_sysfs.c
gianfar.c gianfar: Use memset instead of cacheable_memzero 2009-04-28 08:04:10 -07:00
gianfar.h net: Rework gianfar driver to use of_mdio infrastructure. 2009-04-27 02:53:48 -07:00
hamachi.c
hp100.c net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
hp100.h
hp-plus.c
hp.c
hplance.c hplance: convert to net_device_ops 2009-04-16 02:20:08 -07:00
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c net: remove driver_data direct access of struct device from more drivers 2009-05-04 21:33:19 -07:00
ibmveth.h
ifb.c
ioc3-eth.c ioc3-eth: convert to net_device_ops 2009-04-13 15:16:31 -07:00
ipg.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ipg.h
isa-skeleton.c isa-skeleton: convert to net_device_ops 2009-04-13 15:16:30 -07:00
iseries_veth.c iseries_veth: fix build breakage 2009-04-19 18:42:58 -07:00
jazzsonic.c jazzsonic: convert to net_device_ops 2009-04-16 02:20:14 -07:00
jme.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
jme.h
Kconfig ixgbe: Use generic MDIO definitions and functions 2009-04-29 17:32:33 -07:00
korina.c korina: convert to net_device_ops 2009-04-16 02:20:15 -07:00
lance.c
lasi_82596.c
lib8390.c
lib82596.c lib82596: convert to net_device_ops 2009-04-16 02:20:15 -07:00
LICENSE.SRC
ll_temac_main.c net: add Xilinx ll_temac device driver 2009-04-27 02:53:52 -07:00
ll_temac_mdio.c net: add Xilinx ll_temac device driver 2009-04-27 02:53:52 -07:00
ll_temac.h net: add Xilinx ll_temac device driver 2009-04-27 02:53:52 -07:00
lne390.c
loopback.c loopback: packet drops accounting 2009-04-20 02:25:26 -07:00
lp486e.c
mac89x0.c mac89x0: convert to net_device_ops 2009-04-13 15:16:29 -07:00
mac8390.c
macb.c macb: Add support of the netpoll API 2009-05-04 11:08:41 -07:00
macb.h
mace.c mace: convert to net_device_ops 2009-04-16 02:20:16 -07:00
mace.h
macmace.c macmace: convert to net_device_ops 2009-04-16 02:20:16 -07:00
macsonic.c macsonic: convert to net_device_ops 2009-04-13 15:16:26 -07:00
macvlan.c net: factor out ethtool invocation of vlan/macvlan drivers 2009-04-21 02:00:51 -07:00
Makefile mdio: Add generic MDIO (clause 45) support functions 2009-04-29 17:32:29 -07:00
mdio.c ethtool/mdio: Support backplane mode negotiation 2009-04-29 17:32:40 -07:00
meth.c meth: convert to net_device_ops 2009-04-16 02:20:17 -07:00
meth.h
mii.c mii: Rewrite mii_ethtool_gset() to report mdio_support and lp_advertising 2009-04-29 17:32:42 -07:00
mipsnet.c mipsnet: convert to net_device_ops 2009-04-16 02:20:18 -07:00
mv643xx_eth.c mv643xx_eth: 64bit mib counter read fix 2009-04-29 17:24:19 -07:00
mvme147.c mvme147: convert to net_device_ops 2009-04-16 02:20:21 -07:00
myri_sbus.c myri_sbus: use request_firmware 2009-04-04 16:38:42 -07:00
myri_sbus.h
natsemi.c
ne2.c
ne2k-pci.c ne2k-pci: use dev->addr_len instead of "6" 2009-05-03 14:19:23 -07:00
ne3210.c net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
ne-h8300.c
ne.c
netconsole.c netconsole: take care of NETDEV_UNREGISTER event 2009-05-01 15:24:18 -07:00
netx-eth.c netx-eth: convert to net_device_ops 2009-04-16 02:20:22 -07:00
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c niu: Fix unused variable warning. 2009-04-08 15:52:16 -07:00
niu.h
ns83820.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
pasemi_mac_ethtool.c
pasemi_mac.c pasemi_mac: mac_to_intf() error not noticed 2009-04-27 03:20:17 -07:00
pasemi_mac.h net: Rework pasemi_mac driver to use of_mdio infrastructure 2009-04-27 02:53:49 -07:00
pci-skeleton.c pci-skeleton: convert to net_device_ops 2009-04-16 02:20:23 -07:00
pcnet32.c pcnet32: Remove pointless memory barriers 2009-04-29 17:22:30 -07:00
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c
pppol2tp.c drivers/net: replace BUG() with BUG_ON() if possible 2009-04-13 15:44:36 -07:00
pppox.c
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c net/ps3: Fix wireless AP connect error handling 2009-04-16 10:39:06 -04:00
ps3_gelic_wireless.h
qla3xxx.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
qla3xxx.h
r6040.c r6040: set MODULE_VERSION 2009-04-08 15:50:43 -07:00
r8169.c NET/r8169: Rework suspend and resume 2009-04-13 16:21:03 -07:00
rionet.c rionet: convert to net_device_ops 2009-04-16 02:20:24 -07:00
rrunner.c
rrunner.h
s2io-regs.h s2io: Use generic MDIO definitions 2009-04-29 17:32:34 -07:00
s2io.c s2io: Use generic MDIO definitions 2009-04-29 17:32:34 -07:00
s2io.h
sb1000.c
sb1250-mac.c net: remove driver_data direct access of struct device from more drivers 2009-05-04 21:33:19 -07:00
sc92031.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
seeq8005.c
seeq8005.h
sgiseeq.c sgiseeq: convert to net_device_ops 2009-04-16 02:20:25 -07:00
sgiseeq.h
sh_eth.c sh_eth: convert to net_device_ops 2009-04-13 15:16:25 -07:00
sh_eth.h
sis190.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
sis900.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
sis900.h
skge.c skge: fix occasional BUG during MTU change 2009-04-14 15:16:55 -07:00
skge.h
sky2.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
sky2.h
slhc.c
slip.c
slip.h
smc91x.c
smc91x.h Separate out the proc- and unit-specific header directories from the general 2009-04-10 14:33:48 +01:00
smc911x.c smc911x: convert to net_device_ops 2009-04-16 02:20:25 -07:00
smc911x.h
smc9194.c
smc9194.h
smc-mca.c net: remove driver_data direct access of struct device 2009-05-01 15:21:55 -07:00
smc-ultra32.c
smc-ultra.c
smsc911x.c smsc911x: add fifo byteswap support V2 2009-04-28 01:53:11 -07:00
smsc911x.h
smsc9420.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
smsc9420.h
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c
spider_net.h
starfire.c
stnic.c
sun3_82586.c sun3_82586: convert to net_device_ops 2009-04-13 15:16:24 -07:00
sun3_82586.h
sun3lance.c sun3lance: convert to net_device_ops 2009-04-16 02:20:26 -07:00
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
sungem.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c tc35815: convert to net_device_ops 2009-04-13 15:16:23 -07:00
tehuti.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
tehuti.h dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
tg3.c tg3: Update version to 3.99 2009-04-21 01:41:03 -07:00
tg3.h tg3: Limit CLKREQ fix to A[01] of 57780 asic rev 2009-04-21 01:41:02 -07:00
tlan.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
tlan.h
tsi108_eth.c tsi108_eth: convert to net_device_ops 2009-04-13 15:16:21 -07:00
tsi108_eth.h
tun.c tun: add IFF_TUN_EXCL flag to avoid opening a persistent device. 2009-04-27 03:23:54 -07:00
typhoon.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
typhoon.h
ucc_geth_ethtool.c ucc_geth: Remove unused header 2009-04-02 01:13:48 -07:00
ucc_geth.c net: Fix ucc_geth.c handling of fixed-link w/o phy-connection-type property. 2009-04-28 02:11:53 -07:00
ucc_geth.h net: Rework ucc_geth driver to use of_mdio infrastructure 2009-04-27 02:53:50 -07:00
veth.c veth: prevent oops caused by netdev destructor 2009-04-27 03:04:58 -07:00
via-rhine.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
via-velocity.c via-velocity : fix compilation warning. 2009-04-11 01:52:38 -07:00
via-velocity.h
virtio_net.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-03 14:07:43 -07:00
wd.c
xen-netfront.c
xtsonic.c xtsonic: convert to net_device_ops 2009-04-13 15:16:21 -07:00
yellowfin.c
znet.c
zorro8390.c