profile/ivi/kernel-x86-ivi.git
12 years agowl12xx: fix SDIO suspend/resume
Eyal Shapira [Tue, 8 Nov 2011 13:56:55 +0000 (15:56 +0200)]
wl12xx: fix SDIO suspend/resume

wl1271_suspend/resume() accessed the wrong struct and not wl1271
which caused it to think that wow was enabled when it wasn't.

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: handle idle changes per-interface
Eliad Peller [Sun, 23 Oct 2011 06:21:55 +0000 (08:21 +0200)]
wl12xx: handle idle changes per-interface

Idle changes are currently handled per hardware.
However, some operations should be done only per-interface.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: use p2p rate index when the skb has the NO_CCK flag
Eliad Peller [Tue, 1 Nov 2011 07:23:52 +0000 (09:23 +0200)]
wl12xx: use p2p rate index when the skb has the NO_CCK flag

If the skb contains the NO_CCK flag, use the p2p rate index
(which contains only the OFDM rates)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: set scan probe requests rate according to the no_cck flag
Guy Eilam [Tue, 1 Nov 2011 07:23:51 +0000 (09:23 +0200)]
wl12xx: set scan probe requests rate according to the no_cck flag

Set the TX rate of probe requests during scanning according to the
no_cck flag in the scan request struct.

Signed-off-by: Guy Eilam <guy@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: increase firmware upload chunk size
Luciano Coelho [Thu, 3 Nov 2011 06:44:43 +0000 (08:44 +0200)]
wl12xx: increase firmware upload chunk size

The chunk size used during firmware upload was set to 512, which is
the size of a single SDIO block (or two).  This is very inneficient
because we send one or two blocks only per SDIO transaction and don't
get the full benefits of sdio block transfers.

This patch increases the chunk size to 16K.  This more than doubles
the transfer speed both in wl127x and wl128x chips, with greater
impact on the latter:

wl127x:   512 bytes chunk -> ~132ms
        16384 bytes chunk ->  ~57ms
wl128x:   512 bytes chunk -> ~216ms
        16384 bytes chunk ->  ~37ms

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: use the same SDIO block size for all different chips
Luciano Coelho [Thu, 3 Nov 2011 06:44:42 +0000 (08:44 +0200)]
wl12xx: use the same SDIO block size for all different chips

The sdio driver uses a block size of 512 bytes by default.  With our
card, this doesn't work correctly because it sets the block size FBR
in the chip too early (ie. before the chip is powered on).  Thus, if
we don't set it explicitly, block mode remains disabled in the chip.
If we try to send more data than fits in one block, the sdio driver
will split it into separate blocks before sending to the chip.  This
causes problems because the chip is not expecting multiple blocks.

At the moment this is not a problem, because we use chunks of 512
bytes for firmware upload and the data is always sent in byte mode.
In the next patch, we will change the chunk size to a bigger value, so
this patch is a preparation for that.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: change blocksize alignment quirk to negative
Luciano Coelho [Thu, 3 Nov 2011 06:44:41 +0000 (08:44 +0200)]
wl12xx: change blocksize alignment quirk to negative

SDIO blocksize alignment support is now the rule, not the exception.
To simplify the code in patches to come, invert the meaning of the
quirk to be negative (ie. the quirk is set if the device does _not_
support blocksize alignment).

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: clear wl->vif on remove_interface
Eliad Peller [Tue, 1 Nov 2011 13:12:50 +0000 (15:12 +0200)]
wl12xx: clear wl->vif on remove_interface

wl->vif should be cleared on remove_interface()
(rather than on stop()) even when only a single
vif is supported, because during vif mode change
stop() might not get called (e.g. because of
monitor interface existence)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add vifs_state debugfs key
Eliad Peller [Mon, 31 Oct 2011 10:24:49 +0000 (12:24 +0200)]
wl12xx: add vifs_state debugfs key

Add debugfs key to dump information regarding the
active vifs (similar to the driver_state debugfs key)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: keep beacon-filtering enabled during STA operation
Arik Nemtsov [Mon, 24 Oct 2011 15:25:20 +0000 (17:25 +0200)]
wl12xx: keep beacon-filtering enabled during STA operation

