platform/kernel/linux-rpi.git
14 years agoath9k_htc: Handle TX queue overflow
Sujith [Mon, 29 Mar 2010 10:37:17 +0000 (16:07 +0530)]
ath9k_htc: Handle TX queue overflow

Stop/restart TX queues when the internal SKB
queue is full. This helps handle TX better
under heavy load.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath9k_htc: Simplify RX URB management
Sujith [Mon, 29 Mar 2010 10:37:15 +0000 (16:07 +0530)]
ath9k_htc: Simplify RX URB management

This patch introduces the usage of URB anchors,
thus reducing a large amount of code dealing with
URB maintenance within the driver. The RX callback now
takes care of freeing the SKB associated with each URB.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath9k_htc: Fix watchdog pattern parsing
Sujith [Mon, 29 Mar 2010 10:37:14 +0000 (16:07 +0530)]
ath9k_htc: Fix watchdog pattern parsing

Skip beyond the watchdog pattern properly.
This fixes occasional failure of the driver to load.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath9k_htc: Fix bug in aggregation initiation
Sujith [Mon, 29 Mar 2010 10:37:11 +0000 (16:07 +0530)]
ath9k_htc: Fix bug in aggregation initiation

Accessing the sta pointer in TX completion without
approprate RCU protection is wrong. Fix this.

Also, RCU protection is needed when the station's
aggregation state is updated. Handle this properly.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath9k_common: Move RX filter code to ath9k_htc
Sujith [Mon, 29 Mar 2010 10:37:09 +0000 (16:07 +0530)]
ath9k_common: Move RX filter code to ath9k_htc

The calculation of RX filter is fairly different
between ath9k and ath9k_htc, trying to make this
common between the two drivers would result in code churn.

While at it, remove the handling of PSPOLL filter,
it can be added when(if) AP support is added to ath9k_htc.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agomac80211: enable QoS explicitly in AP mode
Stanislaw Gruszka [Mon, 29 Mar 2010 10:18:36 +0000 (12:18 +0200)]
mac80211: enable QoS explicitly in AP mode

Enable QoS explicitly, when user space AP program will setup a QoS
queues. Currently this is not needed as iwlwifi not work in AP mode
and no other driver implement enable/disable QoS.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoiwlwifi: manage QoS by mac stack
Stanislaw Gruszka [Mon, 29 Mar 2010 10:18:35 +0000 (12:18 +0200)]
iwlwifi: manage QoS by mac stack

We activate/deactivate QoS and setup default queue parameters in iwlwifi
driver. Mac stack do the same, so we do not need repeat that work here.
Stack also will tell when disable QoS, this will fix driver when working
with older APs, that do not have QoS implemented.

Patch make "force = true" in iwl_active_qos() assuming we always want
to do with QoS what mac stack wish.

Patch also remove unused qos_cap bits, do not initialize qos_active = 0,
as we have it initialized to zero by kzalloc.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agomac80211: explicitly disable/enable QoS
Stanislaw Gruszka [Mon, 29 Mar 2010 10:18:34 +0000 (12:18 +0200)]
mac80211: explicitly disable/enable QoS

Add interface to disable/enable QoS (aka WMM or WME). Currently drivers
enable it explicitly when ->conf_tx method is called, and newer disable.
Disabling is needed for some APs, which do not support QoS, such
we should send QoS frames to them.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoiwlwifi: remove skb_linearize for rx frames
Zhu Yi [Mon, 29 Mar 2010 08:42:26 +0000 (16:42 +0800)]
iwlwifi: remove skb_linearize for rx frames

Remove skb_linearize() in the iwlwifi drivers since
mac80211 supports paged rx SKBs now.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agomac80211: support paged rx SKBs
Zhu Yi [Mon, 29 Mar 2010 09:35:07 +0000 (17:35 +0800)]
mac80211: support paged rx SKBs

Mac80211 drivers can now pass paged SKBs to mac80211 via
ieee80211_rx{_irqsafe}. The implementation currently use
skb_linearize() in a few places i.e. management frame
handling, software decryption, defragmentation and A-MSDU
process. We will optimize them one by one later.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Cc: Kalle Valo <kalle.valo@iki.fi>
Cc: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agob43: N-PHY: fix value written on 2055 radio setup
Rafał Miłecki [Sun, 28 Mar 2010 22:53:16 +0000 (00:53 +0200)]
b43: N-PHY: fix value written on 2055 radio setup

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agob43: N-PHY: prepare for rev3+ channel tables
Rafał Miłecki [Sun, 28 Mar 2010 22:53:15 +0000 (00:53 +0200)]
b43: N-PHY: prepare for rev3+ channel tables

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agob43: N-PHY: find table entry earlier for setting chanspec
Rafał Miłecki [Sun, 28 Mar 2010 22:53:14 +0000 (00:53 +0200)]
b43: N-PHY: find table entry earlier for setting chanspec

