GitHub/LineageOS/G12/android_kernel_amlogic_linux-4.9.git
15 years agolibertas: remove unused 11d code
Holger Schurig [Thu, 22 Oct 2009 13:30:45 +0000 (15:30 +0200)]
libertas: remove unused 11d code

Most of the 11d code was protected with an "if (priv->enable11d)" clause.
But there was no code that anywhere that was able to set this
variable to true. So all 11d code was dead for almost a year and no one
complained. That's enought incentive to remove this code.

Besides removing old cruft, we gain back the 11d capability in a common way
when we merge the cfg80211 functionality.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agozd1211rw: Fix TX status reporting in order to have proper rate control
Benoit PAPILLAULT [Thu, 22 Oct 2009 10:04:52 +0000 (12:04 +0200)]
zd1211rw: Fix TX status reporting in order to have proper rate control

First, we reduce the number of hardware retries to 0 (ie 2 real retries
for each rate). Next, when we report the retries to mac80211, we always
report a retry count of 1 (it seems to be 2 in fact, but using 2 seems
to lead to wrong performance for some reason). We use a state machine to
determine the real fate of a packet based on the 802.11 ACK and what the
Zydas hardware is saying when a real retry occurs. The real retry rates
are encoded in a static array. It has been tested with both zd1211 and
zd1211b hardware. Of course, since the Zydas hardware is not reporting
retries accurately, we are just doing our best in order to get the best
performance (ie higher throughput).

Signed-off-by: Benoit PAPILLAULT <benoit.papillault@free.fr>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: use ieee80211_rx_ni()
Luciano Coelho [Wed, 21 Oct 2009 11:03:46 +0000 (14:03 +0300)]
wl1271: use ieee80211_rx_ni()

Use the new ieee80211_rx_ni() function instead of ieee80211_rx().  Since we
use a workqueue to handle the RX path, we need to call the new function,
which disables bottom half handling.  This patch fixes the NOHZ:
local_softirq_pending messages.

CC: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomesh: use set_bit() to set MESH_WORK_HOUSEKEEPING.
Rui Paulo [Tue, 20 Oct 2009 20:21:48 +0000 (21:21 +0100)]
mesh: use set_bit() to set MESH_WORK_HOUSEKEEPING.

This makes the mesh housekeeping timer work properly on big endian
systems.

Signed-off-by: Rui Paulo <rpaulo@gmail.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoar9170: don't filter BlockACK frames
Christian Lamparter [Sat, 17 Oct 2009 19:56:55 +0000 (21:56 +0200)]
ar9170: don't filter BlockACK frames

The current A-MPDU tx_status report mechanism is too inaccurate.
With this patch BlockACK frames show now up to the driver and
can be processed.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoar9170usb: atomic pending urbs counter
Christian Lamparter [Sat, 17 Oct 2009 19:56:51 +0000 (21:56 +0200)]
ar9170usb: atomic pending urbs counter

This patch follows "ar9170: atomic pending A-MPDU counter"
idea and converts another critical counter to atomic_*.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoar9170: atomic pending A-MPDU counter
Christian Lamparter [Sat, 17 Oct 2009 19:56:43 +0000 (21:56 +0200)]
ar9170: atomic pending A-MPDU counter

A ref-counting bug emerged after testing ar9170usb's HT
implementation on a bigger SMP/SMT system without the usual
_debugging_ overhead.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: rework for static power save
Wey-Yi Guy [Fri, 16 Oct 2009 21:25:58 +0000 (14:25 -0700)]
iwlwifi: rework for static power save

For static power save, the actual intervals are calculated by driver based on
the default table and DTIM flag, then sent to uCode when the scheme
is changed.

Three tables are defined based on DTIM period.
1. DTIM 0 - 2
2. DTIM 3 - 10
3. DTIM > 11

The actual number of DTIM a station may miss may not exceed the
following:
. Only 1 DTIM may be skipped at PI=4 when allowed
. Only 2 DTIMs may be skipped at PI=5 when allowed
. DTIM may be skipped only 5 sec after last activity
. DTIM may be skipped only 30 sec after connection establishment

Only allow user to override the power_level when rf is ready to make sure
power level gets changed upon request.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: no chain noise support for 6x50 series
Wey-Yi Guy [Fri, 16 Oct 2009 21:25:57 +0000 (14:25 -0700)]
iwlwifi: no chain noise support for 6x50 series

For initial bring up of 6x50 series NICs, no chain noise support in
uCode, this feature will be added in the later stage of development.

