]> git.karo-electronics.de Git - linux-beck.git/log
linux-beck.git
12 years agowl12xx: don't release/claim sdio on suspend/resume
Eliad Peller [Thu, 26 Jan 2012 12:12:32 +0000 (14:12 +0200)]
wl12xx: don't release/claim sdio on suspend/resume

Since we reverted to claiming the host only when needed,
we no longer need to release/claim the host on suspend/resume.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agoRevert "wl12xx: Change claiming of the SDIO bus"
Eliad Peller [Thu, 26 Jan 2012 12:12:31 +0000 (14:12 +0200)]
Revert "wl12xx: Change claiming of the SDIO bus"

This reverts commit 393fb560d328cc06e6a5c7b7473901ad724f82e7.

Commit b6ad726 ("mmc: core: Prevent too long response times
for suspend") fails the suspend if the mmc host can't be
claimed before suspend. As the host is claimed by us as long
as the chip is powered on, suspend will always fail.

Revert to claiming the sdio bus only when needed.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: remove wl1271_tx_update_filters
Eliad Peller [Tue, 24 Jan 2012 16:18:43 +0000 (18:18 +0200)]
wl12xx: remove wl1271_tx_update_filters

wl1271_tx_update_filters() is used as some workaround
to open filters while roaming on the same channel.

However, it doesn't handle roaming to a different channel,
and it might also sleep in the tx path, which is a bug.

With the new auth/assoc redesign, roaming is much simpler,
and this function is not needed anymore.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: check bss_conf->assoc on CHANGED_BSSID
Eliad Peller [Tue, 24 Jan 2012 16:18:42 +0000 (18:18 +0200)]
wl12xx: check bss_conf->assoc on CHANGED_BSSID

with the new auth/assoc redesign, we get CHANGED_BSSID
indication before CHANGED_ASSOC indication, while our
CHANGED_BSSID handling block assumes we are already
associated.

Fix it by checking we are either in ibss mode, or
already associated.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: fix typo in fwlog module param description
Luciano Coelho [Tue, 7 Feb 2012 10:37:33 +0000 (12:37 +0200)]
wl12xx: fix typo in fwlog module param description

Fix a copy and paste bug in the MODULE_PARAM_DESC for fwlog.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: remove unnecessary shadow declaration
Luciano Coelho [Tue, 24 Jan 2012 09:46:32 +0000 (11:46 +0200)]
wl12xx: remove unnecessary shadow declaration

The vif variable was being declared inside one of the internal blocks
of wl1271_event_process.  This is not necessary, since this variable
is already declared in the function context.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: add testmode operation to read the BD_ADDR from Fuse ROM
Luciano Coelho [Fri, 13 Jan 2012 12:04:29 +0000 (14:04 +0200)]
wl12xx: add testmode operation to read the BD_ADDR from Fuse ROM

Add a testmode command to retrieve the BD_ADDR that is stored in the
Fuse ROM in newer PGs.  In old PGs this operation is not supported.
The caller can then derive the MAC addresses from it.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: use two MAC addresses based on the NVS or from fuse ROM
Luciano Coelho [Fri, 23 Dec 2011 07:32:17 +0000 (09:32 +0200)]
wl12xx: use two MAC addresses based on the NVS or from fuse ROM

Add support for two MAC addresses.  If the NVS has a valid MAC
address, that takes precedence and we use two sequential address
starting from the one specified.

If the NVS doesn't contain a valid MAC address (ie. if it is set to
00:00:00:00:00:00), we check if the HW PG version in use has the
BD_ADDR written in the fuse ROM.  If it does, we read it and derive
the two subsequent addresses for WLAN.

During production, 3 addresses are reserved per device.  The first for
Bluetooth (burnt in the fuse ROM) and the following two for WLAN.

This patch has some code by Igal and Arik (squashed from internal
patches).

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Igal Chernobelsky <igalc@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: read chip ID and HW PG version during probe
Luciano Coelho [Wed, 18 Jan 2012 12:53:22 +0000 (14:53 +0200)]
wl12xx: read chip ID and HW PG version during probe

In order to read the MAC addresses from the fuse ROM, we need to know
the chip ID and the HW PG version.  We need to know the MAC address
during probe, because that's when we register our HW with mac80211.