We do not want to partially change chanspec just to find out there is not
entry in table for given channel.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agob43: N-PHY: use b43_phy_n_sfo_cfg rather than duplicating same fields
Rafał Miłecki [Sun, 28 Mar 2010 22:53:13 +0000 (00:53 +0200)]
b43: N-PHY: use b43_phy_n_sfo_cfg rather than duplicating same fields

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agob43: N-PHY: some dummy PHY rev 3 calls
Rafał Miłecki [Sun, 28 Mar 2010 22:53:12 +0000 (00:53 +0200)]
b43: N-PHY: some dummy PHY rev 3 calls

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless: rt2x00: rt2800usb: new ids
Xose Vazquez Perez [Sun, 28 Mar 2010 18:02:41 +0000 (20:02 +0200)]
wireless: rt2x00: rt2800usb: new ids

Taken from latest ralink linux driver(RT3070_LinuxSTA_V2.3.0.1_20100208)
All of them are RT3070 devices.

Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless: rt2x00: rt2800pci: new id
Xose Vazquez Perez [Sun, 28 Mar 2010 15:48:05 +0000 (17:48 +0200)]
wireless: rt2x00: rt2800pci: new id

Taken from latest ralink linux driver, it's a RT3593 PCI/PCIe.

Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless: rt2x00: rt2800usb: delete id
Xose Vazquez Perez [Sun, 28 Mar 2010 14:57:32 +0000 (16:57 +0200)]
wireless: rt2x00: rt2800usb: delete id

It was removed in the windows inf file by ralink.
And it isn't on ralink linux drivers.

Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless: rt2x00: rt2800usb: identify ids-chips
Xose Vazquez Perez [Sun, 28 Mar 2010 13:52:43 +0000 (15:52 +0200)]
wireless: rt2x00: rt2800usb: identify ids-chips

Taken from ralink linux drivers:
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0B05,0x1784)}, /* Asus 3072 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x13D3,0x3305)}, /* AzureWave 3070*/
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x07D1,0x3C16)}, /* D-Link 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x203D,0x14A9)}, /* Encore 3070*/
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x1740,0x9707)}, /* EnGenius 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x1740,0x9708)}, /* EnGenius 3071 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x1740,0x9709)}, /* EnGenius 3072 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x04BB,0x0947)}, /* I-O DATA 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x04BB,0x0948)}, /* I-O DATA 3072 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x3822)}, /* MSI 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x3821)}, /* Ralink 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x3870)}, /* MSI 3070*/
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x3871)}, /* MSI 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x821A)}, /* Ralink 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x822A)}, /* MSI 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x870A)}, /* MSI 3070*/
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x871A)}, /* MSI 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DB0,0x899A)}, /* MSI 3070*/
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x20B8,0x8888)}, /* PARA INDUSTRIAL 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DF6,0x0048)}, /* Sitecom 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x0DF6,0x0047)}, /* Sitecom 3071 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x083A,0xA701)}, /* SMC 3070 */
RT3070_LinuxSTA_V2.3.0.1_20100208/common/rtusb_dev_id.c:        {USB_DEVICE(0x083A,0xA702)}, /* SMC 3072 */

Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Fix msleep() delay while waiting for completion
Saravanan Dhanabal [Fri, 26 Mar 2010 10:53:33 +0000 (12:53 +0200)]
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>
14 years agowl1271: Enable hardware keep alive messages
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:32 +0000 (12:53 +0200)]
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>
14 years agowl1271: Add keep-alive frame template support
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:31 +0000 (12:53 +0200)]
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>
14 years agowl1271: Configure HW connection monitor
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:30 +0000 (12:53 +0200)]
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>
14 years agowl1271: Disconnect if PSM entry fails
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:29 +0000 (12:53 +0200)]
wl1271: Disconnect if PSM entry fails

If PSM entry fails despite of retries, assume that the AP has been lost,
and indicate connection loss to the mac80211. This is much safer than
remaining in active mode.

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>
14 years agowl1271: Configure probe-request template when associated
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:28 +0000 (12:53 +0200)]
wl1271: Configure probe-request template when associated