Two chain noise related functions are removed from 6x50 series:
1. gain computation
2. chain noise reset

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: set auto clock gate disable bit for 6x00/6x50 series
Wey-Yi Guy [Fri, 16 Oct 2009 21:25:56 +0000 (14:25 -0700)]
iwlwifi: set auto clock gate disable bit for 6x00/6x50 series

For 6x00 and 6x50 series NIC with OTP shadow RAM, set auto clock gate
disable bit when initializing OTP access.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlagn: store station rate scale information in mac80211 station structure
Reinette Chatre [Fri, 16 Oct 2009 21:25:55 +0000 (14:25 -0700)]
iwlagn: store station rate scale information in mac80211 station structure

Currently mac80211 initializes the rate scaling before notifying the driver
of the station's existence. The driver dealt with this by not relying on
mac80211's station notifications and instead mixing this functionality with
the rate scaling code and other places. To clean this up the driver needs
to do rate scaling initialization after being notified of the station, this
can be done if the rate scaling information forms part of the station
information passed from mac80211 to driver.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: move rate scaling structures to header file
Reinette Chatre [Fri, 16 Oct 2009 21:25:54 +0000 (14:25 -0700)]
iwlwifi: move rate scaling structures to header file

Move to header file so they can be included and used in other parts of the
driver.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: move iwl_setup_mac to iwlagn
Reinette Chatre [Fri, 16 Oct 2009 21:25:53 +0000 (14:25 -0700)]
iwlwifi: move iwl_setup_mac to iwlagn

This function is only used in iwlagn so there is no need to have it in
iwlcore.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: fix incorrect otp blocks number for 6x50 series
Wey-Yi Guy [Fri, 16 Oct 2009 21:25:52 +0000 (14:25 -0700)]
iwlwifi: fix incorrect otp blocks number for 6x50 series

For 6x50 series, number of OTP blocks is different from 6x00 series

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: identify eeprom version for 6x50 series NIC
Wey-Yi Guy [Fri, 16 Oct 2009 21:25:51 +0000 (14:25 -0700)]
iwlwifi: identify eeprom version for 6x50 series NIC

Adding support for 6x50 series EEPROM version check, 6x50 is wifi/wimax
combo device which has different EEPROM map

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: show current power save status reported by uCode
Wey-Yi Guy [Fri, 16 Oct 2009 21:25:50 +0000 (14:25 -0700)]
iwlwifi: show current power save status reported by uCode

Power save request is sent from driver to uCode, but there is no
indication from uCode about the current device power save state.

Reading GP_CNTRL register bit 25:24 to show the current power save
status

00: no power save
01: MAC power down
10: PHY power down
11: Error

The uCode could switch in and out of power save mode in the order of
once per 100-300 ms in many cases. The reading here should just be used for
reference on the current uCode power save status. Do not confuse this
reading with the PowerSave set by driver and mac80211.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwl3945: disable all tx fifos
Abhijeet Kolekar [Fri, 16 Oct 2009 21:25:49 +0000 (14:25 -0700)]
iwl3945: disable all tx fifos

Disable the all the tx fifos while stopping the tx queues.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1251: re-disable PG10 chips
John W. Linville [Tue, 27 Oct 2009 19:15:05 +0000 (15:15 -0400)]
wl1251: re-disable PG10 chips

"wl1251: add support for PG11 chips." accidentally enabled PG10 chips as
well...

Reported-by: Kalle Valo <kalle.valo@iki.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agob43: use ieee80211_rx_ni()
John W. Linville [Fri, 16 Oct 2009 18:35:51 +0000 (14:35 -0400)]
b43: use ieee80211_rx_ni()

Convert to new use ieee80211_rx_ni() routine rather than open-coded
version.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agolibertas: remove unused lbs_cmd_802_11_inactivity_timeout()
Holger Schurig [Fri, 16 Oct 2009 15:34:22 +0000 (17:34 +0200)]
libertas: remove unused lbs_cmd_802_11_inactivity_timeout()

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agolibertas: make lbs_get_channel() static
Holger Schurig [Fri, 16 Oct 2009 15:33:56 +0000 (17:33 +0200)]
libertas: make lbs_get_channel() static

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agolibertas: harmonize cmd.h
Holger Schurig [Fri, 16 Oct 2009 15:33:23 +0000 (17:33 +0200)]
libertas: harmonize cmd.h

* move declarations for functions of cmd.c/cmdresp.c into cmd.h
* move declarations from cmd.h that are in main.c to decl.h
* group command functions

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agolibertas: cleanup host.h and hostcmd.h
Holger Schurig [Fri, 16 Oct 2009 15:32:16 +0000 (17:32 +0200)]
libertas: cleanup host.h and hostcmd.h