To prepare for that, this patch reads the chip ID and HW PG version
during probe instead of doing it at boot time.  We power the chip on
briefly in order to do that.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: move partition table definition to io.c
Luciano Coelho [Thu, 12 Jan 2012 12:45:34 +0000 (14:45 +0200)]
wl12xx: move partition table definition to io.c

Up till now we only needed to access the partition table in boot.c.
But to add support for reading the MAC address from the FUSE in
testmode, we will have to change the partition in testmode.c.

Thus, we move the partition table to io.c and export it via io.h.  It
makes more sense to have it in the io part anyway.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: cancel delayed elp work and clear flags when stopping PLT
Luciano Coelho [Wed, 11 Jan 2012 07:42:42 +0000 (09:42 +0200)]
wl12xx: cancel delayed elp work and clear flags when stopping PLT

In some cases a race condition can happen if we don't cancel any
pending ELP work before stopping PLT.  With this commit we cancel ELP
work and clear the wl->flags bitmask.  Also clean up the wl elements
after powering off.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: Fix potential interrupt storm
Ido Yariv [Wed, 11 Jan 2012 07:42:41 +0000 (09:42 +0200)]
wl12xx: Fix potential interrupt storm

The interrupt threaded handler exits immediately if the driver's state
is WL1271_STATE_OFF. As a result, the interrupt status is not read. If
the interrupt is level triggered, it will be fired again.

Fix this by disabling interrupts before setting the state to OFF.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: Power off after flushing work
Ido Yariv [Wed, 11 Jan 2012 07:42:40 +0000 (09:42 +0200)]
wl12xx: Power off after flushing work

When stopping plt, the chip is powered off before all current work items
are flushed and interrupts are disabled. This might introduce a race in
which the driver tries to communicate with a powered off chip.

Fix this by powering off the device only after interrupts are disabled
and all work items are flushed.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: Acquire lock before stopping plt
Ido Yariv [Wed, 11 Jan 2012 07:42:39 +0000 (09:42 +0200)]
wl12xx: Acquire lock before stopping plt

__wl1271_plt_stop is called from both wl1271_plt_stop and
wl1271_unregister_hw. While wl1271_plt_stop acquires a mutex,
wl1271_unregister_hw does not.

Fix this by calling wl1271_plt_stop instead of __wl1271_plt_stop from
wl1271_unregister_hw.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: Make sure HW is available in sched scan ops
Pontus Fuchs [Wed, 11 Jan 2012 13:22:42 +0000 (14:22 +0100)]
wl12xx: Make sure HW is available in sched scan ops

The sched_scan_(stop|start) ops fails to check for WL1271_STATE_OFF.
This can lead to a race where the driver tries to access the HW
while it's off.

Fix this by checking for WL1271_STATE_OFF before accessing the HW.

Signed-off-by: Pontus Fuchs <pontus.fuchs@gmail.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl12xx: enable sparse endianess check by default
Luciano Coelho [Wed, 21 Dec 2011 19:52:31 +0000 (21:52 +0200)]
wl12xx: enable sparse endianess check by default

Following the good example of the Intel (and more recently Atheros)
drivers, enable endianess check by default when running sparse.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl1251: enable sparse endianess check by default
Luciano Coelho [Wed, 21 Dec 2011 20:36:29 +0000 (22:36 +0200)]
wl1251: enable sparse endianess check by default

Following the good example of the Intel (and more recently Atheros)
drivers, enable endianess check by default when running sparse.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl1251: convert 32-bit values to le32 before writing to the chip
Luciano Coelho [Wed, 21 Dec 2011 20:36:28 +0000 (22:36 +0200)]
wl1251: convert 32-bit values to le32 before writing to the chip

The 32-bit values were not converted before writing them to the chip.
Change the wl1251_read32() and wl1251_write32() so that they always
read and write le32 values and convert to and from the CPU endianess.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agowl1251: fix sparse warning
Luciano Coelho [Wed, 21 Dec 2011 20:36:27 +0000 (22:36 +0200)]
wl1251: fix sparse warning

The wl1251 driver was generating the following warning:

drivers/net/wireless/wl1251/boot.c:467:21: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl1251/boot.c:467:21:    expected unsigned int [unsigned] [assigned] [usertype] val
drivers/net/wireless/wl1251/boot.c:467:21:    got restricted __le32 [usertype] <noident>

Fix this by removing one cpu_to_le32() call in the wrong place.