Configure a probe-request template to the wl1271 when associated - the
wl1271 will use this to attempt to recover a connection when beacon loss
is detected.

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>
14 years agowl1271: Fix memory leak in firmware crash scenario
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:27 +0000 (12:53 +0200)]
wl1271: Fix memory leak in firmware crash scenario

The driver tx-queue flush operation leaks broadcast-frames. This leak occurs
if the driver is shut down while there are frames in TX buffers (such as in
a firmware crash scenario.) Fix the leak.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Removed checking of PSM from handling BSS_LOST_EVENT
Teemu Paasikivi [Fri, 26 Mar 2010 10:53:26 +0000 (12:53 +0200)]
wl1271: Removed checking of PSM from handling BSS_LOST_EVENT

Change the driver to call ieee80211_beacon_loss function always when
BSS_LOST_EVENT is received. Reason for the change is that entering PSM
might fail before driver receives BSS_LOST_EVENT. In such case the
driver would disable PSM and the stack would not be notified about beacon
loss and connection loss detection would be delayed by tens of seconds.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@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>
14 years agowl1271: Update beacon interval properly for ad-hoc
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:25 +0000 (12:53 +0200)]
wl1271: Update beacon interval properly for ad-hoc

Configure the hardware beacon interval to whatever requested by the
mac80211.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Fix ad-hoc mode handling
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:24 +0000 (12:53 +0200)]
wl1271: Fix ad-hoc mode handling

Fix the driver to better reflect the ad-hoc related configuration from the
mac80211.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Disable connection monitoring while not associated
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:23 +0000 (12:53 +0200)]
wl1271: Disable connection monitoring while not associated

The wl1271 does not support disabling the connection monitor feature.
Perform the next best thing by increasing the beacon-loss threshold and
BSS_LOSE event timeout to the maximum values.

This is needed, because we really don't want any random probe-requests during
scanning or especially while in ad-hoc mode and not beaconing.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: remove deprecated usage of RX status noise
Luciano Coelho [Fri, 26 Mar 2010 10:53:22 +0000 (12:53 +0200)]
wl1271: remove deprecated usage of RX status noise

The noise element in the ieee80211_rx_status struct has been deprecated in
commit "mac80211: deprecate RX status noise".  Remove the usage of this
element from wl1271_rx.c to avoid warnings.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: wait for disconnect command complete event
Luciano Coelho [Fri, 26 Mar 2010 10:53:21 +0000 (12:53 +0200)]
wl1271: wait for disconnect command complete event

Wait for the DISCONNECT_EVENT_COMPLETE_ID event after sending a disconnect
command.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: wait for join command complete event
Luciano Coelho [Fri, 26 Mar 2010 10:53:20 +0000 (12:53 +0200)]
wl1271: wait for join command complete event

Poll for join command completion instead of waiting blindly for 10 msecs.
There is a timeout of 100 msecs, if the command doesn't complete by then, we
return an error code.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Remove device MAC-address randomization
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:19 +0000 (12:53 +0200)]
wl1271: Remove device MAC-address randomization

This patch removes the MAC address randomization from the driver. This removes
a nasty Nokia-OUI dependency from the driver.

With this patch, unless an address is explicitly configured to the driver
by the user, only a zero address will be configured, and the driver will be
unable to start.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Update busyword checking mechanism
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:18 +0000 (12:53 +0200)]
wl1271: Update busyword checking mechanism

After the busy-words, if the firmware did not complete by the end of the
first (fixed) busy-word, a flip of the CS line is required to enable clocking
out the actual read data.

This patch changes the mechanism such that the CS line is flipped after each
busyword.

Also, the busy-word mechanism is finally enabled, and the number of fixed
busywords reduced to the minimum.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Fix memory leak in cmd_data_path
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:17 +0000 (12:53 +0200)]
wl1271: Fix memory leak in cmd_data_path

Fix a trivial memory leak in cmd_data_path.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Warnings caused by wrong format specifiers fixed
Teemu Paasikivi [Fri, 26 Mar 2010 10:53:16 +0000 (12:53 +0200)]
wl1271: Warnings caused by wrong format specifiers fixed

There were wrong format specifiers in wl1271_sdio.c in some debug
outputs. This has been causing warnings on some platforms.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@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>
14 years agowl1271: Configure clock-request drive mode to open-drain
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:15 +0000 (12:53 +0200)]
wl1271: Configure clock-request drive mode to open-drain