Also remove some unused definitions and make tab usage consistent.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: handle coexistence radio notification
Zhu Yi [Fri, 16 Oct 2009 05:19:00 +0000 (13:19 +0800)]
iwmc3200wifi: handle coexistence radio notification

Handle WiFi/WiMax coexistence radio preemption notification event.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Set wiphy firmware version
Samuel Ortiz [Fri, 16 Oct 2009 05:18:59 +0000 (13:18 +0800)]
iwmc3200wifi: Set wiphy firmware version

Our wiphy firmware version is a combination of the UMAC and LMAC ones.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Support unexpected reboot barker
Samuel Ortiz [Fri, 16 Oct 2009 05:18:58 +0000 (13:18 +0800)]
iwmc3200wifi: Support unexpected reboot barker

We can receive unexpected reboot barker at any time, and we're supposed to
reset the whole device then.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Try shared auth when open WEP fails
Samuel Ortiz [Fri, 16 Oct 2009 05:18:57 +0000 (13:18 +0800)]
iwmc3200wifi: Try shared auth when open WEP fails

When we fail to associate with an open WEP AP, we fall back to shared auth.
This allows us to support joining a shared auth WEP AP with iwconfig.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Do not handle wifi command if the interface is not ready
Samuel Ortiz [Fri, 16 Oct 2009 05:18:56 +0000 (13:18 +0800)]
iwmc3200wifi: Do not handle wifi command if the interface is not ready

When resetting or bringing the interface down, we should just reject any wifi
related command.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Check for cmd pointer before dereferencing it
Samuel Ortiz [Fri, 16 Oct 2009 05:18:55 +0000 (13:18 +0800)]
iwmc3200wifi: Check for cmd pointer before dereferencing it

The wifi_if_wrapper notification handling code uses a cmd pointer without
checking if it's valid or not. We're dereferencing it because we assume that
we only get to that point if there was a pending command for us. That's not
always true, so we'd better check.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: SDIO disable race fix
Samuel Ortiz [Fri, 16 Oct 2009 05:18:54 +0000 (13:18 +0800)]
iwmc3200wifi: SDIO disable race fix

When calling sdio->bus_disable(), we are flushing the command lists before
disabling the sdio function. We can thus potentially get a command response
after having flushed the command list.
To avoid that race, we have to call iwm_reset() after disabling the sdio
function.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Tx power setting
Samuel Ortiz [Fri, 16 Oct 2009 05:18:53 +0000 (13:18 +0800)]
iwmc3200wifi: Tx power setting

We can now set the Tx power from e.g. iwconfig.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Update fixed size config definitions
Samuel Ortiz [Fri, 16 Oct 2009 05:18:52 +0000 (13:18 +0800)]
iwmc3200wifi: Update fixed size config definitions

We need to be in sync with the latest firmware API.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Update statistics notification structure
Samuel Ortiz [Fri, 16 Oct 2009 05:18:51 +0000 (13:18 +0800)]
iwmc3200wifi: Update statistics notification structure

The latest firmware adds a ht_rates and a chain_energy field. The latter is
needed as we want to eventually support RSSI/antenna handling.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Improve rx debug
Samuel Ortiz [Fri, 16 Oct 2009 05:18:50 +0000 (13:18 +0800)]
iwmc3200wifi: Improve rx debug

We display the correct DROP/RELEASE string for each rx packets, and when
it's dropped we also display the reason.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: Profile flags can be WPA1 or WPA2 not both
Samuel Ortiz [Fri, 16 Oct 2009 05:18:49 +0000 (13:18 +0800)]
iwmc3200wifi: Profile flags can be WPA1 or WPA2 not both

UMAC will ASSERT if the profile security flag is WPA1 | WPA2, so we can only
accept one of those.
Moreover wpa_s wext and nl80211 drivers dont try to send WPA1 | WPA2, but only
one at a time.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: CT kill support
Samuel Ortiz [Fri, 16 Oct 2009 05:18:48 +0000 (13:18 +0800)]
iwmc3200wifi: CT kill support

We set the initial CT (Temperature control) value to 110 degrees.
If the chip goes over that threshold, we hard block the device which will turn
it down. At the same time we schedule a 30 seconds delayed work that unblock
the device (and userspace is supposed to bring it back up), hoping that the
chip will have cooled down by then...

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: WPS support
Samuel Ortiz [Fri, 16 Oct 2009 05:18:47 +0000 (13:18 +0800)]
iwmc3200wifi: WPS support

