wl1271: Configure HW connection monitor

This patch configures the mac80211 to not perform connection monitoring
(periodic probe-requests) and instead rely on the hardware to do it.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
wl1271: Add keep-alive frame template support

Add support for keep-alive templates, which are indexed.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
wl1271: Enable hardware keep alive messages

This patch will enable the hardware keep-alive mode, configure the required
template, configure keep-alive parameters, and re-order JOIN's and ACX_AID
in such a way that the keep-alive is activated.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
wl1271: Fix msleep() delay while waiting for completion

After last transmission, the device goes to sleep earlier
than the configured dynamic power save timeout. If timeout
is set to 400ms, device enters into sleep mode at around
330ms since from last TX.

This patch removes the msleep(1), which causes the delay
after ELP wakeup. Replaced with udelay(10), the variation
is around 7-10ms.

Signed-off-by: Saravanan Dhanabal <ext-saravanan.dhanabal@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net: convert multicast list to list_head

Converts the list and the core manipulating with it to be the same as uc_list.

+uses two functions for adding/removing mc address (normal and "global"
 variant) instead of a function parameter.
+removes dev_mcast.c completely.
+exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for
 manipulation with lists on a sandbox (used in bonding and 80211 drivers)

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Conflicts:
	drivers/infiniband/hw/nes/nes_nic.c
	drivers/infiniband/ulp/ipoib/ipoib_multicast.c
	drivers/media/dvb/dvb-core/dvb_net.c
	drivers/net/3c505.c
	drivers/net/3c523.c
	drivers/net/3c527.c
	drivers/net/7990.c
	drivers/net/8139cp.c
	drivers/net/8139too.c
	drivers/net/82596.c
	drivers/net/a2065.c
	drivers/net/amd8111e.c
	drivers/net/arm/am79c961a.c
	drivers/net/arm/at91_ether.c
	drivers/net/arm/ixp4xx_eth.c
	drivers/net/arm/ks8695net.c
	drivers/net/at1700.c
	drivers/net/atl1c/atl1c_main.c
	drivers/net/atl1e/atl1e_main.c
	drivers/net/atlx/atl2.c
	drivers/net/atlx/atlx.c
	drivers/net/atp.c
	drivers/net/au1000_eth.c
	drivers/net/b44.c
	drivers/net/bcm63xx_enet.c
	drivers/net/benet/be_cmds.c
	drivers/net/bfin_mac.c
	drivers/net/bmac.c
	drivers/net/bnx2.c
	drivers/net/bnx2x_main.c
	drivers/net/bonding/bond_main.c
	drivers/net/bonding/bonding.h
	drivers/net/cassini.c
	drivers/net/chelsio/pm3393.c
	drivers/net/cpmac.c
	drivers/net/cris/eth_v10.c
	drivers/net/cxgb3/xgmac.c
	drivers/net/davinci_emac.c
	drivers/net/declance.c
	drivers/net/defxx.c
	drivers/net/depca.c
	drivers/net/dl2k.c
	drivers/net/dm9000.c
	drivers/net/e100.c
	drivers/net/e1000/e1000_main.c
	drivers/net/e1000e/netdev.c
	drivers/net/eepro.c
	drivers/net/eexpress.c
	drivers/net/ehea/ehea_main.c
	drivers/net/enic/enic_main.c
	drivers/net/epic100.c
	drivers/net/ethoc.c
	drivers/net/ewrk3.c
	drivers/net/fealnx.c
	drivers/net/fec.c
	drivers/net/fec_mpc52xx.c
	drivers/net/forcedeth.c
	drivers/net/fs_enet/mac-fcc.c
	drivers/net/fs_enet/mac-fec.c
	drivers/net/fs_enet/mac-scc.c
	drivers/net/gianfar.c
	drivers/net/hamachi.c
	drivers/net/hp100.c
	drivers/net/ibm_newemac/core.c
	drivers/net/ibmlana.c
	drivers/net/ibmveth.c
	drivers/net/igb/igb_main.c
	drivers/net/igbvf/netdev.c
	drivers/net/ioc3-eth.c
	drivers/net/ipg.c
	drivers/net/iseries_veth.c
	drivers/net/ixgb/ixgb_main.c
	drivers/net/ixgbe/ixgbe_common.c
	drivers/net/ixgbevf/vf.c
	drivers/net/jme.c
	drivers/net/korina.c
	drivers/net/ks8851.c
	drivers/net/ks8851_mll.c
	drivers/net/lib82596.c
	drivers/net/lib8390.c
	drivers/net/ll_temac_main.c
	drivers/net/lp486e.c
	drivers/net/macb.c
	drivers/net/mace.c
	drivers/net/macmace.c
	drivers/net/mlx4/en_netdev.c
	drivers/net/mv643xx_eth.c
	drivers/net/myri10ge/myri10ge.c
	drivers/net/natsemi.c
	drivers/net/netxen/netxen_nic_hw.c
	drivers/net/ni52.c
	drivers/net/niu.c
	drivers/net/pci-skeleton.c
	drivers/net/pcmcia/axnet_cs.c
	drivers/net/pcmcia/fmvj18x_cs.c
	drivers/net/pcmcia/nmclan_cs.c
	drivers/net/pcmcia/smc91c92_cs.c
	drivers/net/pcmcia/xirc2ps_cs.c
	drivers/net/pcnet32.c
	drivers/net/ps3_gelic_net.c
	drivers/net/qlge/qlge_main.c
	drivers/net/r6040.c
	drivers/net/r8169.c
	drivers/net/s2io.c
	drivers/net/sb1250-mac.c
	drivers/net/sc92031.c
	drivers/net/sfc/efx.c
	drivers/net/sis190.c
	drivers/net/sis900.c
	drivers/net/skfp/skfddi.c
	drivers/net/skge.c
	drivers/net/sky2.c
	drivers/net/smc911x.c
	drivers/net/smc9194.c
	drivers/net/smc91x.c
	drivers/net/smsc911x.c
	drivers/net/smsc9420.c
	drivers/net/sonic.c
	drivers/net/spider_net.c
	drivers/net/starfire.c
	drivers/net/sun3_82586.c
	drivers/net/sunbmac.c
	drivers/net/sundance.c
	drivers/net/sungem.c
	drivers/net/sunhme.c
	drivers/net/sunlance.c
	drivers/net/sunqe.c
	drivers/net/sunvnet.c
	drivers/net/tc35815.c
	drivers/net/tehuti.c
	drivers/net/tg3.c
	drivers/net/tlan.c
	drivers/net/tokenring/3c359.c
	drivers/net/tokenring/ibmtr.c
	drivers/net/tokenring/lanstreamer.c
	drivers/net/tokenring/olympic.c
	drivers/net/tokenring/tms380tr.c
	drivers/net/tsi108_eth.c
	drivers/net/tulip/de2104x.c
	drivers/net/tulip/de4x5.c
	drivers/net/tulip/dmfe.c
	drivers/net/tulip/tulip_core.c
	drivers/net/tulip/uli526x.c
	drivers/net/tulip/winbond-840.c
	drivers/net/typhoon.c
	drivers/net/ucc_geth.c
	drivers/net/usb/asix.c
	drivers/net/usb/catc.c
	drivers/net/usb/dm9601.c
	drivers/net/usb/mcs7830.c
	drivers/net/usb/smsc95xx.c
	drivers/net/via-rhine.c
	drivers/net/via-velocity.c
	drivers/net/virtio_net.c
	drivers/net/vmxnet3/vmxnet3_drv.c
	drivers/net/vxge/vxge-main.c
	drivers/net/wireless/libertas/main.c
	drivers/net/wireless/mwl8k.c
	drivers/net/wireless/orinoco/hw.c
	drivers/net/wireless/ray_cs.c
	drivers/net/wireless/rndis_wlan.c
	drivers/net/wireless/zd1201.c
	drivers/net/yellowfin.c
	drivers/s390/net/qeth_l2_main.c
	drivers/scsi/fcoe/fcoe.c
	drivers/staging/arlan/arlan-main.c
	drivers/staging/et131x/et131x_netdev.c
	drivers/staging/slicoss/slicoss.c
	drivers/staging/vt6655/device_main.c
	drivers/staging/vt6656/main_usb.c
	drivers/staging/wavelan/wavelan.c
	drivers/staging/wavelan/wavelan_cs.c
	drivers/staging/winbond/wbusb.c
	include/linux/netdevice.h
	net/bluetooth/bnep/netdev.c
	net/core/Makefile
	net/core/dev.c
	net/core/dev_addr_lists.c
	net/core/dev_mcast.c