Signed-off-by: Luciano Coelho <coelho@ti.com>
12 years agortlwifi: Modify rtl_pci_init to return 0 on success
John W. Linville [Thu, 9 Feb 2012 19:48:25 +0000 (14:48 -0500)]
rtlwifi: Modify rtl_pci_init to return 0 on success

Fixes problem where caller would think routine succeeded when it failed
leading to divide by zero panic.

(This also reverts an earlier attempt, commit 42bc0c97 "rtlwifi: Return
correct failure code on error". -- JWL)

Signed-off-by: Simon Graham <simon.graham@virtualcomputer.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: do not call rate control .tx_status before .rate_init
Felix Fietkau [Wed, 8 Feb 2012 18:17:11 +0000 (19:17 +0100)]
mac80211: do not call rate control .tx_status before .rate_init

Most rate control implementations assume .get_rate and .tx_status are only
called once the per-station data has been fully initialized.
minstrel_ht crashes if this assumption is violated.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Tested-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: Return correct failure code on error
Simon Graham [Wed, 8 Feb 2012 17:34:23 +0000 (12:34 -0500)]
rtlwifi: Return correct failure code on error

Callers of rtl_pci_init expect zero to be returned on error. Returning
the error code leads to, amongst other things, divide by zero panics
attempting to use the ring size that is set to zero.

Signed-off-by: Simon Graham <simon.graham@virtualcomputer.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: rename mesh static path_lookup()
Luis R. Rodriguez [Wed, 8 Feb 2012 05:09:25 +0000 (21:09 -0800)]
mac80211: rename mesh static path_lookup()

If you want to use mesh support from mac80211 on a recent
kernel on 2.6.24 you'll run into a name clash when compiling
against include/linux/namei.h, so rename this routine.

/home/mcgrof/tmp/compat-wireless-3.2.5-1/net/mac80211/mesh_pathtbl.c: At top level:
/home/mcgrof/tmp/compat-wireless-3.2.5-1/net/mac80211/mesh_pathtbl.c:342:26: error: conflicting types for ‘path_lookup’
include/linux/namei.h:71:12: note: previous declaration of ‘path_lookup’ was here

Although this could sit as a separate patch in compat-wireless it seems
best to just merge upstream.

Cc: Javier Cardona <javier@cozybit.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@frijolero.org>
Acked-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: Handle previous allocation failures when freeing device memory
Simon Graham [Wed, 8 Feb 2012 00:07:38 +0000 (18:07 -0600)]
rtlwifi: Handle previous allocation failures when freeing device memory

Handle previous allocation failures when freeing device memory

Signed-off-by: Simon Graham <simon.graham@virtualcomputer.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: add #ifdef CONFIG_MAC80211_VERBOSE_DEBUG for a debug printk
Felix Fietkau [Tue, 7 Feb 2012 11:45:44 +0000 (12:45 +0100)]
mac80211: add #ifdef CONFIG_MAC80211_VERBOSE_DEBUG for a debug printk

When not debugging mac80211 code, station state transitions do not need to
show up in the kernel log.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Correctly set txmixer_gain in RT3572 channel switching.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:13 +0000 (23:45 +0100)]
rt2x00: Correctly set txmixer_gain in RT3572 channel switching.

Align with the v2.5.0.0 Ralink RT3572 driver.

Save the EEPROM txmixer_gain values inside the rt2800 driver data structure
and use it throughout the code.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Fix RT3572 channel switch RFCSR 7 programming.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:12 +0000 (23:45 +0100)]
rt2x00: Fix RT3572 channel switch RFCSR 7 programming.

Align with the v2.5.0.0 Ralink RT3572 driver.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Align RT3572 channel switch RFCSR 1 programming with Ralink driver.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:11 +0000 (23:45 +0100)]
rt2x00: Align RT3572 channel switch RFCSR 1 programming with Ralink driver.

Align with the v2.5.0.0 Ralink RT3572 driver.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Fix RFCSR 12 & 13 programming on RT3572 channel switching.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:10 +0000 (23:45 +0100)]
rt2x00: Fix RFCSR 12 & 13 programming on RT3572 channel switching.

Align with v2.5.0.0 Ralink RT3572 driver for 2.4GHz band channel switch.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Use saved BBP 25 and 26 values when configuring channel on RT3572.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:09 +0000 (23:45 +0100)]
rt2x00: Use saved BBP 25 and 26 values when configuring channel on RT3572.