By setting the WSC profile flag, we now support WPS as an enrollee.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: allow joining an existed IBSS network
Zhu Yi [Fri, 16 Oct 2009 05:18:46 +0000 (13:18 +0800)]
iwmc3200wifi: allow joining an existed IBSS network

We used to only support creating a new IBSS network. Now joining to
an existed IBSS network is supported as well.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwmc3200wifi: add BGN sdio device id
Zhu Yi [Fri, 16 Oct 2009 05:18:45 +0000 (13:18 +0800)]
iwmc3200wifi: add BGN sdio device id

Add BGN SKU sdio device id.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: Learn about mesh portals from multicast traffic
Javier Cardona [Fri, 16 Oct 2009 01:10:51 +0000 (18:10 -0700)]
mac80211: Learn about mesh portals from multicast traffic

Mesh portals proxy traffic for nodes external to the mesh.  When a
proxied frame is received by a mesh interface, it should update its mesh
portal table.  This was only happening for unicast frames.  With this
change we also learn about mesh portals from proxied multicast frames.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agort2x00: Implement support for rt2800pci
Ivo van Doorn [Thu, 15 Oct 2009 20:04:14 +0000 (22:04 +0200)]
rt2x00: Implement support for rt2800pci

Add support for the rt2860/rt3090 chipsets from Ralink.

Includes various patches from a lot of people who helped
getting this driver into the current shape.

Signed-off-by: Alban Browaeys <prahal@yahoo.com>
Signed-off-by: Benoit PAPILLAULT <benoit.papillault@free.fr>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Luis Correia <luis.f.correia@gmail.com>
Signed-off-by: Mattias Nissler <mattias.nissler@gmx.de>
Signed-off-by: Mark Asselstine <asselsm@gmail.com>
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agort2x00: Add rt2x00soc bus module
Ivo van Doorn [Thu, 15 Oct 2009 19:38:19 +0000 (21:38 +0200)]
rt2x00: Add rt2x00soc bus module

Add new library module for SoC drivers.
This is needed to fully support the platform
driver part of rt2800pci.

Based on original patch from Felix.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1251: use ieee80211_rx_ni()
Kalle Valo [Tue, 13 Oct 2009 17:33:21 +0000 (20:33 +0300)]
wl1251: use ieee80211_rx_ni()

Because of SPI and SDIO wl1251 does everything in a workqueue, including
calling ieee80211_rx() which should be called with bottom halves disabled.
An error message is emitted because of this:

NOHZ: local_softirq_pending 08

Fix this by using ieee80211_rx_ni().

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: add ieee80211_rx_ni()
Kalle Valo [Tue, 13 Oct 2009 17:33:13 +0000 (20:33 +0300)]
mac80211: add ieee80211_rx_ni()

ieee80211_rx() must be called with bottom halves disabled. To simplify
driver development implement ieee80211_rx_ni() which disables BH. This
function must be used when in process context.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agob43: Optimize PIO scratchbuffer usage
Michael Buesch [Fri, 9 Oct 2009 18:33:32 +0000 (20:33 +0200)]
b43: Optimize PIO scratchbuffer usage

This optimizes the PIO scratchbuffer usage.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1251: add support for PG11 chips.
David-John Willis [Thu, 15 Oct 2009 13:38:16 +0000 (14:38 +0100)]
wl1251: add support for PG11 chips.

This simple patch adds support for the PG11 variant of the WL1251 chip as
used on the OpenPandora OMAP3 device.

Signed-off-by: David-John Willis <John.Willis@Distant-earth.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: added missing packed modifier in some cmd structs
Luciano Coelho [Thu, 15 Oct 2009 07:33:30 +0000 (10:33 +0300)]
wl1271: added missing packed modifier in some cmd structs

Some of the struct definitions in the wl1271_acx.h file were missing the
__attribute__ ((packed)) modifier.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: fix endianess issues
Luciano Coelho [Thu, 15 Oct 2009 07:33:29 +0000 (10:33 +0300)]
wl1271: fix endianess issues

We were not handling endianess correctly.  The wl1271 chip runs on
little-endian values.  This patch makes sure that all the communication with
the wl1271 firmware is done in little-endian by using cpu_to_le* and
le*_to_cpu where appropriate.

Also, all the struct definitions for data exchanged with the firmware has
been changed to use __le16/32 types instead of u16/32.

This fixes a few sparse warnings, such as these:

drivers/net/wireless/wl12xx/wl1271_cmd.c:554:42: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_cmd.c:555:42: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_cmd.c:577:58: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_cmd.c:579:58: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_cmd.c:676:18: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_cmd.c:787:22: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_cmd.c:789:21: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_tx.c:98:47: warning: incorrect type in argument 1 (different base types)
drivers/net/wireless/wl12xx/wl1271_acx.c:932:32: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_boot.c:191:32: warning: incorrect type in argument 1 (different base types)
drivers/net/wireless/wl12xx/wl1271_boot.c:197:38: warning: incorrect type in argument 1 (different base types)
drivers/net/wireless/wl12xx/wl1271_boot.c:199:37: warning: incorrect type in argument 1 (different base types)
drivers/net/wireless/wl12xx/wl1271_init.c:255:40: warning: incorrect type in assignment (different base types)
drivers/net/wireless/wl12xx/wl1271_init.c:275:53: warning: incorrect type in assignment (different base types)

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: added missing packed modifier in some acx structs
Luciano Coelho [Thu, 15 Oct 2009 07:33:28 +0000 (10:33 +0300)]
wl1271: added missing packed modifier in some acx structs

Some of the struct definitions in the wl1271_acx.h file were missing the
__attribute__ ((packed)) modifier.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: fix sparse warnings about undeclared functions
Luciano Coelho [Thu, 15 Oct 2009 07:33:27 +0000 (10:33 +0300)]
wl1271: fix sparse warnings about undeclared functions

The following sparse warnings were fixed:

drivers/net/wireless/wl12xx/wl1271_spi.c:199:6: warning: symbol 'wl1271_spi_read_busy' was not declared. Should it be static?
drivers/net/wireless/wl12xx/wl1271_cmd.c:84:5: warning: symbol 'wl1271_cmd_cal_channel_tune' was not declared. Should it be static?
drivers/net/wireless/wl12xx/wl1271_cmd.c:107:5: warning: symbol 'wl1271_cmd_cal_update_ref_point' was not declared. Should it be static?
drivers/net/wireless/wl12xx/wl1271_cmd.c:132:5: warning: symbol 'wl1271_cmd_cal_p2g' was not declared. Should it be static?
drivers/net/wireless/wl12xx/wl1271_cmd.c:153:5: warning: symbol 'wl1271_cmd_cal' was not declared. Should it be static?

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Set IEEE80211_FCTL_TODS in the null data template
Juuso Oikarinen [Thu, 15 Oct 2009 07:33:26 +0000 (10:33 +0300)]
wl1271: Set IEEE80211_FCTL_TODS in the null data template

Set the IEEE80211_FCTL_TODS bit in the FC of the null data template.
This is a mandatory requirement in specification.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Cc: Vidhya Govindan <vidhya.govindan@nokia.com>
Cc: Janne Ylälehto <janne.ylalehto@nokia.com>
Reviewed-by: Janne Ylalehto <janne.ylalehto@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agomac80211: replace netif_tx_{start,stop,wake}_all_queues
John W. Linville [Thu, 15 Oct 2009 19:10:16 +0000 (15:10 -0400)]
mac80211: replace netif_tx_{start,stop,wake}_all_queues

Replace netif_tx_{start,stop,wake}_all_queues with the single-queue
equivalents (i.e. netif_{start,stop,wake}_queue).  Since we are down to
a single queue, these should peform slightly better.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath5k: use noise calibration from madwifi hal
Bob Copeland [Wed, 14 Oct 2009 18:16:30 +0000 (14:16 -0400)]
ath5k: use noise calibration from madwifi hal

This updates ath5k to calibrate the noise floor similar to the
way it is done in the madwifi hal and ath9k.  Of note:

- we start NF measurement at the same time as AGC calibration,
  but do not actually read the value until the periodic (long)
  calibration
- we keep a history of the last few values read and write the
  median back to the hardware for CCA
- we do not complain if NF calibration isn't complete, instead
  we keep the last read value.

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Acked-by: Nick Kossifidis <mickflemm@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoath9k: adjust ahb callbacks to new struct layout to avoid compile errors
Marek Lindner [Wed, 14 Oct 2009 15:04:45 +0000 (23:04 +0800)]
ath9k: adjust ahb callbacks to new struct layout to avoid compile errors

Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agolibertas: make __lbs_cmd_async() non-static
Holger Schurig [Wed, 14 Oct 2009 14:49:53 +0000 (16:49 +0200)]
libertas: make __lbs_cmd_async() non-static

This function will be needed for the cfg80211-enabled libertas driver.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1251: rename spi device to wl1251
Kalle Valo [Tue, 13 Oct 2009 17:41:20 +0000 (20:41 +0300)]
wl1251: rename spi device to wl1251