This patch configures the wl1271 chipset clock-request line to be
driver in open-drain mode instead of push-pull.

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>
14 years agowl1271: Fix memory leak in scan command handling
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:14 +0000 (12:53 +0200)]
wl1271: Fix memory leak in scan command handling

This patch fixes a memory leak in the scan command handling code.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Kalle Valo <kalle.valo@iki.fi>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Fix memory leaks in SPI initialization
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:13 +0000 (12:53 +0200)]
wl1271: Fix memory leaks in SPI initialization

This patch fixes two memory leaks in the SPI initialization code.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Kalle Valo <kalle.valo@iki.fi>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Add TX rate reporting
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:12 +0000 (12:53 +0200)]
wl1271: Add TX rate reporting

Add reporting of the used TX rate to mac80211 in the tx_status.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Clean up RX rate reporting
Juuso Oikarinen [Fri, 26 Mar 2010 10:53:11 +0000 (12:53 +0200)]
wl1271: Clean up RX rate reporting

Clean up the code to convert a firmware rate class index into an index
for the rate configuration table.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: fix wl1271_spi driver name
Luciano Coelho [Fri, 26 Mar 2010 10:53:10 +0000 (12:53 +0200)]
wl1271: fix wl1271_spi driver name

When forward porting some patches to upstream, there was a mistake and the
wl1271_spi driver name remained, erroneously, as "wl1271".  This patch fixes
that.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: add capability flag for phyerror counters
Bruno Randolf [Thu, 25 Mar 2010 05:49:47 +0000 (14:49 +0900)]
ath5k: add capability flag for phyerror counters

Chipsets since revision AR5213A (0x59) have hardware counters for PHY errors
which we can read directly from the registers. Older hardware has to use the RX
descriptor status to get a count of PHY errors. This will be used in several
places in the ANI implementation, so a flag is useful.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: update phy errors codes
Bruno Randolf [Thu, 25 Mar 2010 05:49:42 +0000 (14:49 +0900)]
ath5k: update phy errors codes

Update PHY error codes from the HAL, and keep them in statistics for debugging
via the 'frameerrors' file. This will also be used by ANI.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: simplify MIB counters
Bruno Randolf [Thu, 25 Mar 2010 05:49:36 +0000 (14:49 +0900)]
ath5k: simplify MIB counters

Let's keep MIB counter statistics in our own statistics structure and only
convert it to ieee80211_low_level_stats when needed by mac80211. Also we don't
need to read profile count registers in the MIB interrupt (they don't trigger
MIB interrupts).

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: initialize default noise floor
Bruno Randolf [Thu, 25 Mar 2010 05:49:31 +0000 (14:49 +0900)]
ath5k: initialize default noise floor

Initialize noise floor variable with a default of -95. This was used
uninitialized in the signal strength (RSSI -> dBm) conversion until the first
noise floor calibration was completed.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: keep beacon RSSI average
Bruno Randolf [Thu, 25 Mar 2010 05:49:25 +0000 (14:49 +0900)]
ath5k: keep beacon RSSI average

Keep an exponentially weighted moving average of the beacon RSSI in our BSS.
It will be used by the ANI implementation.

The averaging algorithm is copied from rt2x00, Thanks :)

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: move ath5k_hw_calibration_poll to base.c
Bruno Randolf [Thu, 25 Mar 2010 05:49:19 +0000 (14:49 +0900)]
ath5k: move ath5k_hw_calibration_poll to base.c

It's not a phy related funtion; It has more to do with the interrupt handler
and tasklet scheduling, so it belongs to base.c.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: optimize ath5k_hw_calibration_poll
Bruno Randolf [Thu, 25 Mar 2010 05:49:14 +0000 (14:49 +0900)]
ath5k: optimize ath5k_hw_calibration_poll

Optimize ath5k_hw_calibration_poll() since it is called on every singe
interrupt.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: remove the use of SWI interrupt
Bruno Randolf [Thu, 25 Mar 2010 05:49:09 +0000 (14:49 +0900)]
ath5k: remove the use of SWI interrupt

We don't need to generate a software interrupt (SWI) just to schedule a tasklet
- we can just schedule the tasklet directly.

Rename constants, names, etc to reflect the fact that we don't use SWI any more.

Also move the flag handling into the tasklet and prepare it to behave correctly
when there are multiple flags present.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath5k: remove static calibration interval variable
Bruno Randolf [Thu, 25 Mar 2010 05:49:03 +0000 (14:49 +0900)]
ath5k: remove static calibration interval variable