Enable beacon filtering on STA init, and don't disable it when entering
active mode. Otherwise dynamic-PS supports means we receive beacons from
the current AP during any Tx/Rx performed by the driver.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: reconfigure rate policies on set_bitrate_mask
Eliad Peller [Tue, 11 Oct 2011 09:57:39 +0000 (11:57 +0200)]
wl12xx: reconfigure rate policies on set_bitrate_mask

The rate policies are configured only after association,
resulting in auth req being sent in wrong rates.

Reconfigure rate policies on bitrate mask change.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: couple role_start_dev with roc
Eliad Peller [Tue, 11 Oct 2011 09:55:44 +0000 (11:55 +0200)]
wl12xx: couple role_start_dev with roc

Device role is always started along with ROC.
Couple them together by introducing new wl12xx_start_dev
and wl12xx_stop_dev functions.

By using these functions, we solve a bug that occured during
channel switch - we started the dev role on one channel, and
ROCed on a different one.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: handle injected packets
Eliad Peller [Tue, 11 Oct 2011 11:52:25 +0000 (13:52 +0200)]
wl12xx: handle injected packets

Injected packets are sent with no vif, causing the wl12xx
to NULL-dereference in multiple places.

Furthermore, injected packets are currently not sent at all,
as system_hlid doesn't belong to any specific role, so
wl1271_skb_dequeue() never return its packets.

Handle both these problems.

Reported-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: use the same plat dev name for both SPI and SDIO
Luciano Coelho [Fri, 7 Oct 2011 12:54:15 +0000 (15:54 +0300)]
wl12xx: use the same plat dev name for both SPI and SDIO

There's no need to have the bus name included in the platform device
name that we create.  The core driver doesn't need to know about the
type of bus it uses.  Any differences between the buses that need to
be handled differently in the core, can be passed in the platform data
(as the pwr_in_suspend boolean does).

Use "wl12xx" for the device name in both bus drivers.  Rename the
platform driver name to "wl12xx_driver", just to differentiate from
the platform device names.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: remove warning message during IBSS Tx
Shahar Lev [Fri, 7 Oct 2011 16:17:25 +0000 (18:17 +0200)]
wl12xx: remove warning message during IBSS Tx

mac80211 sets the carrier on an IBSS interface even when no network is
joined. Ignore garbage frames transmitted on a disconnected IBSS
interface without printing warnings.

Signed-off-by: Shahar Lev <shahar@wizery.com>
[merged with wlvif changes]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: spi: use dev_err instead of wl1271_error
Luciano Coelho [Fri, 7 Oct 2011 11:33:29 +0000 (14:33 +0300)]
wl12xx: spi: use dev_err instead of wl1271_error

To prevent a useless dependency between the spi module and the wl12xx
module, we need to replace the wl1271_error macros with dev_err.

At the same time, remove the SPI data hexdump, since this produces way
too much data and is not particularly useful.  There's no
print_hex_dump() equivalent for dynamic debug, so it's hard to control
when the dumps are printed out.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: sdio: use dev_dbg instead of wl1271_debug
Luciano Coelho [Fri, 7 Oct 2011 11:14:25 +0000 (14:14 +0300)]
wl12xx: sdio: use dev_dbg instead of wl1271_debug

To prevent a useless dependency between the sdio module and the wl12xx
module, we need to replace the wl1271_debug macros (and friends) for
dev_dbg and other equivalents.

At the same time, remove the SDIO data hexdump, since this produces
way too much data and is not particularly useful.  There's not
print_hex_dump() equivalent for dynamic debug, so it's hard to control
when the dumps are printed out.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move debugging definitions to a separate file
Luciano Coelho [Fri, 7 Oct 2011 08:02:42 +0000 (11:02 +0300)]
wl12xx: move debugging definitions to a separate file

Separate the debugging macros and other definitions to a new debug.h
file.  This is be needed because the sdio and spi modules don't need
to depend on the wl12xx module anymore, but still need to include
wl12xx.h.  Currently they do depend on it, because of the debugging
global that wl12xx exports.  A future patch will remove this
dependency.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: drop unneeded plat_dev
Felipe Balbi [Thu, 6 Oct 2011 10:05:25 +0000 (13:05 +0300)]
wl12xx: drop unneeded plat_dev

now that useless plat_dev is unnecessary,
we can remove it.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward ported and fixed sysfs file creation]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: mark some symbols static
Felipe Balbi [Thu, 6 Oct 2011 07:46:20 +0000 (10:46 +0300)]
wl12xx: mark some symbols static