This brings the rt2800 channel switching code for RT3572 closer to the
v2.5.0.0 Ralink RT3572 driver.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Update comment on freq_offset field in struct rt2x00_dev.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:08 +0000 (23:45 +0100)]
rt2x00: Update comment on freq_offset field in struct rt2x00_dev.

The comment states that the field is only used for rt61pci and rt73usb.
However, it is now used by rt2800pci and rt2800usb as well, so the
comment is not correct anymore.

Update the comment to not state any low-level drivers anymore.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Use struct rt2x00_dev driver data in rt2800{pci,usb}.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:07 +0000 (23:45 +0100)]
rt2x00: Use struct rt2x00_dev driver data in rt2800{pci,usb}.

Start using the struct rt2x00_dev driver data in rt2800 for the calibration
data.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2x00: Introduce concept of driver data in struct rt2x00_dev.
Gertjan van Wingerde [Mon, 6 Feb 2012 22:45:06 +0000 (23:45 +0100)]
rt2x00: Introduce concept of driver data in struct rt2x00_dev.

We are getting more and more fields in struct rt2x00_dev that are
specific to one or two of the low-level drivers. Instead of putting
these fields inside the main structure and thus clobbering all low-level
drivers with these fields, introduce the concept of driver data inside
struct rt2x00_dev, whose size is indicated by the low-level driver and
which can be populated by the low-level driver.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoorinoco: Remove old mailing lists from MAINTAINERS
David Gibson [Mon, 6 Feb 2012 03:07:24 +0000 (14:07 +1100)]
orinoco: Remove old mailing lists from MAINTAINERS

The two orinoco mailing lists on sourceforge were set up many years
ago and are now more or less moribund.  I'd like to shut them down, so
I don't have to keep filtering the spam from them (which is most of
what comes through now).  In preparation, this patch removes the
reference to them from the MAINTAINERS file.  Any remaining discussion
of this approaching obsolete driver can go to the linux-wireless list.

Signed-off-by: David Gibson <hermes@gibson.dropbear.id.au>
Acked-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: call rate control only after init
Johannes Berg [Fri, 20 Jan 2012 12:55:23 +0000 (13:55 +0100)]
mac80211: call rate control only after init

There are situations where we don't have the
necessary rate control information yet for
station entries, e.g. when associating. This
currently doesn't really happen due to the
dummy station handling; explicitly disabling
rate control when it's not initialised will
allow us to remove dummy stations.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: remove set_hw_params callback
Stanislaw Gruszka [Fri, 3 Feb 2012 16:32:01 +0000 (17:32 +0100)]
iwlegacy: remove set_hw_params callback

We do not need that callback, settings parameters can be done locally.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: remove struct il_tx_info
Stanislaw Gruszka [Fri, 3 Feb 2012 16:32:00 +0000 (17:32 +0100)]
iwlegacy: remove struct il_tx_info