Remove static variable ath5k_calinterval which was used as a constant. Use a
#define instead. Also we don't need ah_cal_intval.

Signed-off-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless/libertas: remove trailing space in debugfs header
Frans Pop [Wed, 24 Mar 2010 18:46:35 +0000 (19:46 +0100)]
wireless/libertas: remove trailing space in debugfs header

Signed-off-by: Frans Pop <elendil@planet.nl>
Cc: libertas-dev@lists.infradead.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless/raylink: remove trailing space in messages
Frans Pop [Wed, 24 Mar 2010 18:46:34 +0000 (19:46 +0100)]
wireless/raylink: remove trailing space in messages

Signed-off-by: Frans Pop <elendil@planet.nl>
Cc: Corey Thomas <coreythomas@charter.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless/prism54: remove trailing space in messages
Frans Pop [Wed, 24 Mar 2010 18:46:33 +0000 (19:46 +0100)]
wireless/prism54: remove trailing space in messages

Signed-off-by: Frans Pop <elendil@planet.nl>
Cc: Luis R. Rodriguez <mcgrof@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless: remove trailing space in messages
Frans Pop [Wed, 24 Mar 2010 18:46:29 +0000 (19:46 +0100)]
wireless: remove trailing space in messages

Also correct indentation in net/wireless/reg.c.

Signed-off-by: Frans Pop <elendil@planet.nl>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoiwlwifi: avoid device type checking in generic code
Wey-Yi Guy [Fri, 19 Mar 2010 18:54:49 +0000 (11:54 -0700)]
iwlwifi: avoid device type checking in generic code

Avoid checking for specified device type to perform certain function,
switch to .cfg approach as more generic and better implementation
method.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: change spin_lock to spin_lock_irqsave
Wey-Yi Guy [Fri, 19 Mar 2010 17:36:09 +0000 (10:36 -0700)]
iwlwifi: change spin_lock to spin_lock_irqsave

Use spin_lock_irqsave() in interrupt handler to disable interrupts locally
and provide the spinlock on SMP. This covers both interrupt and SMP
concurrency.

With this changes, also fix the sparse warning issues.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Acked-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: remove "\n" from module parameter description
Wey-Yi Guy [Thu, 18 Mar 2010 22:37:49 +0000 (15:37 -0700)]
iwlwifi: remove "\n" from module parameter description

Remove the "\n" from following module parameter description:
 - enable wifi/bluetooth co-exist
 - led mode: 0=blinking, 1=On(RF On)/Off(RF Off), (default 0)
to be consistence with the rest of iwlagn/iwlcore module parameters format.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: Generic approach to measure temperature
Wey-Yi Guy [Thu, 18 Mar 2010 17:56:32 +0000 (10:56 -0700)]
iwlwifi: Generic approach to measure temperature

In stead of checking for 4965 and do KELVIN_TO_CELSIUS conversation, add
.cfg parameter for more generic approach.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: remove noise reporting
Johannes Berg [Thu, 18 Mar 2010 16:58:27 +0000 (09:58 -0700)]
iwlwifi: remove noise reporting

We go to great lengths to calculate this value
that is never used by mac80211. Additionally,
it is now deprecated by mac80211 and is causing
driver compilation to give warnings.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: add missing email address information
Wey-Yi Guy [Thu, 18 Mar 2010 01:57:13 +0000 (18:57 -0700)]
iwlwifi: add missing email address information

Add missing contact email address to iwl-5000.c

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: remove non-exist extern functions and structures
Wey-Yi Guy [Tue, 16 Mar 2010 19:37:28 +0000 (12:37 -0700)]
iwlwifi: remove non-exist extern functions and structures

After re-structure the agn files layout and move all the
agn shared functions out from iwl-5000.c, all those functions and data
structures do not need to be declare "extern" from iwl-5000.c in
iwl-dev.h.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: enable '6000 Series 2x2 AGN Gen2' adaptors
Jay Sternberg [Wed, 17 Mar 2010 23:16:12 +0000 (16:16 -0700)]
iwlwifi: enable '6000 Series 2x2 AGN Gen2' adaptors

Signed-off-by: Jay Sternberg <jay.e.sternberg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: more clean up to move agn only rx functions from iwlcore to iwlagn
Wey-Yi Guy [Wed, 17 Mar 2010 20:34:36 +0000 (13:34 -0700)]
iwlwifi: more clean up to move agn only rx functions from iwlcore to iwlagn