after re-factoring a bunch of symbols are only
used inside main.c which allows us to mark
them as static.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward-ported]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move common init code from bus modules to main
Felipe Balbi [Thu, 6 Oct 2011 07:07:44 +0000 (10:07 +0300)]
wl12xx: move common init code from bus modules to main

Move all common parts from sdio.c and spi.c to main.c, since they now
can be handled as part of the platform driver.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward-ported, cleaned-up and rephrased commit message]
[added a bunch of fixes and a new pdata element]
[moved some new code into main.c as well]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add platform driver to the core module
Felipe Balbi [Wed, 5 Oct 2011 11:12:55 +0000 (14:12 +0300)]
wl12xx: add platform driver to the core module

Nnow that we have a platform_device on both glue layers, add a
platform_driver to the core driver.

It's currently an empty platform_driver but more functionality will be
added on later patches.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward-ported, cleaned-up and rephrased commit message]
[added platform_driver.driver initialization]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add a platform device to the spi module
Felipe Balbi [Wed, 5 Oct 2011 06:29:13 +0000 (09:29 +0300)]
wl12xx: add a platform device to the spi module

The platform device will be used to match the platform driver that
will be implemented by the core module.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward-ported, cleaned-up and rephrased commit message]
[call platform_device_add() instead of platform_device_register()]
[store alloc'ed device platform directly in glue->core]
[fixed the length of memset(res...)]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add a platform device to the sdio module
Felipe Balbi [Wed, 5 Oct 2011 06:00:12 +0000 (09:00 +0300)]
wl12xx: add a platform device to the sdio module

The platform device will be used to match the platform driver that
will be implemented by the core module.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward-ported, cleaned-up and rephrased commit message]
[call platform_device_add() instead of platform_device_register()]
[store alloc'ed device platform directly in glue->core]
[fixed the length of memset(res...)]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add an spi glue struct to keep wl and device side-by-side
Felipe Balbi [Tue, 4 Oct 2011 20:36:47 +0000 (23:36 +0300)]
wl12xx: add an spi glue struct to keep wl and device side-by-side

In order to fully abstract the bus, we need to save the device
structure *beside* wl1271, instead of inside it.

This will help re-structuring the driver so that we avoid the
duplicated code in the bus modules.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward-ported and cleaned up and rephrased commit message]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add an sdio glue struct to keep wl and device side-by-side
Felipe Balbi [Tue, 4 Oct 2011 20:10:28 +0000 (23:10 +0300)]
wl12xx: add an sdio glue struct to keep wl and device side-by-side

In order to fully abstract the bus, we need to save the device
structure *beside* wl1271, instead of inside it.

This will help re-structuring the driver so that we avoid the
duplicated code in the bus modules.

Signed-off-by: Felipe Balbi <balbi@ti.com>
[forward-ported and cleaned up and rephrased commit message]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: remove sdio_test module
Luciano Coelho [Thu, 6 Oct 2011 19:59:37 +0000 (22:59 +0300)]
wl12xx: remove sdio_test module

This module has been causing more trouble than being useful.  It only
tests the SDIO speed by connecting to the wl12xx chip and does some
throughput calculations.  It is an ugly quick hack and, if we really
want to have it as part of wl12xx we need to clean it up and implement
it properly.

A tarball of the code has been created and posted here, with some
instructions:

http://wireless.kernel.org/en/users/Drivers/wl12xx#SDIO_performance_test_module

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: use round-robin policy for tx
Eliad Peller [Mon, 10 Oct 2011 08:13:17 +0000 (10:13 +0200)]
wl12xx: use round-robin policy for tx

Currently, a single vif might starve all the other vifs.
Save the last vif we dequeued a packet from, and continue
with the following one using a round-robin policy.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add elp wakeup/sleep calls to add_interface
Eliad Peller [Mon, 10 Oct 2011 08:13:16 +0000 (10:13 +0200)]
wl12xx: add elp wakeup/sleep calls to add_interface

add_interface might be called while the chip is
in elp. add elp_wakeup/sleep calls to handle it.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: use dynamic rate policies
Eliad Peller [Mon, 10 Oct 2011 08:13:15 +0000 (10:13 +0200)]
wl12xx: use dynamic rate policies