During rename of the driver from wl12xx to wl1251 the spi device name
was accidentally left as wl12xx. Rename it to wl1251 which is the proper
name of the driver.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agocfg80211: remove warning in deauth case
Holger Schurig [Tue, 13 Oct 2009 11:45:28 +0000 (13:45 +0200)]
cfg80211: remove warning in deauth case

It might be the case that __cfg80211_disconnected() has already
cleaned up wdev->current_bss() for us. The old code didn't catch
that situation and didn't warn needlessly.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agocfg80211: no cookies in cfg80211_send_XXX()
Holger Schurig [Tue, 13 Oct 2009 11:28:13 +0000 (13:28 +0200)]
cfg80211: no cookies in cfg80211_send_XXX()

Get rid of cookies in cfg80211_send_XXX() functions.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Fix filter configuration
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:59 +0000 (12:47 +0300)]
wl1271: Fix filter configuration

Fix the filter configuration to properly work with the two phase filter
configuration (prepare_multicast/configure_filter.)

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: make sure PS is disabled in PLT
Luciano Coelho [Tue, 13 Oct 2009 09:47:58 +0000 (12:47 +0300)]
wl1271: make sure PS is disabled in PLT

We cannot be in PS mode when running PLT tests, so we need to make sure we're
in active mode.  Also, we need to clear up the rx_counter when we stop PLT,
otherwise it could cause problems when entering PLT again.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Correct memory handling for FW boot
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:57 +0000 (12:47 +0300)]
wl1271: Correct memory handling for FW boot

Several memory allocation related failure cases were not properly
handled by the driver - the result was that in low memory conditions
booting of a corrupted FW could be attempted - and user space would not
get proper failure code.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Remove unnecessary rx_descriptor memory allocation
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:56 +0000 (12:47 +0300)]
wl1271: Remove unnecessary rx_descriptor memory allocation

Remove unnecessary RX descriptor memory allocation from the driver. The
allocation was a remnant of the wl1251 driver.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Support for IPv4 ARP filtering
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:55 +0000 (12:47 +0300)]
wl1271: Support for IPv4 ARP filtering

Add support for IPv4 ARP filtering in the driver. This will dramatically
reduce the number of unnecessary interrupts by the device in conqested
networks.

This patch is based on a similar patch to wl1251 by Janne Ylälehto.

Cc: Janne Ylälehto <janne.ylalehto@nokia.com>
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Fix event handling mechanism
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:54 +0000 (12:47 +0300)]
wl1271: Fix event handling mechanism

The event handling mechanism could miss events if multiple events would
occur simultaneously. Fix event handling mechanism to process all
events.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Fix multicast list handling
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:53 +0000 (12:47 +0300)]
wl1271: Fix multicast list handling

Fixes bugs in the multicast list handling:
 - Use atomic memory allocation in non-sleepable context
 - Increment address pointer when iterating list of MC addresses

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Checking of rx descriptor status fixed
Teemu Paasikivi [Tue, 13 Oct 2009 09:47:52 +0000 (12:47 +0300)]
wl1271: Checking of rx descriptor status fixed

Fixed checking of status of the received packet. On wl1251 status is in the
flags field of the descriptor, on wl1271 there is a separate status field.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Added 5 GHz support to join and rx
Teemu Paasikivi [Tue, 13 Oct 2009 09:47:51 +0000 (12:47 +0300)]
wl1271: Added 5 GHz support to join and rx

Added support to assiociate and use connection on 5 GHz band (802.11a).

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Added support to scan on 5 GHz band
Teemu Paasikivi [Tue, 13 Oct 2009 09:47:50 +0000 (12:47 +0300)]
wl1271: Added support to scan on 5 GHz band

Added support to scan 802.11a access points on 5 GHz band when using
wl1273 chip.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Scan only enabled channels
Teemu Paasikivi [Tue, 13 Oct 2009 09:47:49 +0000 (12:47 +0300)]
wl1271: Scan only enabled channels

Added checking of whether channel is enabled or disabled by mac80211
stack to scan. Disabled channels are not scanned.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Added 5 GHz parameters for wl1273
Teemu Paasikivi [Tue, 13 Oct 2009 09:47:48 +0000 (12:47 +0300)]
wl1271: Added 5 GHz parameters for wl1273

Added data rate and frequency tables for 5 GHz band channels, 5
GHz radio configration parameters and configuration option to enable
802.11 support.

Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Remove busy-word checking
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:47 +0000 (12:47 +0300)]
wl1271: Remove busy-word checking

Remove busy-word checking to work around an SPI bug. To reduce the
chance of chipset-busy scenarios, increment the number of fixed busy
words.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Implement beacon early termination support
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:46 +0000 (12:47 +0300)]
wl1271: Implement beacon early termination support

