openwrt/staging/blogic.git
13 years agoiwlagn: rename iwlagn_set_dynamic_key
Johannes Berg [Sun, 17 Jul 2011 08:44:11 +0000 (01:44 -0700)]
iwlagn: rename iwlagn_set_dynamic_key

We now have iwlagn_set_dynamic_key() and
iwl_set_dynamic_key() which is confusing,
rename the former to iwlagn_send_sta_key()
to better reflect what it does -- it only
sends a command and doesn't change driver
state.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: track beacon interval sent to device
Johannes Berg [Mon, 18 Jul 2011 08:59:22 +0000 (01:59 -0700)]
iwlagn: track beacon interval sent to device

Sometimes, when mac80211 changes the beacon
interval or when it isn't yet set in mac80211
before association, the uCode will sysassert
because we send it confusing RXON timing vs.
PAN parameters. To fix this, track the last
beacon interval sent to the device and use
that in PAN parameter calculations.

This fixes a bug during P2P group formation
as a client (and possibly association to a
regular AP) while connected to another AP.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: write iq invert register for 105/135 device
Wey-Yi Guy [Mon, 18 Jul 2011 20:59:23 +0000 (13:59 -0700)]
iwlagn: write iq invert register for 105/135 device

For 105/135 series of devices, we need to do I/Q invert just like 2000
series devices.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: implement WoWLAN
Johannes Berg [Fri, 15 Jul 2011 20:23:45 +0000 (13:23 -0700)]
iwlagn: implement WoWLAN

Implement WoWLAN support in iwlagn. The device
supports a number of wakeup triggers and can do
GTK rekeying when asleep (if HW crypto is used).
Unfortunately, we need to disconnect from the AP
after resume since we can't yet get all the info
out of the wowlan uCode to stay connected safely.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: rewrite HW crypto
Johannes Berg [Fri, 15 Jul 2011 20:03:12 +0000 (13:03 -0700)]
iwlagn: rewrite HW crypto