allocate the rate policies dynamically, instead of using hardcoded
indexes. this is needed for proper multi-role configuration.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: call stop() on recovery
Eliad Peller [Mon, 10 Oct 2011 08:13:14 +0000 (10:13 +0200)]
wl12xx: call stop() on recovery

The recovery work should call stop() after it removed
all the existing interfaces.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: replace all remaining wl->vif references
Eliad Peller [Mon, 10 Oct 2011 08:13:13 +0000 (10:13 +0200)]
wl12xx: replace all remaining wl->vif references

wl->vif is appropriate only when a single vif is being used.
Instead, pass wlvif as parameter or iterate through all
the vifs (e.g. when a global configuration was changed)

Leave wl->vif only to determine whether a vif was already
added (this check will be removed as well after both the
driver and fw will support multiple vifs)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make op_config configure all vifs
Eliad Peller [Mon, 10 Oct 2011 08:13:12 +0000 (10:13 +0200)]
wl12xx: make op_config configure all vifs

When mac80211 changes a global (hw) config, iterate
through all the relevant vifs and update them.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add power_level field to wlvif
Eliad Peller [Mon, 10 Oct 2011 08:13:11 +0000 (10:13 +0200)]
wl12xx: add power_level field to wlvif

move power_level into the per-interface data.

mac80211 configures some values (e.g. band, channel)
globally, while we configure them per-interface.

In order to make it easier to keep track of the
configured value for each value while keeping sync
with mac80211, save these values both globally
and per-vif.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add channel field to wlvif
Eliad Peller [Mon, 10 Oct 2011 08:13:10 +0000 (10:13 +0200)]
wl12xx: add channel field to wlvif

add channel into the per-interface data.

mac80211 configures some values (e.g. band, channel)
globally, while we configure them per-interface.

In order to make it easier to keep track of the
configured value for each value while keeping sync
with mac80211, save these values both globally
and per-vif.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add band field to wlvif
Eliad Peller [Mon, 10 Oct 2011 08:13:09 +0000 (10:13 +0200)]
wl12xx: add band field to wlvif

add band field into the per-interface data.

mac80211 configures some values (e.g. band, channel)
globally, while we configure them per-interface.

In order to make it easier to keep track of the
configured value for each value while keeping sync
with mac80211, save these values both globally
and per-vif.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_CS_PROGRESS flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:08 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_CS_PROGRESS flag per-vif

This flag should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_PSPOLL_FAILURE flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:07 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_PSPOLL_FAILURE flag per-vif

This flag should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_IF_INITIALIZED per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:06 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_IF_INITIALIZED per-vif

Make the initialization flag per-vif, and add some checks for it.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_RX_STREAMING_STARTED flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:05 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_RX_STREAMING_STARTED flag per-vif

This flag should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_STA_STATE_SENT flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:04 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_STA_STATE_SENT flag per-vif

This flag should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_PSM flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:03 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_PSM flag per-vif

move WL1271_FLAG_PSM and WL1271_FLAG_PSM_REQUESTED into
per-vif flags.
These flags should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_AP_STARTED flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:02 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_AP_STARTED flag per-vif

This flag should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_IBSS_JOINED flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:01 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_IBSS_JOINED flag per-vif

This flag should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make WL1271_FLAG_STA_ASSOCIATED flag per-vif
Eliad Peller [Mon, 10 Oct 2011 08:13:00 +0000 (10:13 +0200)]
wl12xx: make WL1271_FLAG_STA_ASSOCIATED flag per-vif

This flag should be set per-vif, rather than globally.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: rearm rx streaming per vif
Eliad Peller [Mon, 10 Oct 2011 08:12:59 +0000 (10:12 +0200)]
wl12xx: rearm rx streaming per vif

Currently, the rx streaming doesn't support multi-vif
(the actual wlvif is taken from wl->vif, and the management
is global).

Make the rx streaming timers/works per-vif, and pass the
the actual vif as param.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move tx_security_seq into wlvif
Eliad Peller [Mon, 10 Oct 2011 08:12:58 +0000 (10:12 +0200)]
wl12xx: move tx_security_seq into wlvif

The last security seq num has to be saved across reconfigs.
Add a new "persistent" struct into wlvif, which won't get
deleted on wl12xx_init_vif_data()

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: make event handling support multirole
Eliad Peller [Mon, 10 Oct 2011 08:12:57 +0000 (10:12 +0200)]
wl12xx: make event handling support multirole