Add support to enable beacon early termination in the firmware. Early
Beacon termination is a feature which allows the radio to be turned off
after TIM IE to save power.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Fix IRQ enable handling on FW init failure
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:45 +0000 (12:47 +0300)]
wl1271: Fix IRQ enable handling on FW init failure

Disable IRQ's after FW initialization failure - originally this was not
done in all cases, and it resulted in a kernel warning if firmware
initialization was tried again without reboot.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Move default FW config struct away from stack
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:44 +0000 (12:47 +0300)]
wl1271: Move default FW config struct away from stack

Move the default FW config into a module global static variable, instead
of being a stack variable.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Add config structure for FW init parameters
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:43 +0000 (12:47 +0300)]
wl1271: Add config structure for FW init parameters

Add a configuration structure for RX path parameters, and set default
configuration values there.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Add config structure for connection management parameters
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:42 +0000 (12:47 +0300)]
wl1271: Add config structure for connection management parameters

Add a configuration structure for connection management parameters, and
set default configuration values there.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Add config structure for TX path parameters
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:41 +0000 (12:47 +0300)]
wl1271: Add config structure for TX path parameters

Add a configuration structure for TX path parameters, and set defalt
configuration values there.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Add config structure for RX path parameters
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:40 +0000 (12:47 +0300)]
wl1271: Add config structure for RX path parameters

Add a configuration structure for RX path parameters, and set default
configuration values there.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Add structure for firmware configuration values
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:39 +0000 (12:47 +0300)]
wl1271: Add structure for firmware configuration values

In order to make the firmware configuration more manageable, collect
hardcoded configuration values into one data structure, and set default values
there.

Add the SoftGemini BT/WLAN coex paramters into the config structure.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Workaround for reference clock setting on boot.
Juuso Oikarinen [Tue, 13 Oct 2009 09:47:38 +0000 (12:47 +0300)]
wl1271: Workaround for reference clock setting on boot.

If the 38.4MHz reference clock is configured to the firmware, it crashes
on boot. Configuring an experimental 38.4MHz in XTAL mode allows the
firmware to boot, and everything appears to work.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: use paged Rx
Zhu Yi [Fri, 9 Oct 2009 09:19:45 +0000 (17:19 +0800)]
iwlwifi: use paged Rx

This switches the iwlwifi driver to use paged skb from linear skb for Rx
buffer. So that it relieves some Rx buffer allocation pressure for the
memory subsystem. Currently iwlwifi (4K for 3945) requests 8K bytes for
Rx buffer. Due to the trailing skb_shared_info in the skb->data,
alloc_skb() will do the next order allocation, which is 16K bytes. This
is suboptimal and more likely to fail when the system is under memory
usage pressure. Switching to paged Rx skb lets us allocate the RXB
directly by alloc_pages(), so that only order 1 allocation is required.

It also adjusts the area spin_lock (with IRQ disabled) protected in the
tasklet because tasklet guarentees to run only on one CPU and the new
unprotected code can be preempted by the IRQ handler. This saves us from
spawning another workqueue to make skb_linearize/__pskb_pull_tail happy
(which cannot be called in hard irq context).

Finally, mac80211 doesn't support paged Rx yet. So we linearize the skb
for all the management frames and software decryption or defragmentation
required data frames before handed to mac80211. For all the other frames,
we __pskb_pull_tail 64 bytes in the linear area of the skb for mac80211
to handle them properly.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: remove unnecessary joins and join only when the bssid changes
Luciano Coelho [Mon, 12 Oct 2009 12:08:57 +0000 (15:08 +0300)]
wl1271: remove unnecessary joins and join only when the bssid changes

We were using the join command to change some settings when the stack asked
us to do it.  In many cases they were not needed (and could cause potential
problems), so they were removed.  In other cases there are ACX commands that
can be used instead of using join to reconfigure.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: use acx_rx_config instead of join when updating filters
Luciano Coelho [Mon, 12 Oct 2009 12:08:56 +0000 (15:08 +0300)]
wl1271: use acx_rx_config instead of join when updating filters

We shouldn't use a join command to change the filter settings while
associated.  The right way to do it is to use ACX_RX_CFG.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Update boot time configuration for the new firmware
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:55 +0000 (15:08 +0300)]
wl1271: Update boot time configuration for the new firmware

Update the magic values of the wl1271 boot time config according to the new
reference driver.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Remove outdated SPI functions
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:54 +0000 (15:08 +0300)]
wl1271: Remove outdated SPI functions