Move more functions only used by agn driver from iwlcore to iwlagn.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move agn only rx functions from iwlcore to iwlagn
Wey-Yi Guy [Wed, 17 Mar 2010 20:34:35 +0000 (13:34 -0700)]
iwlwifi: move agn only rx functions from iwlcore to iwlagn

Identify the rx functions only used by agn driver and move those from
iwlcore to iwlagn.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move agn only tx functions from iwlcore to iwlagn
Wey-Yi Guy [Wed, 17 Mar 2010 20:34:34 +0000 (13:34 -0700)]
iwlwifi: move agn only tx functions from iwlcore to iwlagn

Identify the tx functions only used by agn driver and move those from
iwlcore to iwlagn.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move agn module parameter structure to common place
Wey-Yi Guy [Tue, 16 Mar 2010 19:37:27 +0000 (12:37 -0700)]
iwlwifi: move agn module parameter structure to common place

agn module parameter data structure shared by all agn devices, move it
iwl-agn-lib.c file.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: each device has its own eeprom tx power version
Wey-Yi Guy [Tue, 16 Mar 2010 19:37:26 +0000 (12:37 -0700)]
iwlwifi: each device has its own eeprom tx power version

Each device has it own eeprom, so the tx power version could be
different, define TX_POWER_VERSION per device.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move agn common code to iwlagn library file
Wey-Yi Guy [Wed, 17 Mar 2010 00:47:58 +0000 (17:47 -0700)]
iwlwifi: move agn common code to iwlagn library file

Multiple iwlagn based devices share the same common functions.
Move those functions from iwl-5000.c to iwl-agn-lib.c file.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move ucode alive related code to separate file
Wey-Yi Guy [Tue, 16 Mar 2010 19:37:24 +0000 (12:37 -0700)]
iwlwifi: move ucode alive related code to separate file

uCode alive for iwlagn based devices share the same functions.
Move those functions from iwl-5000.c to iwl-agn-ucode.c.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move hw related defines to separate file
Wey-Yi Guy [Wed, 17 Mar 2010 00:41:23 +0000 (17:41 -0700)]
iwlwifi: move hw related defines to separate file

Multiple iwlagn based devices shared the same hw definitions.
Move device hardware related defines from iwl-5000-hw.h to iwl-agn-hw.h
file.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move tx queue related code to separate file
Wey-Yi Guy [Wed, 17 Mar 2010 00:41:22 +0000 (17:41 -0700)]
iwlwifi: move tx queue related code to separate file

Multiple iwlagn based devices shared the same tansmit queue functions.
Move tx queue related code from iwl-5000.c to iwl-agn-tx.c file.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move hcmd related code to separate file
Wey-Yi Guy [Tue, 16 Mar 2010 17:23:31 +0000 (10:23 -0700)]
iwlwifi: move hcmd related code to separate file

Multiple iwlagn based devices shared the same hcmd related functions.
Move from iwl-5000.c to iwl-agn-hcmd.c file.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: code cleanup for "load ucode" function
Wey-Yi Guy [Tue, 16 Mar 2010 17:23:30 +0000 (10:23 -0700)]
iwlwifi: code cleanup for "load ucode" function

Loading uCode functions are shared across multiple agn devices.
Move those functions to iwl-agn-ucode.c file with other uCode
related functions.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: move ucode loading related code to separated file
Wey-Yi Guy [Tue, 16 Mar 2010 17:23:29 +0000 (10:23 -0700)]
iwlwifi: move ucode loading related code to separated file

Multiple iwlagn based devices shared the same ucode loading procedure.
Move loading related code from iwl-5000.c to iwl-agn-ucode.c file.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: iwl_good_ack_health() only apply to AGN device
Wey-Yi Guy [Tue, 16 Mar 2010 17:46:31 +0000 (10:46 -0700)]
iwlwifi: iwl_good_ack_health() only apply to AGN device

iwl_good_ack_health() check for expected and actual ack count which only
apply to aggregation mode. Move the function to iwlagn module.

Reported-by: Chantry Xavier <chantry.xavier@gmail.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoRevert "iwlwifi: fix build error for CONFIG_IWLAGN=n"
Reinette Chatre [Thu, 25 Mar 2010 18:14:52 +0000 (11:14 -0700)]
Revert "iwlwifi: fix build error for CONFIG_IWLAGN=n"

This reverts commit 76232ebf898c4d5e657f2b663fbf7108bca80ded.