Some events don't indicate the role they are intended for.
In these cases, iterate through all the relevant vifs,
and pass the event to each one of them.

This is only a workaround. future fw releases should indicate
the relevant role_id for such events.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: configure sleep_policy according to active roles
Eliad Peller [Tue, 11 Oct 2011 09:49:15 +0000 (11:49 +0200)]
wl12xx: configure sleep_policy according to active roles

If there is an active AP role, stay always on.
Otherwise, allow chip to enter elp.

(Note that this is a global configuration, so if the
device is already configured according to our policy,
we don't have to configure it again)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: support multiple vifs in the tx path
Eliad Peller [Mon, 10 Oct 2011 08:12:55 +0000 (10:12 +0200)]
wl12xx: support multiple vifs in the tx path

Pass the wlvif associated with each skb as param.

Note that dummy packet doesn't belong to any
particular vif, so we pass NULL in this case.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add vifs list
Eliad Peller [Mon, 10 Oct 2011 08:12:54 +0000 (10:12 +0200)]
wl12xx: add vifs list

keep a list of all the vifs associated with our hw.
it will be later used in order to iterate through vifs.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move bitrate_masks into wlvif
Eliad Peller [Mon, 10 Oct 2011 08:12:53 +0000 (10:12 +0200)]
wl12xx: move bitrate_masks into wlvif

move bitrate_masks into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move some functions from remove_interface() to stop()
Eliad Peller [Mon, 10 Oct 2011 08:12:52 +0000 (10:12 +0200)]
wl12xx: move some functions from remove_interface() to stop()

Leave only vif-specific deinit stuff in remove_interface().
Move the global deinit (including power_off) to stop().

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: unify STA and AP tx_queue mechanism
Eliad Peller [Mon, 10 Oct 2011 08:12:51 +0000 (10:12 +0200)]
wl12xx: unify STA and AP tx_queue mechanism

Make sta use the global wl->links[hlid].tx_queue (by
considering its links map) instead of wl->tx_queue,
and then unify the tx and tx_reset flows for the
various vifs.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move last_tx_hlid into wlvif
Eliad Peller [Mon, 10 Oct 2011 08:12:50 +0000 (10:12 +0200)]
wl12xx: move last_tx_hlid into wlvif

move last_tx_hlid into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: refactor fw init into a new function
Eliad Peller [Mon, 10 Oct 2011 08:12:49 +0000 (10:12 +0200)]
wl12xx: refactor fw init into a new function

The fw boot and initialization currently happens inside the
add_interface() callback. This is wrong, as add_interface is
called for each new vif. However, we due to some fw limitation
(we have to know the actual mac address on boot), we can't
completely move it into the start() callback.

Until the fw will be fixed, refactor the fw init into
a new function, and call it from add_interface()

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move recorded_ap_keys into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:56:06 +0000 (11:56 +0200)]
wl12xx: move recorded_ap_keys into wlvif

move recorded_ap_keys into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move ap_hlid_map into wlvif.ap
Eliad Peller [Wed, 5 Oct 2011 09:56:05 +0000 (11:56 +0200)]
wl12xx: move ap_hlid_map into wlvif.ap

Add wlvif->links_map bitmap to represent all the links
allocated for this vif.

AP vif also has a sta_hlid_map bitmap, which represents
the links stations connected to it (sta_hlid_bitmap is
a subset of wlvif->links_map, which itself is a subset
of the global wl->links_map)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move ba fields into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:56:04 +0000 (11:56 +0200)]
wl12xx: move ba fields into wlvif

move ba_fields into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move rssi_thold and last_rssi_event into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:56:03 +0000 (11:56 +0200)]
wl12xx: move rssi_thold and last_rssi_event into wlvif

move rssi_thold and last_rssi_event into the per-interface
data, rather than being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move ps_poll_failures and psm_entry_retry into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:56:02 +0000 (11:56 +0200)]
wl12xx: move ps_poll_failures and psm_entry_retry into wlvif

move ps_poll_failures and psm_entry_retries into the per-interface
data, rather than being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move ps_compl into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:56:01 +0000 (11:56 +0200)]
wl12xx: move ps_compl into wlvif

move ps_compl into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move pspoll_work into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:56:00 +0000 (11:56 +0200)]
wl12xx: move pspoll_work into wlvif

move pspoll_work into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move default_key into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:59 +0000 (11:55 +0200)]
wl12xx: move default_key into wlvif