It's just wrapper to sk_buff pointers ...

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: merge il_base_params into il_cfg
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:59 +0000 (17:31 +0100)]
iwlegacy: merge il_base_params into il_cfg

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: move ops out of config
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:58 +0000 (17:31 +0100)]
iwlegacy: move ops out of config

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctx structure
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:57 +0000 (17:31 +0100)]
iwlegacy: get rid of ctx structure

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: remove il_setup_interface()
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:56 +0000 (17:31 +0100)]
iwlegacy: remove il_setup_interface()

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctx->is_active
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:55 +0000 (17:31 +0100)]
iwlegacy: get rid of ctx->is_active

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctx->ac_to_queue
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:54 +0000 (17:31 +0100)]
iwlegacy: get rid of ctx->ac_to_queue

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctx->ac_to_fifo
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:53 +0000 (17:31 +0100)]
iwlegacy: get rid of ctx->ac_to_fifo

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: move ht out of ctx structure
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:52 +0000 (17:31 +0100)]
iwlegacy: move ht out of ctx structure

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: move qos_data out of ctx structure
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:51 +0000 (17:31 +0100)]
iwlegacy: move qos_data out of ctx structure

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: remove ctx interface_modes
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:50 +0000 (17:31 +0100)]
iwlegacy: remove ctx interface_modes

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctx->station_flags
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:49 +0000 (17:31 +0100)]
iwlegacy: get rid of ctx->station_flags

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: move wep_keys out of context
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:48 +0000 (17:31 +0100)]
iwlegacy: move wep_keys out of context

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of mcast_queue
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:47 +0000 (17:31 +0100)]
iwlegacy: get rid of mcast_queue

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctxid
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:46 +0000 (17:31 +0100)]
iwlegacy: get rid of ctxid

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of *_devtype
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:45 +0000 (17:31 +0100)]
iwlegacy: get rid of *_devtype

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: move bcast_sta_id to hw_params
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:44 +0000 (17:31 +0100)]
iwlegacy: move bcast_sta_id to hw_params

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ap_sta_id
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:43 +0000 (17:31 +0100)]
iwlegacy: get rid of ap_sta_id

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of wep_key_cmd
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:42 +0000 (17:31 +0100)]
iwlegacy: get rid of wep_key_cmd

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of qos_cmd
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:41 +0000 (17:31 +0100)]
iwlegacy: get rid of qos_cmd

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of rxon_assoc_cmd
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:40 +0000 (17:31 +0100)]
iwlegacy: get rid of rxon_assoc_cmd

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctx->rxon_timing_cmd
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:39 +0000 (17:31 +0100)]
iwlegacy: get rid of ctx->rxon_timing_cmd

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: get rid of ctx->rxon_cmd
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:38 +0000 (17:31 +0100)]
iwlegacy: get rid of ctx->rxon_cmd

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwlegacy: move rxon commands out of ctx structure
Stanislaw Gruszka [Fri, 3 Feb 2012 16:31:37 +0000 (17:31 +0100)]
iwlegacy: move rxon commands out of ctx structure

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: update correct dtim_period in dump_station()
Amitkumar Karwar [Fri, 3 Feb 2012 04:48:58 +0000 (20:48 -0800)]
mwifiex: update correct dtim_period in dump_station()

Earlier we were using dtim period extracted from scan response
buffer provided by FW in scan operation. But it is observed that
sometimes the buffer doesn't contain dtim period tlv, and wrong
value (0) was sent to user space.

After association FW will start listening to beacon frames of
connected AP and store dtim period. Therefore we can get it from
FW in dump_station() instead of using wrong value obtained in
scanning.

Redundant code after adapting new approach for dtim period is
also removed in this patch.

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: cleanup in snmp_mib command preparation code
Amitkumar Karwar [Fri, 3 Feb 2012 04:48:57 +0000 (20:48 -0800)]
mwifiex: cleanup in snmp_mib command preparation code

1) Remove unnecessary switch case usage.
2) Replace "X=cpu_to_le16(le16_to_cpu(X) + Y)" by "le16_add_cpu(X, Y)"
3) Declare "ul_temp" variable as u16 instead of u32 to avoid
unnecessary typecasting

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 agortlwifi: Fix PCI probe error path orphaned memory
Tim Gardner [Thu, 2 Feb 2012 20:48:06 +0000 (13:48 -0700)]
rtlwifi: Fix PCI probe error path orphaned memory

Memory allocated by ieee80211_alloc_hw() will get orphaned
if any subsequent initializations fail.

Also don't pci_set_drvdata(pdev, NULL) until just before disabling
the PCI device. Functions called by rtl_deinit_core(hw) may eventually need
the context (when its actually implemented).

Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: support hw scan while idle
Eliad Peller [Thu, 2 Feb 2012 15:44:55 +0000 (17:44 +0200)]
mac80211: support hw scan while idle

Currently, mac80211 goes to idle-off before starting a scan.
However, some devices that implement hw scan might not
need going idle-off in order to perform a hw scan, and
thus saving some energy and simplifying their state machine.