With the change to the new firmware, there was a change to firmware memory
partitioning. Along with that change, the translation of all partitions was
unified, and separate functions for reg and mem access became unnecessary.

Cleanup the unnecessary functions.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Update TX path block calucation algo
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:53 +0000 (15:08 +0300)]
wl1271: Update TX path block calucation algo

Update the TX path block calculation algorithm based on TI reference.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Enable smart reflex
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:52 +0000 (15:08 +0300)]
wl1271: Enable smart reflex

Enable and configure smart reflex. This should have a reducing impact on
power consumption.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Enable ELP
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:51 +0000 (15:08 +0300)]
wl1271: Enable ELP

The new firmware has fixed a firmware crash problem related to ELP entry.
Enable ELP to conserve power.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Update interrupt handling by removing an extra SPI read
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:50 +0000 (15:08 +0300)]
wl1271: Update interrupt handling by removing an extra SPI read

Remove separate interrupt register reading from the interrupt handling
routine. This will slightly improve interrupt performance.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: RefClk configuration
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:49 +0000 (15:08 +0300)]
wl1271: RefClk configuration

Updated RefClk configuration based on reference sources. Apparently this
change will improve RF performance.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Add top-register access functions
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:48 +0000 (15:08 +0300)]
wl1271: Add top-register access functions

Add top register access function.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Remove RX workaround
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:47 +0000 (15:08 +0300)]
wl1271: Remove RX workaround

Remove RX workaround which is not needed with newer firmware revisions. This
will reduce one SPI register transaction per RX packet.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: Update memory mapping for firmware revision 6.1.0.0.241
Juuso Oikarinen [Mon, 12 Oct 2009 12:08:46 +0000 (15:08 +0300)]
wl1271: Update memory mapping for firmware revision 6.1.0.0.241

Update the memory regions and memory mapping to support firmware revision
6.1.0.0.241.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: enable HW_AVAILABLE interrupt to fix ELP
Luciano Coelho [Mon, 12 Oct 2009 12:08:45 +0000 (15:08 +0300)]
wl1271: enable HW_AVAILABLE interrupt to fix ELP

We need to listen to HW_AVAILABLE interrupts when using ELP with firmware
revision 6.1.0.0.241.  Add WL1271_ACX_INTR_HW_AVAILABLE to the interrupts that
are enabled by default.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: add workaround to avoid distortion due to excessive tx power
Luciano Coelho [Mon, 12 Oct 2009 12:08:44 +0000 (15:08 +0300)]
wl1271: add workaround to avoid distortion due to excessive tx power

We still don't have proper calibration for our devices, so we are using way
too much power for TX, which causes a lot of distortion.  This hack hardcodes
the txpower to 7dBm.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: workaround to send a disconnect before rejoining
Luciano Coelho [Mon, 12 Oct 2009 12:08:43 +0000 (15:08 +0300)]
wl1271: workaround to send a disconnect before rejoining

We don't get any indication from the stack when we have disassociated.  In
wl1271, it is important to send a CMD_DISCONNECT before joining again,
because the firmware cleans some things up.  So we check if we're already
joined and disconnect if that's the case.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agowl1271: implement cmd_disconnect
Luciano Coelho [Mon, 12 Oct 2009 12:08:42 +0000 (15:08 +0300)]
wl1271: implement cmd_disconnect

This patch implements the CMD_DISCONNECT command, which should be sent to the
firmware when we are disassociated.

Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi: update channel switch command API
Wey-Yi Guy [Fri, 9 Oct 2009 20:20:34 +0000 (13:20 -0700)]
iwlwifi: update channel switch command API

Channel switch host command has different data structure for
different devices. Adding additional structures to support 5000 and 6000
NICs. unlike 4965, starting with 5000 series, the tx power is managed by
uCode, there is no tx power db information need to be passing from driver to
uCode; but the space needs to be reserved to match uCode expection.

1000 NIC do not support channel switch operation since it is 'bgn'
device, there is no need to have data structure defined for it.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwl3945: rearrange the code.
Abhijeet Kolekar [Fri, 9 Oct 2009 20:20:33 +0000 (13:20 -0700)]
iwl3945: rearrange the code.

Rearrange the code and groups setting of
retry_limit and data_retry_limits code together.
Make 'data_retry_limit' setting similar to iwlwifi
for better readability.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
15 years agoiwlwifi/iwl3945: remove data_retry_limit
Abhijeet Kolekar [Fri, 9 Oct 2009 20:20:32 +0000 (13:20 -0700)]
iwlwifi/iwl3945: remove data_retry_limit

Remove the ununsed variable data_retry_limit
from priv.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>