move default_key into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move beacon_int into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:58 +0000 (11:55 +0200)]
wl12xx: move beacon_int into wlvif

move beacon_int into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move dev_hlid into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:57 +0000 (11:55 +0200)]
wl12xx: move dev_hlid into wlvif

move dev_hlid into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move some logic into wl12xx_init_vif_data
Eliad Peller [Wed, 5 Oct 2011 09:55:56 +0000 (11:55 +0200)]
wl12xx: move some logic into wl12xx_init_vif_data

Initialize the vif data according to the vif type

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move session_counter into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:55 +0000 (11:55 +0200)]
wl12xx: move session_counter into wlvif

move session_counter into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move ap_global_hlid and ap_bcast_hlid into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:54 +0000 (11:55 +0200)]
wl12xx: move ap_global_hlid and ap_bcast_hlid into wlvif

move ap_global_hlid and ap_bcast_hlid into the per-interface
data, rather than being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move sta_hlid into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:53 +0000 (11:55 +0200)]
wl12xx: move sta_hlid into wlvif

move sta_hlid into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move dev_role_id into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:52 +0000 (11:55 +0200)]
wl12xx: move dev_role_id into wlvif

move dev_role_id into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move role_id into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:51 +0000 (11:55 +0200)]
wl12xx: move role_id into wlvif

move role_id into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move aid into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:50 +0000 (11:55 +0200)]
wl12xx: move aid into wlvif

move aid into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move probereq into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:49 +0000 (11:55 +0200)]
wl12xx: move probereq into wlvif

move probereq into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move ssid and ssid_len into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:48 +0000 (11:55 +0200)]
wl12xx: move ssid and ssid_len into wlvif

move ssid and ssid_len into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move p2p into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:47 +0000 (11:55 +0200)]
wl12xx: move p2p into wlvif

move p2p field into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: remove set_bss_type field
Eliad Peller [Wed, 5 Oct 2011 09:55:46 +0000 (11:55 +0200)]
wl12xx: remove set_bss_type field

set_bss_type is no longer evaluated, so delete it.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move bss_type into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:45 +0000 (11:55 +0200)]
wl12xx: move bss_type into wlvif

move bss_type into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: replace wl->bssid with vif->bss_conf.bssid
Eliad Peller [Wed, 5 Oct 2011 09:55:44 +0000 (11:55 +0200)]
wl12xx: replace wl->bssid with vif->bss_conf.bssid

Use the per-interface vif->bss_conf instead of the global wl->bssid.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move basic_rate into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:43 +0000 (11:55 +0200)]
wl12xx: move basic_rate into wlvif

move basic_rate into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move rate_set into wlvif
Eliad Peller [Wed, 5 Oct 2011 09:55:42 +0000 (11:55 +0200)]
wl12xx: move rate_set into wlvif

move rate_set into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: define wl12xx_vif
Eliad Peller [Wed, 5 Oct 2011 09:55:41 +0000 (11:55 +0200)]
wl12xx: define wl12xx_vif

Define a per-vif data struct.
This struct holds all the vif-specifc data, which is
currently being hold by the global wl struct.

Start by moving the basic_rate_set field into it.

NOTE: in order to make the patches a bit smaller, start by
using wl->vif in some functions, instead of changing all
the function prototypes at once. finally, wl->vif will be
removed altogether.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: start reworking the init sequence
Eliad Peller [Wed, 5 Oct 2011 09:55:40 +0000 (11:55 +0200)]
wl12xx: start reworking the init sequence

Split the init sequence into common commands (non role-specific)
and role-specific commands.

We still need to call the common commands only on add_interface()
(rather than on start()) as the fw must get the mac address
when uploading the nvs.

Future patches will refactor the init sequence further more.

Signed-off-by: Eliad Peller <eliad@wizery.com>
[fixed a couple of sparse warnings]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: replace wl->mac_addr with vif->addr
Eliad Peller [Wed, 5 Oct 2011 09:55:39 +0000 (11:55 +0200)]
wl12xx: replace wl->mac_addr with vif->addr

The mac address of the interface already exists in vif->addr.
Use it instead of wl->mac_addr.