iwl_good_ack_health only applies to aggregation and thus only to iwlagn. We
can thus move the function to iwlagn instead of modifying compile flags.
This is done in following patch.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
14 years agoiwlwifi: fix build error for CONFIG_IWLAGN=n
John W. Linville [Wed, 24 Mar 2010 21:21:08 +0000 (17:21 -0400)]
iwlwifi: fix build error for CONFIG_IWLAGN=n

drivers/net/wireless/iwlwifi/iwl-rx.c: In function 'iwl_good_ack_health':
drivers/net/wireless/iwlwifi/iwl-rx.c:647: error: 'struct iwl_priv' has no member named '_agn'

Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agomac80211: remove unneed variable from ieee80211_tx_pending()
Dan Carpenter [Wed, 24 Mar 2010 11:56:41 +0000 (14:56 +0300)]
mac80211: remove unneed variable from ieee80211_tx_pending()

We don't need "sdata" any more after:
d84f323477260e773d5317ad7cbe50f76115cb47
mac80211: remove dev_hold/put calls

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agocfg80211: Improve connection quality maintenance docs in nl80211.h
Juuso Oikarinen [Wed, 24 Mar 2010 08:11:14 +0000 (10:11 +0200)]
cfg80211: Improve connection quality maintenance docs in nl80211.h

In nl80211.h, be a little more elaborate in the docs for the definitions
NL80211_ATTR_CQM_RSSI_THOLD and NL80211_ATTR_CQM_RSSI_HYST.

Reported-by: Luis R. Rodriguez <mcgrof@gmail.com>
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agomac80211: Add support for connection quality monitoring
Juuso Oikarinen [Tue, 23 Mar 2010 07:02:34 +0000 (09:02 +0200)]
mac80211: Add support for connection quality monitoring

Add support for the set_cqm_config op. This op function configures the
requested connection quality monitor rssi threshold and rssi hysteresis
values to the hardware  if the hardware supports
IEEE80211_HW_SUPPORTS_CQM.

For unsupported hardware, currently -EOPNOTSUPP is returned, so the mac80211
is currently not doing connection quality monitoring on the host. This could be
added later, if needed.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agocfg80211: Add connection quality monitoring support to nl80211
Juuso Oikarinen [Tue, 23 Mar 2010 07:02:33 +0000 (09:02 +0200)]
cfg80211: Add connection quality monitoring support to nl80211

Add support for basic configuration of a connection quality monitoring to the
nl80211 interface, and basic support for notifying about triggered monitoring
events.

Via this interface a user-space connection manager may configure and receive
pre-warning events of deteriorating WLAN connection quality, and start
preparing for roaming in advance, before the connection is already lost.

An example usage of such a trigger is starting scanning for nearby AP's in
an attempt to find one with better connection quality, and associate to it
before the connection characteristics of the existing connection become too bad
or the association is even lost, leading in a prolonged delay in connectivity.

The interface currently supports only RSSI, but it could be later extended
to include other parameters, such as signal-to-noise ratio, if need for that
arises.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agolibertas: add auto auth mode feature
Amitkumar Karwar [Fri, 26 Feb 2010 01:16:36 +0000 (17:16 -0800)]
libertas: add auto auth mode feature

Auto auth mode is enabled by default. If user doesn't specify the
auth mode, while association driver will first try with open mode
and then with shared key mode. If user specifies an auth mode,
auto auth is disabled and driver will not try association with
another auth mode.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoath9k_htc: Fix symbol collision with ath9k
Sujith [Wed, 24 Mar 2010 08:12:13 +0000 (13:42 +0530)]
ath9k_htc: Fix symbol collision with ath9k

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agodrivers/net/wireless/b43/main.c:4351: Fixed coding style
Daniel Ngu [Mon, 22 Mar 2010 11:52:44 +0000 (00:52 +1300)]
drivers/net/wireless/b43/main.c:4351: Fixed coding style

WARNING: braces {} are not necessary for any arm of this statement

Signed-off-by: Daniel Ngu <daniel.dy.ngu@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agomac80211: Add support for connection monitor in hardware
Juuso Oikarinen [Fri, 19 Mar 2010 05:14:53 +0000 (07:14 +0200)]
mac80211: Add support for connection monitor in hardware

This patch is based on a RFC patch by Kalle Valo.

The wl1271 has a feature which handles the connection monitor logic
in hardware, basically sending periodically nullfunc frames and reporting
to the host if AP is lost, after attempting to recover by sending
probe-requests to the AP.