(Note that this is also the case for sched scan - it
currently doesn't make mac80211 go idle-off)

Add a new flag to indicate support for hw scan while idle.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomwifiex: enable HT operating mode
Amitkumar Karwar [Thu, 2 Feb 2012 04:41:45 +0000 (20:41 -0800)]
mwifiex: enable HT operating mode

This patch sets default adapter channel_type as HT. Hence the device
will opearate in HT 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>
12 years agomwifiex: fix NULL pointer dereference in set_channel()
Amitkumar Karwar [Thu, 2 Feb 2012 04:41:44 +0000 (20:41 -0800)]
mwifiex: fix NULL pointer dereference in set_channel()

In set_channel() callback handler, "priv" pointer is derived from
net_device. Sometimes net_device pointer coming from the stack
is NULL which causes kernel crash.
This patch fixes the problem by deriving "priv" from wiphy
when net_device pointer is NULL.

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 agomwl8k: Remove BSSID from the firmware when the BSS is stopped
Yogesh Ashok Powar [Wed, 1 Feb 2012 10:49:54 +0000 (16:19 +0530)]
mwl8k: Remove BSSID from the firmware when the BSS is stopped

Using command DEL_MAC_ADDR, remove the mac address of the BSS
when it is stopped i.e the corresponding vif is removed. Without
this, the stale bss entry will still be maintained in the firmware
which causes issues when the BSS's are recreated.

Signed-off-by: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoath9k: cleanup a min_t() cast
Dan Carpenter [Wed, 1 Feb 2012 07:43:31 +0000 (10:43 +0300)]
ath9k: cleanup a min_t() cast

If the firmware was over 2G, it would cause memory corruption and the
system would die here.  Obviously we all know the firmware isn't going
to be that large but static checkers get upset.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: off by one in mcs mask handling
Dan Carpenter [Wed, 1 Feb 2012 07:42:11 +0000 (10:42 +0300)]
mac80211: off by one in mcs mask handling

"ridx" is used as an index into the mcs_mask[] array which has
IEEE80211_HT_MCS_MASK_LEN elements.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agossb: add support for bcm5354
Hauke Mehrtens [Tue, 31 Jan 2012 23:13:56 +0000 (00:13 +0100)]
ssb: add support for bcm5354

This patch adds support the the BCM5354 SoC.
It has a PMU and a constant not configurable clock.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agossb: log the id, rev and pkg of the chip found
Hauke Mehrtens [Tue, 31 Jan 2012 23:13:55 +0000 (00:13 +0100)]
ssb: log the id, rev and pkg of the chip found

This makes us see what type of hardware someone uses by the dmesg
output.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: log the id, rev and pkg of the chip found
Hauke Mehrtens [Tue, 31 Jan 2012 23:13:54 +0000 (00:13 +0100)]
bcma: log the id, rev and pkg of the chip found

This makes us see what type of hardware someone uses by the dmesg
output.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agocfg80211/mac80211: userspace peer authorization in IBSS
Antonio Quartulli [Tue, 31 Jan 2012 19:25:47 +0000 (20:25 +0100)]
cfg80211/mac80211: userspace peer authorization in IBSS

If the IBSS network is RSN-protected, let userspace authorize the stations
instead of adding them as AUTHORIZED by default.

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: Remove extra debugging message accidentally left in
Larry Finger [Tue, 31 Jan 2012 16:29:22 +0000 (10:29 -0600)]
rtlwifi: Remove extra debugging message accidentally left in

In commit b0302aba812bcc39291cdab9ad7e37008f352a91, an extra debugging
message that is spamming the logs was not deleted before submission.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: Fix typo in dm.c
Masanari Iida [Tue, 31 Jan 2012 15:42:58 +0000 (09:42 -0600)]
rtlwifi: Fix typo in dm.c

Correct a spelling "disconnet" to "disconnect" in
drivers/net/wireless/rtlwifi/rtl8192de/dm.c

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agoiwmc3200wifi: Fix typo in trace.h
Masanari Iida [Tue, 31 Jan 2012 14:23:45 +0000 (23:23 +0900)]
iwmc3200wifi: Fix typo in trace.h

Correct spelling "embeded" to "embedded" in
drivers/net/wireless/iwmc3200wifi/trace.h

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agortlwifi: remove return in _rtl_pci_switch_clk_req
Devendra.Naga [Tue, 31 Jan 2012 06:28:15 +0000 (01:28 -0500)]
rtlwifi: remove return in _rtl_pci_switch_clk_req

the return value from _rtl_pci_switch_clk_req is not used by any of its callers.

Signed-off-by: Devendra.Naga <devendra.aaru@gmail.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: add extra sprom check
Hauke Mehrtens [Mon, 30 Jan 2012 23:03:37 +0000 (00:03 +0100)]
bcma: add extra sprom check

This check is needed on the BCM43224 device as it says in the
capabilities it has an sprom but is extra check says it has not.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: add bus num counter
Hauke Mehrtens [Mon, 30 Jan 2012 23:03:36 +0000 (00:03 +0100)]
bcma: add bus num counter

If we have two bcma buses on one computer the second will not work
without this patch. Now each bus gets an own number.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: add PCIe host controller
Hauke Mehrtens [Mon, 30 Jan 2012 23:03:35 +0000 (00:03 +0100)]
bcma: add PCIe host controller

Some SoCs have a PCIe host controller to make it possible to attach
some other devices to it, like an other Wifi card.
This code was tested with an Netgear WNDR3400 (bcm4716 based), but
should work with all bcma based SoCs.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: make some functions __devinit
Hauke Mehrtens [Mon, 30 Jan 2012 23:03:34 +0000 (00:03 +0100)]
bcma: make some functions __devinit

bcma_core_pci_hostmode_init() has to be in __devinit as it will call a
function in that section and so all functions calling it also have to
be in __devinit.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: export bcma_pcie_read()
Hauke Mehrtens [Mon, 30 Jan 2012 23:03:33 +0000 (00:03 +0100)]
bcma: export bcma_pcie_read()

This will be needed by the host controller.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: add constants for PCI and use them
Hauke Mehrtens [Mon, 30 Jan 2012 23:03:32 +0000 (00:03 +0100)]
bcma: add constants for PCI and use them

There are many magic numbers used in the PCIe code. Replace them with
some constants from the Broadcom SDK and also use them in the pcie host
controller.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agobcma: add the core unit number
Hauke Mehrtens [Mon, 30 Jan 2012 23:03:31 +0000 (00:03 +0100)]
bcma: add the core unit number

Some SoCs have two pcie or gmac cores and we need to know the number of
the specific core on the bus. This is the case for the BCM4706.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2800: document RF_R03 register bits [7:4]
Stanislaw Gruszka [Wed, 1 Feb 2012 15:17:40 +0000 (16:17 +0100)]
rt2800: document RF_R03 register bits [7:4]

Taken from:
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
(based on function RT33xx_ChipSwitchChannel)

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2800: radio 3xxxx: channel switch RX/TX calibration fixes
Stanislaw Gruszka [Mon, 30 Jan 2012 15:17:59 +0000 (16:17 +0100)]
rt2800: radio 3xxxx: channel switch RX/TX calibration fixes

Synchronize code with Ralink driver:
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
Based on functions:
RT30xx_ChipSwitchChannel
RT33xx_ChipSwitchChannel
NICInitRT3370RFRegisters
and defines from:
include/chip/rt33xx.h

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2800: radio 3xxx: add channel switch calibration routines
Stanislaw Gruszka [Mon, 30 Jan 2012 15:17:58 +0000 (16:17 +0100)]
rt2800: radio 3xxx: add channel switch calibration routines

Synchronize code with Ralink driver:
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
Based on functions:
RT33xx_ChipSwitchChannel
RT30xx_ChipSwitchChannel

Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2800: radio 3xxx: program RF_R1 during channel switch
Stanislaw Gruszka [Mon, 30 Jan 2012 15:17:57 +0000 (16:17 +0100)]
rt2800: radio 3xxx: program RF_R1 during channel switch

Synchronize code with Ralink driver:
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
Based on functions:
RT33xx_ChipSwitchChannel
RT30xx_ChipSwitchChannel
RT33xx_Init

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agort2800: radio 3xxx: reprogram only lower bits of RF_R3
Stanislaw Gruszka [Mon, 30 Jan 2012 15:17:56 +0000 (16:17 +0100)]
rt2800: radio 3xxx: reprogram only lower bits of RF_R3

Synchronize code with Ralink driver:
2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
(functions: RT33xx_ChipSwitchChannel() and RT30xx_ChipSwitchChannel())

Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agonet: Fix typo in ipw2x00/libipw_rx.c
Masanari Iida [Mon, 30 Jan 2012 13:52:10 +0000 (22:52 +0900)]
net: Fix typo in ipw2x00/libipw_rx.c

Correct spelling in "suppported" to "supported" in
drivers/net/wireless/ipw2x00/libipw_rx.c

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Reviewed-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: redesign auth/assoc
Johannes Berg [Fri, 20 Jan 2012 12:55:27 +0000 (13:55 +0100)]
mac80211: redesign auth/assoc

This is the second part of the auth/assoc redesign,
the mac80211 part. This moves the auth/assoc code
out of the work abstraction and into the MLME, so
that we don't flip channels all the time etc.

The only downside is that when we are associated,
we need to drop the association in order to create
a connection to another AP, but for most drivers
this is actually desirable and the ability to do
was never used by any applications. If we want to
implement resource reservation with FT-OTA, we'd
probably best do it with explicit R-O-C in wpa_s.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agocfg80211: export cfg80211_ref_bss
Johannes Berg [Fri, 20 Jan 2012 12:55:26 +0000 (13:55 +0100)]
cfg80211: export cfg80211_ref_bss

This is needed by mac80211 to keep a reference
to a BSS alive for the auth process. Remove the
old version of cfg80211_ref_bss() since it's
not actually used.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agocfg80211: stop tracking authenticated state
Johannes Berg [Fri, 20 Jan 2012 12:55:25 +0000 (13:55 +0100)]
cfg80211: stop tracking authenticated state

To track authenticated state seems to have been
a design mistake in cfg80211. It is possible to
have out of band authentication (FT), tracking
multiple authentications caused more problems
than it ever helped, and the implementation in
mac80211 is too complex.

Remove all this complexity, and let userspace
do whatever it wants to, mac80211 can deal with
that just fine. Association is still tracked of
course, but authentication no longer is. Local
auth state changes are thus no longer of value,
so ignore them completely.

This will also help implement SAE -- asking the
driver to do an authentication is now almost
equivalent to sending an authentication frame,
with the exception of shared key authentication
which is still handled completely.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: remove dummy STA support
Johannes Berg [Fri, 20 Jan 2012 12:55:24 +0000 (13:55 +0100)]
mac80211: remove dummy STA support

The dummy STA support was added because I didn't
want to change the driver API at the time. Now
that we have state transitions triggering station
add/remove in the driver, we only call add once a
station reaches ASSOCIATED, so we can remove the
dummy station stuff again.

While at it, tighten the RX check and accept only
port control (EAP) frames from the AP station if
it's not associated yet -- in other cases there's
no race.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: implement sta_add/sta_remove in sta_state
Johannes Berg [Fri, 20 Jan 2012 12:55:22 +0000 (13:55 +0100)]
mac80211: implement sta_add/sta_remove in sta_state

Instead of maintaining separate sta_add/sta_remove
callsites, implement it in sta_state when the driver
has no sta_state implementation.

The only behavioural change this should cause is in
secure mesh mode: with this the station entries will
only be created after the stations are set to AUTH.
Given which drivers support mesh, this seems to not
be a problem.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: add sta_state callback
Johannes Berg [Fri, 20 Jan 2012 12:55:21 +0000 (13:55 +0100)]
mac80211: add sta_state callback

(based on Eliad's patch)

Add a callback to notify the low-level driver whenever
the state of a station changes. The driver is only
notified when the station is actually in the mac80211
hash table, not for pre-insert state transitions.

To allow the driver to replace sta_add/remove calls
with this, call extra transitions with the NOTEXIST
state.

This callback can fail, so we need to be careful in
handling it when a station is inserted, particularly
in the IBSS case where we still keep the station entry
around for mac80211 purposes.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: add NOTEXIST station state
Johannes Berg [Fri, 20 Jan 2012 12:55:20 +0000 (13:55 +0100)]
mac80211: add NOTEXIST station state

This will be used by drivers later if they
need to have stations inserted all the time,
in mac80211 has no purpose, is never used
and sta_state starts out in NONE.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: dont program keys for stations not uploaded
Johannes Berg [Fri, 20 Jan 2012 12:55:19 +0000 (13:55 +0100)]
mac80211: dont program keys for stations not uploaded

If a station couldn't be uploaded to the driver but
is still kept (only in IBSS mode) we still shouldn't
try to program the keys for it into hardware; fix
this bug by skipping the key upload in this case.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: simplify AP_VLAN handling
Johannes Berg [Fri, 20 Jan 2012 12:55:18 +0000 (13:55 +0100)]
mac80211: simplify AP_VLAN handling

Setting keys and updating TKIP keys must use the
BSS sdata (not AP_VLAN), so we translate. Move
the translation into driver-ops wrappers instead
of having it inline in the code to simplify the
normal code flow.

The same can be done for sta_add/remove which
already does the translation in the wrapper.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
12 years agomac80211: move managed mode station state modification
Johannes Berg [Fri, 20 Jan 2012 12:55:17 +0000 (13:55 +0100)]
mac80211: move managed mode station state modification

Move the station state modification right before insert,
this just makes the current code more readable (you can
tell that it's before insertion looking at a single
screenful of code) right now, but some upcoming changes
will require this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>