It seems that due to some fw bug, we still need to set nvs->mac
to the actual mac addresss, otherwise the fw doesn't function
well (e.g. can't get dhcp address).
Thus, use wl->mac_addr for this purpose, and don't delete it yet.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: disable AP-mode-specific quirks
Eliad Peller [Wed, 5 Oct 2011 09:55:38 +0000 (11:55 +0200)]
wl12xx: disable AP-mode-specific quirks

The current wl12xx fw (7.3.0.0.77) supports both STA and AP mode, and
we no longer use AP-mode-specific quirks.

WL12XX_QUIRK_END_OF_TRANSACTION is still used for certain HWs, while
WL12XX_QUIRK_LPD_MODE is not used anymore.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: Add support for HW channel switch
Shahar Levi [Thu, 8 Sep 2011 10:01:33 +0000 (13:01 +0300)]
wl12xx: Add support for HW channel switch

The wl12xx FW supports HW channel switch.  If we don't use it,
sometimes the firmware gets confused when recalibrating to the new
channel, causing RX problems.  This commit adds HW channel switch
support by implementing the channell_switch op.

Signed-off-by: Shahar Levi <shahar_levi@ti.com>
[added one comment, remove the tx_flush and rephrased the commit message]
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: set max_sched_scan_ie_len correctly
Luciano Coelho [Tue, 27 Sep 2011 13:22:35 +0000 (16:22 +0300)]
wl12xx: set max_sched_scan_ie_len correctly

The wiphy max_sched_scan_ie_len attribute was not set correctly and
remained as 0, so when IEs were being passed in a scheduled scan, we
were returning -EINVAL.

Fix this by setting the attribute properly.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: configure rate policy for p2p operations
Eliad Peller [Mon, 3 Oct 2011 10:06:36 +0000 (12:06 +0200)]
wl12xx: configure rate policy for p2p operations

p2p packets should go out only with OFDM rates.

Configure a new rate policy that will (later) be used
during p2p_find (when the p2p_cli / p2p_go interfaces
are in use, we won't have to use this policy, as
the configured rates should already be OFDM-only).

Additionally, update CONF_TX_MAX_RATE_CLASSES to reflect
the current value from the fw api.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agoMerge branch 'master' of git://github.com/padovan/bluetooth-next
John W. Linville [Tue, 4 Oct 2011 18:06:47 +0000 (14:06 -0400)]
Merge branch 'master' of git://github.com/padovan/bluetooth-next

12 years agoath9k_hw: set pci_express capability true for AR9480
Mohammed Shafi Shajakhan [Fri, 30 Sep 2011 06:01:28 +0000 (11:31 +0530)]
ath9k_hw: set pci_express capability true for AR9480

the AR_SREV register does not seems to indicate whether AR9480 is
pci_express capable or not though the other information like macVersion
etc can be obtained properly. this fix is essential as ASPM won't be intialized
and its related driver functionality ath9k_hw_configpcipowersave won't be
called

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: Fix number of GPIO pins for AR9287/9300
Mohammed Shafi Shajakhan [Fri, 30 Sep 2011 06:01:27 +0000 (11:31 +0530)]
ath9k_hw: Fix number of GPIO pins for AR9287/9300

this patch fixes the assumption of maximum number of GPIO pins present
in AR9287/AR9300. this fix is essential as we might encounter some
functionality issues involved in accessing the status of GPIO pins which
are all incorrectly assumed to be not within the range of max_num_gpio
of AR9300/AR9287 chipsets

Cc: stable@kernel.org
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agolibertas: detect TX lockups and reset hardware
Daniel Drake [Mon, 3 Oct 2011 10:33:02 +0000 (11:33 +0100)]
libertas: detect TX lockups and reset hardware

Recent patches added support for resetting the SD8686 hardware when
commands time out, which seems to happen quite frequently soon after
resuming the system from a Wake-on-WLAN-triggered resume.

At http://dev.laptop.org/ticket/10969 we see the same thing happen
with transmits. In this case, the hardware will fail to respond to
a frame passed for transmission, and libertas (correctly) will block
all further commands and transmissions as the hardware can only
deal with one thing at a time. This results in a lockup while the
system waits indefinitely for the dead card to respond.

Hook up a TX lockup timer to detect this and reset the hardware.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: pass vif param to conf_tx() callback
Eliad Peller [Sun, 2 Oct 2011 08:15:52 +0000 (10:15 +0200)]
mac80211: pass vif param to conf_tx() callback

tx params should be configured per interface.
add ieee80211_vif param to the conf_tx callback,
and change all the drivers that use this callback.

The following spatch was used:
@rule1@
struct ieee80211_ops ops;
identifier conf_tx_op;
@@
ops.conf_tx = conf_tx_op;

@rule2@
identifier rule1.conf_tx_op;
identifier hw, queue, params;
@@
conf_tx_op (
- struct ieee80211_hw *hw,
+ struct ieee80211_hw *hw, struct ieee80211_vif *vif,
u16 queue,
const struct ieee80211_tx_queue_params *params) {...}

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlagn: rename iwlagn module iwlwifi and alias to iwlagn.
Don Fry [Fri, 30 Sep 2011 18:40:20 +0000 (11:40 -0700)]
iwlagn: rename iwlagn module iwlwifi and alias to iwlagn.

Rename the iwlagn module as iwlwifi in preparation for future
changes.  Add an alias to iwlagn for backward compatibility.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_hw: extend GPIO pin select mask for rfkill
Mohammed Shafi Shajakhan [Fri, 30 Sep 2011 06:47:28 +0000 (12:17 +0530)]
ath9k_hw: extend GPIO pin select mask for rfkill

this extends the bits for rf kill GPIO selection to [7:2] from [4:2] as
we use GPIO pin 11 as rfkill for AR9480 and also remove few unused
macros

Cc: Wilson Tsao <wtsao@qca.qualcomm.com>
Cc: "Hu, Russell" <rhu@qca.qualcomm.com>
Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: handle an error path correctly
Amitkumar Karwar [Fri, 30 Sep 2011 03:43:41 +0000 (20:43 -0700)]
mwifiex: handle an error path correctly

In failure case locks are not allocated in mwifiex_register().
So mwifiex_free_lock_list() routine call becomes redundant.
Also we don't need to check return type for mwifiex_init_lock_list()
routine. It never fails.

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>
12 years agomwifiex: correct AMSDU aggregation check
Amitkumar Karwar [Fri, 30 Sep 2011 03:43:40 +0000 (20:43 -0700)]
mwifiex: correct AMSDU aggregation check

The commit "mwifiex: remove list traversal.."(fcf2176c87..)
wrongly modifies AMSDU aggregation check. Due to this even though
packet size for iperf traffic is already large, we unnecessarily
try to aggregate them which adds some delay. If Tx iperf is started
on UUT for 30 seconds, UUT keeps sending Tx packets for few more
seconds.

That commit is reverted to fix the problem.
Also, MIN_NUM_AMSDU check is moved inside the loop to optimize the
loop.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k_htc: add AVM FRITZ!WLAN 11N v2 support
Luis R. Rodriguez [Thu, 29 Sep 2011 17:42:19 +0000 (10:42 -0700)]
ath9k_htc: add AVM FRITZ!WLAN 11N v2 support

This was reported and tested by Martin Walter over at AVM GmbH Berlin.
This also applies to 3.0.1 so sendint to stable.

Cc: s.kirste@avm.de
Cc: d.friedel@avm.de
Cc: Martin Walter <m.walter@avm.de>
Cc: Peter Grabienski <pgrabien@qca.qualcomm.com>
Cc: stable@kernel.org
Tested-by: Martin Walter <m.walter@avm.de>
Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: Send nullfunc frames at lower rate during connection monitor
Rajkumar Manoharan [Thu, 29 Sep 2011 15:04:04 +0000 (20:34 +0530)]
mac80211: Send nullfunc frames at lower rate during connection monitor

Recently mac80211 was changed to use nullfunc instead of probe
request for connection monitoring for tx ack status reporting
hardwares. Sometimes in congested network, STA got disconnected
quickly after the association. It was observered that the rate
control was not adopted to environment due to minimal transmission.

As the nullfunc are used for monitoring purpose, these frames should
not be sacrificed for rate control updation. So it is better to send
the monitoring null func frames at minimum rate that could help to
retain the connection.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agonet:rfkill: add a gpio setup function into GPIO rfkill
Sangwook Lee [Thu, 29 Sep 2011 11:57:17 +0000 (12:57 +0100)]
net:rfkill: add a gpio setup function into GPIO rfkill

Add a gpio setup function which gives a chance to set up
platform specific configuration such as pin multiplexing,
input/output direction at the runtime or booting time.

Signed-off-by: Sangwook Lee <sangwook.lee@linaro.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>