As I just discovered while doing WoWLAN, HW crypto
is done wrong for GTKs: they should be programmed
for the AP station ID (in the managed mode case)
and the HW can actually deal with multiple group
keys per station as well (which is useful in IBSS
RSN but that I've chosen not to use this).

To fix all this, modify the way keys are sent to
the device and key offsets are allocated. After
these changes, key offsets are stored into the
hw_key_idx which we can then track for the key
lifetime, not relying on our sta_cmd array. WEP
default keys get special treatment, of course.

Additionally, since I had the API for it, we can
now pre-fill TKIP phase 1 keys for RX now that we
can obtain the P1K from mac80211, a capability I
had added for WoWLAN initially.

Finally, some keys simply don't need to be added
into the device's key cache -- a key that won't
be used for RX is only needed in the TX header,
so "pretend" to have accepted any key without
adding it into the device -- no need to use up
key space there for it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove forgotten debugfs function
Johannes Berg [Thu, 14 Jul 2011 19:55:36 +0000 (12:55 -0700)]
iwlagn: remove forgotten debugfs function

It seems that due to merge issues between different
trees or so this function prototype wasn't removed
when it should have been, do it now.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove un-necessary "_agn"
Wey-Yi Guy [Wed, 13 Jul 2011 15:38:57 +0000 (08:38 -0700)]
iwlagn: remove un-necessary "_agn"

After driver split, extra _agn in priv structure is no needed, remove it.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove keyinfo cache
Johannes Berg [Wed, 13 Jul 2011 20:27:25 +0000 (13:27 -0700)]
iwlagn: remove keyinfo cache

iwlagn keeps a copy of key stuff internally but
never actually uses it, so remove it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: testmode fixed rate available for testmode only
Wey-Yi Guy [Wed, 13 Jul 2011 18:13:46 +0000 (11:13 -0700)]
iwlagn: testmode fixed rate available for testmode only

Move tm_fixed_rate inside CONFIG_IWLWIFI_DEVICE_SVTOOL and only
available when the option is enable.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: add comment to warn about WoWLAN in resume / suspend flows
Emmanuel Grumbach [Mon, 11 Jul 2011 10:14:37 +0000 (13:14 +0300)]
iwlagn: add comment to warn about WoWLAN in resume / suspend flows

WoWLAN may need the NIC even after suspend. One should not do anything to the
NIC in the bus level, since one cannot check whether WoWLAN is enabled or not.
Same for resume.

Add a simple comment to the code to warn about this.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: iwl_bus holds drv_data as void * instead of iwl_priv
Emmanuel Grumbach [Mon, 11 Jul 2011 08:18:48 +0000 (11:18 +0300)]
iwlagn: iwl_bus holds drv_data as void * instead of iwl_priv

The price to pay is the access to the log system. Therefore logs from bus layer
are sent by dev_printk instead of IWL_XXXX.

Rename bus->priv to bus->drv_data to make the separation even clearer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: simplify the bus architecture
Emmanuel Grumbach [Mon, 11 Jul 2011 07:48:51 +0000 (10:48 +0300)]
iwlagn: simplify the bus architecture

Call iwl_probe with a ready iwl_bus struct. This means that the bus layer
assigns the irq, dev and iwl_bus_ops pointers to iwl_bus before giving it to
iwl_probe.

The device specific struct is allocated together with the common iwl_bus struct
by the bus specific layer. The pointer to the aggregate struct is passed to the
upper layer that holds a pointer to iwl_bus instead of an embedded iw_bus.
The private data given to the PCI subsystem is now iwl_bus and not iwl_priv.

Provide bus_* inliners on the way in order  to simplify the syntax.

Rename iwl-pci.h -> iwl-bus.h since it is bus agnostic and represent the
external of the bus layer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: transport layer receives struct iwl_trans*
Emmanuel Grumbach [Mon, 11 Jul 2011 05:51:04 +0000 (08:51 +0300)]
iwlagn: transport layer receives struct iwl_trans*

It still holds a pointer to iwl_priv. But hopefully this will disappear at some point.
Also add the multiple inclusion protection to iwl-trans.h that was forgotten.
Move iwl-trans structures to iwl-trans.h

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move iwl_prepare_card_hw to the transport layer
Emmanuel Grumbach [Sun, 10 Jul 2011 12:39:57 +0000 (15:39 +0300)]
iwlagn: move iwl_prepare_card_hw to the transport layer

This function is really related to the transport layer - move it.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move more functions from the start flow to the transport layer
Emmanuel Grumbach [Sun, 10 Jul 2011 12:30:15 +0000 (15:30 +0300)]
iwlagn: move more functions from the start flow to the transport layer

Basically all the nic_init flow should be in the transport layer.
iwl_prepare_card_hw will move to the transport too in a separate patch.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: SCD configuration for AMPDU moves to transport layer
Emmanuel Grumbach [Sun, 10 Jul 2011 07:47:01 +0000 (10:47 +0300)]
iwlagn: SCD configuration for AMPDU moves to transport layer

All the configurations of the HW for AMPDU are now in the transport layer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: radio sensor offset in le16 format
Wey-Yi Guy [Fri, 8 Jul 2011 21:29:48 +0000 (14:29 -0700)]
iwlagn: radio sensor offset in le16 format

For temperature offset calibration, send radio sensor offset in le16 format

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: define valid init calibration mask
Wey-Yi Guy [Fri, 8 Jul 2011 21:29:47 +0000 (14:29 -0700)]
iwlagn: define valid init calibration mask

Use the valid calibration mask for init calibration

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove legacy calibration command
Wey-Yi Guy [Fri, 8 Jul 2011 21:29:46 +0000 (14:29 -0700)]
iwlagn: remove legacy calibration command

IWL_PHY_CALIBRATE_DIFF_GAIN_CMD is for legacy device, remove it

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: set correct calibration flag
Wey-Yi Guy [Fri, 8 Jul 2011 21:29:45 +0000 (14:29 -0700)]
iwlagn: set correct calibration flag

Set calibration config flag for complete notification

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: kill iwlagn_setup_deferred_work
Emmanuel Grumbach [Sun, 3 Jul 2011 12:45:34 +0000 (15:45 +0300)]
iwlagn: kill iwlagn_setup_deferred_work

Since iwlagn_setup_deferred_work is always called, fold it into
iwl_setup_deferred_work. BT related works are setup by the new
bt_setup_deferred_work lib_ops.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.guy@intel.com>
13 years agoiwlagn: kill iwlagn_rx_handler_setup
Emmanuel Grumbach [Sun, 3 Jul 2011 12:45:34 +0000 (15:45 +0300)]
iwlagn: kill iwlagn_rx_handler_setup

Since iwlagn_rx_handler_setup is always called, fold it into
iwl_rx_handler_setup. BT related handlers are setup by the new
bt_rx_handler_setup lib_ops.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.guy@intel.com>
13 years agoiwlagn: add kick_nic API to transport layer
Emmanuel Grumbach [Thu, 7 Jul 2011 15:20:01 +0000 (18:20 +0300)]
iwlagn: add kick_nic API to transport layer

kick_nic means to remove the RESET bit from the embedded CPU

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.guy@intel.com>
13 years agolibertas: only enable mesh when interface is active
Daniel Drake [Wed, 20 Jul 2011 16:53:56 +0000 (17:53 +0100)]
libertas: only enable mesh when interface is active

Previously, the mesh was running whenever the appropriate hardware
and firmware was present.

Now we only run the mesh when the interface is running.

Also simplifies interface management a little.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agolibertas: mesh: misc cleanup
Daniel Drake [Wed, 20 Jul 2011 16:53:50 +0000 (17:53 +0100)]
libertas: mesh: misc cleanup

Remove unused blindlist code.

Mark a few items const and static where possible. Involved some
code re-ordering, but no code changes.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowireless: mwifiex: print hw address via %pM
Andy Shevchenko [Wed, 20 Jul 2011 13:34:31 +0000 (16:34 +0300)]
wireless: mwifiex: print hw address via %pM

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowireless: ath9k: use %pM to print MAC
Andy Shevchenko [Wed, 20 Jul 2011 13:34:30 +0000 (16:34 +0300)]
wireless: ath9k: use %pM to print MAC

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: "Luis R. Rodriguez" <lrodriguez@atheros.com>
Cc: ath9k-devel@lists.ath9k.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agowireless: rtlwifi: throw away MAC_FMT and use %pM instead
Andy Shevchenko [Wed, 20 Jul 2011 13:34:29 +0000 (16:34 +0300)]
wireless: rtlwifi: throw away MAC_FMT and use %pM instead

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: fix scan crash on single-band cards
Johannes Berg [Tue, 19 Jul 2011 22:52:16 +0000 (00:52 +0200)]
cfg80211: fix scan crash on single-band cards

commit 58389c69150e6032504dfcd3edca6b1975c8b5bc
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jul 18 18:08:35 2011 +0200

     cfg80211: allow userspace to control supported rates in scan

made single-band cards crash since it would always
access all wiphy->bands[]. Fix this and reject any
attempts in the new helper ieee80211_get_ratemask()
to do the same, rejecting rates configuration for
unsupported bands.

Reported-by: Pavel Roskin <proski@gnu.org>
Tested-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: fix sparse warnings enabled by CONFIG_SPARSE_RCU_POINTER
Pavel Roskin [Tue, 19 Jul 2011 22:02:15 +0000 (18:02 -0400)]
carl9170: fix sparse warnings enabled by CONFIG_SPARSE_RCU_POINTER

Signed-off-by: Pavel Roskin <proski@gnu.org>
Acked-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: check sta_info_get() return value
Eliad Peller [Tue, 19 Jul 2011 10:14:42 +0000 (13:14 +0300)]
mac80211: check sta_info_get() return value

ieee80211_stop_rx_ba_session() was calling sta_info_get()
without rcu locking, and the return value was not
checked.
This resulted in the following panic:

[<bf05726c>] (ieee80211_stop_rx_ba_session+0x0/0x60 [mac80211])
[<bf0abd94>] (wl1271_event_handle+0x0/0xdc8 [wl12xx])
[<bf0a7308>] (wl1271_irq+0x0/0x4a0 [wl12xx])
[<c00c40a8>] (irq_thread+0x0/0x254)
[<c00a7398>] (kthread+0x0/0x8c)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: enter psm when working as p2p_cli
Eliad Peller [Tue, 19 Jul 2011 09:57:13 +0000 (12:57 +0300)]
cfg80211: enter psm when working as p2p_cli

cfg80211_netdev_notifier_call() is configuring psm in case
of NL80211_IFTYPE_STATION interface type (on NETDEV_UP).
do the same for NL80211_IFTYPE_P2P_CLIENT interface type.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: sync driver before TX
Johannes Berg [Tue, 19 Jul 2011 08:39:53 +0000 (10:39 +0200)]
mac80211: sync driver before TX

In P2P client mode, the GO (AP) to connect to might
have periods of time where it is not available due
to powersave. To allow the driver to sync with it
and send frames to the GO only when it is available
add a new callback tx_sync (and the corresponding
finish_tx_sync). These callbacks can sleep unlike
the actual TX.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath5k: merge ath5k_hw and ath5k_softc
Pavel Roskin [Fri, 15 Jul 2011 00:21:55 +0000 (20:21 -0400)]
ath5k: merge ath5k_hw and ath5k_softc

Both ath5k_hw and ath5k_softc represent one instance of the hardware.
This duplication is historical and is not needed anymore.

Keep the name "ath5k_hw" for the merged structure and "ah" for the
variable pointing to it.  "ath5k_hw" is shorter than "ath5k_softc", more
descriptive and more widely used.

Put the combined structure to ath5k.h where the old ath5k_softc used to
be. Move some code from base.h to ath5k.h as needed.

Remove memory allocation for struct ath5k_hw and the corresponding error
handling.  Merge iobase and ah_iobase fields.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Acked-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: bcma: implement full core reset
Rafał Miłecki [Sat, 16 Jul 2011 23:06:06 +0000 (01:06 +0200)]
b43: bcma: implement full core reset

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: allow enabling PLL
Rafał Miłecki [Sat, 16 Jul 2011 23:06:05 +0000 (01:06 +0200)]
bcma: allow enabling PLL

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: allow setting FAST clockmode for a core
Rafał Miłecki [Sat, 16 Jul 2011 23:06:04 +0000 (01:06 +0200)]
bcma: allow setting FAST clockmode for a core

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: trivial: add helpers for masking/setting
Rafał Miłecki [Sat, 16 Jul 2011 23:06:03 +0000 (01:06 +0200)]
bcma: trivial: add helpers for masking/setting

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: move define of BCMA_CLKCTLST register
Rafał Miłecki [Sat, 16 Jul 2011 16:43:36 +0000 (18:43 +0200)]
bcma: move define of BCMA_CLKCTLST register

Recent experiments have shown many cores share 0x1E0 register used for
clock management.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: correctly display longer chipsets ids
Rafał Miłecki [Mon, 18 Jul 2011 20:45:58 +0000 (22:45 +0200)]
b43: correctly display longer chipsets ids

Some of the newer Broadcom chipsets have longe names like BCM43224,
BCM43225, etc. However Broadcom decided to keep using u16 for storing
them. Use %X or %d depending on chip_id value to avoid BCMA8D8, etc.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: implement scan supported rates
Johannes Berg [Mon, 18 Jul 2011 16:08:36 +0000 (18:08 +0200)]
mac80211: implement scan supported rates

Scanning currently uses the TX rate mask to
restrict the rate set, which is bogus. Make
it use the new set of rates from userspace.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocfg80211: allow userspace to control supported rates in scan
Johannes Berg [Mon, 18 Jul 2011 16:08:35 +0000 (18:08 +0200)]
cfg80211: allow userspace to control supported rates in scan

Some P2P scans are not allowed to advertise
11b rates, but that is a rather special case
so instead of having that, allow userspace
to request the rate sets (per band) that are
advertised in scan probe request frames.

Since it's needed in two places now, factor
out some common code parsing a rate array.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: fix masks in radio ctl
Rafał Miłecki [Mon, 18 Jul 2011 00:13:23 +0000 (02:13 +0200)]
b43: HT-PHY: fix masks in radio ctl

Old masks were causing ugly, delayed lock ups.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: bcma: read info about supported bands
Rafał Miłecki [Mon, 18 Jul 2011 00:01:30 +0000 (02:01 +0200)]
b43: bcma: read info about supported bands

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: bcma: define 80211 core specific IO status bits
Rafał Miłecki [Mon, 18 Jul 2011 00:01:29 +0000 (02:01 +0200)]
b43: bcma: define 80211 core specific IO status bits

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: define IO status register
Rafał Miłecki [Mon, 18 Jul 2011 00:01:28 +0000 (02:01 +0200)]
bcma: define IO status register

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoieee80211: add few wmm tspec values
Kalle Valo [Sun, 17 Jul 2011 09:13:56 +0000 (12:13 +0300)]
ieee80211: add few wmm tspec values

These are needed by ath6kl for parsing tspec status from an IE.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: handle alternative SPROM location
Rafał Miłecki [Sun, 17 Jul 2011 09:00:59 +0000 (11:00 +0200)]
bcma: handle alternative SPROM location

Some cards do not use additional 0x30 offset for SPROM location. We do
not know the real condition for it yet, make it BCM4331 specific for
now.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: fix typo in 0x2059 radio init
Rafał Miłecki [Sun, 17 Jul 2011 08:30:34 +0000 (10:30 +0200)]
b43: HT-PHY: fix typo in 0x2059 radio init

Following operation was incorrectly translated:
 radio_read(0x0011) -> 0xffff
radio_write(0x0011) <- 0xfff7

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: find channel entry with regs data
Rafał Miłecki [Sun, 17 Jul 2011 08:30:33 +0000 (10:30 +0200)]
b43: HT-PHY: find channel entry with regs data

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: HT-PHY: switch to channel after enabling radio
Rafał Miłecki [Sun, 17 Jul 2011 08:30:32 +0000 (10:30 +0200)]
b43: HT-PHY: switch to channel after enabling radio

Also change the default channel to 11. This is the first channel closed
driver switches to.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: use agent R/W ops for BCMA_IOCTL
Rafał Miłecki [Sat, 16 Jul 2011 16:27:55 +0000 (18:27 +0200)]
b43: use agent R/W ops for BCMA_IOCTL

BCMA_IOCTL is register in agent (AKA wrapper) core, we need to use
special R/W ops for it.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Fix some smatch warnings
Rajkumar Manoharan [Sun, 17 Jul 2011 06:08:49 +0000 (11:38 +0530)]
ath9k: Fix some smatch warnings

drivers/net/wireless/ath/ath9k/hif_usb.c +135 hif_usb_mgmt_cb(6) warn:
variable dereferenced before check 'cmd'
drivers/net/wireless/ath/ath9k/btcoex.c +77 ath9k_hw_init_btcoex_hw(38)
error: buffer overflow 'ah->hw_gen_timers.gen_timer_index' 32 <=
2009813776

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMAINTAINERS: change maintainer of the wl1251 driver
Luciano Coelho [Sun, 17 Jul 2011 07:06:34 +0000 (10:06 +0300)]
MAINTAINERS: change maintainer of the wl1251 driver

Kalle Valo has asked me to take over the maintenance of the wl1251
driver.  Thanks Kalle for all his work on the wl1251 driver, I'll try
to keep up with his good work from now on.

At the same time, update the Web URL to something more specific.
There's not much in that page, but we will try to update it soon.

Signed-off-by: Luciano Coelho <coelho@ti.com>
Acked-by: Kalle Valo <kvalo@adurom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Fix sparse warnings
Rajkumar Manoharan [Sun, 17 Jul 2011 06:13:02 +0000 (11:43 +0530)]
ath9k: Fix sparse warnings

drivers/net/wireless/ath/ath9k/init.c:199:21: warning: context imbalance
in 'ath9k_reg_rmw' - different lock contexts for basic block
drivers/net/wireless/ath/ath9k/xmit.c:1175:31: warning: context
imbalance in 'ath_drain_txq_list' - unexpected unlock
drivers/net/wireless/ath/ath9k/xmit.c:2047:23: warning: context
imbalance in 'ath_tx_process_buffer' - unexpected unlock
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c:3041:24: warning: cast to
restricted __le32

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agob43: bus: drop inline from SSB functions
Rafał Miłecki [Sat, 16 Jul 2011 23:15:18 +0000 (01:15 +0200)]
b43: bus: drop inline from SSB functions

We use all that functions by pointers only. This forces compiler to
create additional duplicated functions that are not inline.
Noticed by Michael in similar bcma code.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: set beacon xmit power to the max
Christian Lamparter [Sat, 16 Jul 2011 15:30:19 +0000 (17:30 +0200)]
carl9170: set beacon xmit power to the max

Harshal Chhaya discovered during network tests, that
several of his clients dropped-off the network. The
captured packets shows that the beacons sent by the
AP are at a much lower power than the other data
packets.

The reason for this mishap: The driver never updated
the beacon phy register, so all beacons were always
sent at the lowest power.

Reference: http://marc.info/?l=linux-wireless&m=131067225105801
Reported-by: Harshal Chhaya <harshal@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: move beacon_update into tx.c
Christian Lamparter [Sat, 16 Jul 2011 15:25:14 +0000 (17:25 +0200)]
carl9170: move beacon_update into tx.c

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170 firmware: update firmware headers
Christian Lamparter [Sat, 16 Jul 2011 15:21:01 +0000 (17:21 +0200)]
carl9170 firmware: update firmware headers

 * reserves feature bit for CCA counters

 * extends hardware register file definitions

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: use ath_opmode_to_string()
Pavel Roskin [Fri, 15 Jul 2011 23:06:46 +0000 (19:06 -0400)]
ath9k: use ath_opmode_to_string()

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove defines in reg.h that exist in ../reg.h
Pavel Roskin [Fri, 15 Jul 2011 23:06:40 +0000 (19:06 -0400)]
ath9k: remove defines in reg.h that exist in ../reg.h

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: use get_unaligned_{b16, le16, le32} where possible
Pavel Roskin [Fri, 15 Jul 2011 23:06:33 +0000 (19:06 -0400)]
ath9k: use get_unaligned_{b16, le16, le32} where possible

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath: use get_unaligned_le{16,32} in ath_hw_keysetmac()
Pavel Roskin [Fri, 15 Jul 2011 23:06:27 +0000 (19:06 -0400)]
ath: use get_unaligned_le{16,32} in ath_hw_keysetmac()

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: extract SPROM rev 9 the same way as rev 8
Rafał Miłecki [Thu, 14 Jul 2011 19:49:21 +0000 (21:49 +0200)]
bcma: extract SPROM rev 9 the same way as rev 8

SPROM rev 9 was discovered on 14e4:4331, it seems to have very similar
layout to rev 8 one. Use the same extracting function until we find some
differences.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agobcma: cc: set GPIOTIMER register
Rafał Miłecki [Thu, 14 Jul 2011 19:49:19 +0000 (21:49 +0200)]
bcma: cc: set GPIOTIMER register

We use value supplied via SPROM, or default 10:90 as fallback.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agossb: SPROM: add LED duty cycle fields
Rafał Miłecki [Thu, 14 Jul 2011 19:49:18 +0000 (21:49 +0200)]
ssb: SPROM: add LED duty cycle fields

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: reconfigure tx on device reconfiguration
Eliad Peller [Thu, 14 Jul 2011 17:29:42 +0000 (20:29 +0300)]
mac80211: reconfigure tx on device reconfiguration

Add tx_conf array to save the current tx queues
configuration, and reconfig it on resume (ieee80211_reconfig).

On resume, the driver is being reconfigured. Without
reconfiguring the tx queues as well, the driver might
configure the device to use wrong ac params (e.g. ps-poll
instead of uapsd).

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoiwlagn: add tx start API to transport layer
Emmanuel Grumbach [Thu, 7 Jul 2011 12:50:10 +0000 (15:50 +0300)]
iwlagn: add tx start API to transport layer

tx start will start the tx queues: basically configure the SCD
Remove the IWLAGN prefix to SCD defines on the way.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.guy@intel.com>
13 years agoiwlagn: move all the ICT related functions to iwl-trans-rx-pcie.c
Emmanuel Grumbach [Mon, 11 Jul 2011 14:44:57 +0000 (07:44 -0700)]
iwlagn: move all the ICT related functions to iwl-trans-rx-pcie.c

Since the ICT is transport related, move all its functions to the transport
layer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move iwlagn_stop_device to transport layer
Emmanuel Grumbach [Thu, 7 Jul 2011 11:37:26 +0000 (14:37 +0300)]
iwlagn: move iwlagn_stop_device to transport layer

Since iwlagn_stop_device was the only caller to the rx_stop / tx_stop,
these two don't need to be API any more.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.guy@intel.com>
13 years agoiwlagn: move tx transport functions to iwl-trans-tx-pcie.c
Emmanuel Grumbach [Mon, 11 Jul 2011 14:39:46 +0000 (07:39 -0700)]
iwlagn: move tx transport functions to iwl-trans-tx-pcie.c

There are still a few functions here and there that should be
put in the transport layer. Mainly the functions that are related to the reclaim flow.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move rx transport functions to iwl-trans-rx-pcie.c
Emmanuel Grumbach [Mon, 11 Jul 2011 14:35:34 +0000 (07:35 -0700)]
iwlagn: move rx transport functions to iwl-trans-rx-pcie.c

Also create a new file: iwl-trans-int-pcie.h which will include
the non static functions that are shared among the current pcie transport layer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove indirection for iwlagn_hw_valid_rtc_data_addr
Fry, Donald H [Thu, 7 Jul 2011 22:24:07 +0000 (15:24 -0700)]
iwlagn: remove indirection for iwlagn_hw_valid_rtc_data_addr

Not needed since the driver split.

Signed-off-by: Don Fry <donald.h.fry@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: calibration bitmap
Wey-Yi Guy [Thu, 7 Jul 2011 19:24:46 +0000 (12:24 -0700)]
iwlagn: calibration bitmap

Define bitmap for calibration

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: set default of uCode ownership to driver
Hsu, Kenny [Thu, 7 Jul 2011 10:10:27 +0000 (03:10 -0700)]
iwlagn: set default of uCode ownership to driver

The driver should take the ownership of the uCode as default setting
for later operations after interface up.

Signed-off-by: Kenny Hsu <kenny.hsu@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: simplify TX flags assignments
Johannes Berg [Thu, 7 Jul 2011 12:11:51 +0000 (05:11 -0700)]
iwlagn: simplify TX flags assignments

The first assignment of TX_CMD_FLG_SEQ_CTL_MSK for
ack-expected mgmt frames is overwritten later in
the function, so it's useless. Also, probe response
frames, BACK request and others there are mutually
exclusive so can be moved into an else branch.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: add comment to tx and get_tx_cmd in iwl_trans_ops
Emmanuel Grumbach [Thu, 7 Jul 2011 16:25:51 +0000 (09:25 -0700)]
iwlagn: add comment to tx and get_tx_cmd in iwl_trans_ops

Those comments were missed in a previous commit.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: comments for iwl_cfg
Wey-Yi Guy [Wed, 6 Jul 2011 23:28:48 +0000 (16:28 -0700)]
iwlagn: comments for iwl_cfg

Modify the comments for iwl_cfg, no functional changes

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: another double indirect removed
Wey-Yi Guy [Wed, 6 Jul 2011 23:28:47 +0000 (16:28 -0700)]
iwlagn: another double indirect removed

Another clean up work after driver split

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove dual-indirect call to simply the code
Wey-Yi Guy [Thu, 7 Jul 2011 15:33:01 +0000 (08:33 -0700)]
iwlagn: remove dual-indirect call to simply the code

After driver split, no need to make the code so complex

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: remove un-necessary file
Wey-Yi Guy [Thu, 7 Jul 2011 15:27:41 +0000 (08:27 -0700)]
iwlagn: remove un-necessary file

Most of the functions in iwl-agn-hcmd are move to other files, no point to
keep the file anymore.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move the Rx dispatching to the upper layer
Emmanuel Grumbach [Thu, 7 Jul 2011 14:59:02 +0000 (07:59 -0700)]
iwlagn: move the Rx dispatching to the upper layer

The upper layer receives a pointer to an iwl_rx_mem_buffer. I would prefer the
upper layer to receive a pointer to an iwl_rx_packet, but this is impossible
since the Rx path needs to add the address of the page to the skb.
I may find a solution later.

All the pre_rx_handler and notification code has been moved to the upper layer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move sync_irq to transport layer
Emmanuel Grumbach [Mon, 4 Jul 2011 06:06:44 +0000 (09:06 +0300)]
iwlagn: move sync_irq to transport layer

Since all the irq / tasklet is now handled in the transport layer, it should
give an API to ensure that all the irq / tasklet have finished running. This
will allow the upper layer to release all its resources.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move the tasklet / irq to the transport layer
Emmanuel Grumbach [Mon, 4 Jul 2011 05:58:19 +0000 (08:58 +0300)]
iwlagn: move the tasklet / irq to the transport layer

PCIe doesn't provide any ISR registration API, whereas other buses do.
Hence, we need to move the tasklet and irq to the transport layer to allow this
flexibility.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agoiwlagn: move Tx datapath to transport layer
Emmanuel Grumbach [Sun, 3 Jul 2011 08:22:15 +0000 (11:22 +0300)]
iwlagn: move Tx datapath to transport layer

Split the Tx datapath in two parts:
* the first deals with the Tx cmd composition
* the second attaches the skb + Tx cmd to the queues

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
13 years agomac80211: be more careful in suspend/resume
Johannes Berg [Thu, 14 Jul 2011 14:48:54 +0000 (16:48 +0200)]
mac80211: be more careful in suspend/resume

When suspending with all netdevs down, the device
is stopped but we still call a number of driver
callbacks that the driver might not expect. The
same happens during resume, we might call a few
callbacks without starting the driver. Fix this
by checking open_count around more things and
exiting quickly if it is 0.

Also, while at this I noticed that the coverage
class isn't reprogrammed after resume, so add
that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agocarl9170: fix formatting issues found by checkpatch
Pavel Roskin [Thu, 14 Jul 2011 01:38:18 +0000 (21:38 -0400)]
carl9170: fix formatting issues found by checkpatch

Signed-off-by: Pavel Roskin <proski@gnu.org>
Acked-By: christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMAINTAINERS: add entry for Marvell mwifiex wireless driver
Bing Zhao [Wed, 13 Jul 2011 20:11:58 +0000 (13:11 -0700)]
MAINTAINERS: add entry for Marvell mwifiex wireless driver

Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: let key iteration get keys in install order
Johannes Berg [Wed, 13 Jul 2011 17:50:53 +0000 (19:50 +0200)]
mac80211: let key iteration get keys in install order

ieee80211_iter_keys() currently returns keys in
the backward order they were installed in, which
is a bit confusing. Add them to the tail of the
key list to make sure iterations go in the same
order that keys were originally installed in.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: allow driver access to TKIP RX P1K
Johannes Berg [Wed, 13 Jul 2011 17:50:34 +0000 (19:50 +0200)]
mac80211: allow driver access to TKIP RX P1K

When the driver wants to pre-program the TKIP
RX phase 1 key, it needs to be able to obtain
it for the peer's TA. Add API to allow it to
generate it.

The generation uses a dummy on-stack context
since it doesn't know the RX queue.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: improve reliability of MIC error detection
Felix Fietkau [Wed, 13 Jul 2011 15:35:05 +0000 (23:35 +0800)]
ath9k: improve reliability of MIC error detection

For unicast the hardware sometimes reports MIC errors even though the
frame that it received actually contains a valid MIC - on some chips this
can happen frequently enough to trigger TKIP countermeasures.
Fix this issue by not reporting MIC errors for unicast frames with a
valid key, letting mac80211 validate the MIC instead.

Additionally, strip the MIC for all frames that the hardware considers
valid to avoid wasting CPU cycles re-validating it.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoorinoco: minor fixes for problems found by checkpatch.pl
Pavel Roskin [Wed, 13 Jul 2011 15:19:57 +0000 (11:19 -0400)]
orinoco: minor fixes for problems found by checkpatch.pl

Eliminate spaces before tabs.  Eliminate typedefs.  Add spaces around
operators.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwl8k: Fixing sta dereference when ieee80211_tx_info->control.sta is NULL
Yogesh Ashok Powar [Wed, 13 Jul 2011 12:12:06 +0000 (17:42 +0530)]
mwl8k: Fixing sta dereference when ieee80211_tx_info->control.sta is NULL

Following oops was seen on SMP machine

>BUG: unable to handle kernel NULL pointer dereference at 00000012
>IP: [<f8c56691>] mwl8k_tx+0x20e/0x561 [mwl8k]
>*pde = 00000000
>Oops: 0000 [#1] SMP
>Modules linked in: mwl8k mac80211 cfg80211 [last unloaded: cfg80211]

As ieee80211_tx_info->control.sta may be NULL during ->tx call, avoiding sta
dereference in such scenario with the following patch.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211: add max_sched_scan_ie_len in the hw description
Luciano Coelho [Wed, 13 Jul 2011 11:57:29 +0000 (14:57 +0300)]
nl80211/cfg80211: add max_sched_scan_ie_len in the hw description

Some chips may support different lengths of user-supplied IEs with a
single scheduled scan command than with a single normal scan command.

To support this, this patch creates a separate hardware description
element that describes the maximum size of user-supplied information
element data supported in scheduled scans.

Signed-off-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211: add max_sched_scan_ssids in the hw description
Luciano Coelho [Wed, 13 Jul 2011 11:57:28 +0000 (14:57 +0300)]
nl80211/cfg80211: add max_sched_scan_ssids in the hw description

Some chips can scan more SSIDs with a single scheduled scan command
than with a single normal scan command (eg. wl12xx chips).

To support this, this patch creates a separate hardware description
element that describes the amount of SSIDs supported in scheduled
scans.

Signed-off-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211: advertise GTK rekey support, new triggers
Johannes Berg [Wed, 13 Jul 2011 08:48:55 +0000 (10:48 +0200)]
nl80211: advertise GTK rekey support, new triggers

Since we now have the necessary API in place to support
GTK rekeying, applications will need to know whether it
is supported by a device. Add a pseudo-trigger that is
used only to advertise that capability. Also, add some
new triggers that match what iwlagn devices can do.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: allow driver to disconnect after resume
Johannes Berg [Tue, 12 Jul 2011 10:30:59 +0000 (12:30 +0200)]
mac80211: allow driver to disconnect after resume

In WoWLAN, devices may use crypto keys for TX/RX
and could also implement GTK rekeying. If the
driver isn't able to retrieve replay counters and
similar information from the device upon resume,
or if the device isn't responsive due to platform
issues, it isn't safe to keep the connection up
as GTK rekey messages from during the sleep time
could be replayed against it.

The only protection against that is disconnecting
from the AP. Modifying mac80211 to do that while
it is resuming would be very complex and invasive
in the case that the driver requires a reconfig,
so do it after it has resumed completely. In that
case, however, packets might be replayed since it
can then only happen after TX/RX are up again, so
mark keys for interfaces that need to disconnect
as "tainted" and drop all packets that are sent
or received with those keys.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: remove a redundant check
Mohammed Shafi Shajakhan [Tue, 12 Jul 2011 09:49:04 +0000 (15:19 +0530)]
mac80211: remove a redundant check

is_valid_ether_addr itself checks for is_zero_ether_addr

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomwifiex: add cfg80211 handler for set_bitrate_mask
Yogesh Ashok Powar [Tue, 12 Jul 2011 03:04:44 +0000 (20:04 -0700)]
mwifiex: add cfg80211 handler for set_bitrate_mask

Currently, setting only legacy bitrates on 2.4GHz band
are supported. Mode 802.11b/g/bg is enabled based on
bitrates selection. If only CCK bitrates selected then
802.11b mode is enabled. If only OFDM bitrates are
selected then 802.11g mode is enabled. For both: CCK
and OFDM rates 802.11bg mixed mode is enabled.

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>
13 years agoath5k: do not call ieee80211_stop_queue for queues not managed by mac80211
Felix Fietkau [Tue, 12 Jul 2011 01:02:05 +0000 (09:02 +0800)]
ath5k: do not call ieee80211_stop_queue for queues not managed by mac80211

Instead of using ieee80211_stop_queue, check the configured tx queue
limit before calling ieee80211_get_buffered_bc.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>