Add support to mac80211 by adding a new flag IEEE80211_HW_CONNECTION_MONITOR
which prevents conn_mon_timer from triggering during idle periods, and
prevents sending probe-requests to the AP if beacon-loss is indicated by the
hardware.

Cc: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agodrivers/net/wireless/ray_cs.c: Use iw_handler function prototypes
Joe Perches [Fri, 19 Mar 2010 01:29:40 +0000 (18:29 -0700)]
drivers/net/wireless/ray_cs.c: Use iw_handler function prototypes

Change local functions that are cast to iw_handler to
the more standard use with "union iwreq_data *wrqu"
so the iw_handler array no longer needs the casts.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoorinoco/wext.c: Remove local #define STD_IW_HANDLER
Joe Perches [Fri, 19 Mar 2010 01:29:39 +0000 (18:29 -0700)]
orinoco/wext.c: Remove local #define STD_IW_HANDLER

Use IW_HANDLER from wireless.h instead

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agodrivers/net: Remove local #define IW_IOCTL, use IW_HANDLER
Joe Perches [Fri, 19 Mar 2010 01:29:38 +0000 (18:29 -0700)]
drivers/net: Remove local #define IW_IOCTL, use IW_HANDLER

Use #define IW_HANDLER from wireless.h instead

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agodrivers/net/wireless: Use IW_HANDLER macro
Joe Perches [Fri, 19 Mar 2010 01:29:37 +0000 (18:29 -0700)]
drivers/net/wireless: Use IW_HANDLER macro

Convert direct uses of [ (foo - SIOCIWFIRST) , fn)

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agonet/wireless/wext-core.c: Use IW_EVENT_IDX macro
Joe Perches [Fri, 19 Mar 2010 01:29:36 +0000 (18:29 -0700)]
net/wireless/wext-core.c: Use IW_EVENT_IDX macro

There's a wireless.h macro for this, might as well use it.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agonet/wireless/wext_core.c: Use IW_IOCTL_IDX macro
Joe Perches [Fri, 19 Mar 2010 01:29:35 +0000 (18:29 -0700)]
net/wireless/wext_core.c: Use IW_IOCTL_IDX macro

There's a wireless.h macro for this, might as well use it.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check
Joe Perches [Fri, 19 Mar 2010 01:29:33 +0000 (18:29 -0700)]
wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check

These two #defines use the same value, but
SIOCIWFIRST makes more sense in this use.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agoinclude/linux/wireless.h: Add IW_HANDLER macro to initialize array entry
Joe Perches [Fri, 19 Mar 2010 01:29:32 +0000 (18:29 -0700)]
include/linux/wireless.h: Add IW_HANDLER macro to initialize array entry

Copied the idea from orinoco

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Changed platform_device to be dynamically allocated
Teemu Paasikivi [Thu, 18 Mar 2010 10:26:46 +0000 (12:26 +0200)]
wl1271: Changed platform_device to be dynamically allocated

Changed platform_device to be allocated dynamically from the
wl1271_alloc_hw function. Also cleaned up error handling in the
wl1271_alloc_hw function and module probe functions.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-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>
14 years agowl1271: Remove circular interlocking related to the inetaddr notifier chain
Juuso Oikarinen [Thu, 18 Mar 2010 10:26:45 +0000 (12:26 +0200)]
wl1271: Remove circular interlocking related to the inetaddr notifier chain

Removing the wl1271 from the inet addr notifier chain sometimes causes the
registered handler to be called - causing locking problems if the removing
function is called from within the mutex.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Don't generate null func template for ad-hoc
Juuso Oikarinen [Thu, 18 Mar 2010 10:26:44 +0000 (12:26 +0200)]
wl1271: Don't generate null func template for ad-hoc

The null func template is not needed for ad-hoc, and it's generation is not
supported for ad-hoc (mac80211 will WARN about it.)

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Update filters properly
Juuso Oikarinen [Thu, 18 Mar 2010 10:26:43 +0000 (12:26 +0200)]
wl1271: Update filters properly

This patch adds support for the filters configured by the mac80211 stack.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
14 years agowl1271: Removed duplicate code from module remove function.
Teemu Paasikivi [Thu, 18 Mar 2010 10:26:42 +0000 (12:26 +0200)]
wl1271: Removed duplicate code from module remove function.

Removed duplicate code from wl1271_sdio module remove function. For
freeing stuff in the remove function wl1271_free_hw function is now
used.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-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>