Commit Graph

170 Commits

Author SHA1 Message Date
Zhu Yi 00d21de5c6 [PATCH] ipw2200: Exponential averaging for signal and noise Level
This patch replaces sliding averaging by exponential averaging for
reporting the wireless statistics for signal and noise level for ipw2200.
See details from: http://www.ces.clemson.edu/linux/ipw2200_averages.shtml

Signed-off-by: Bill Moss <bmoss@clemson.edu>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24 16:15:54 -04:00
Eric Sesterhenn 5d9428de1a BUG_ON() Conversion in drivers/net/
this changes if() BUG(); constructs to BUG_ON() which is
cleaner, contains unlikely() and can better optimized away.

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-04-02 13:52:48 +02:00
Zhu Yi 171e7b2f1f [PATCH] ipw2x00: expend Copyright to 2006
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 16:14:47 -05:00
Adrian Bunk 71e585fca2 [PATCH] drivers/net/wireless/ipw2200.c: fix an array overun
This patch fixes a big array overun found by the Coverity checker.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:41:20 -05:00
Zhu Yi 7c56789448 [PATCH] ipw2200: Update ipw2200 version stamp to 1.1.1
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:04 -05:00
James Ketrenos 9006ea75cf [PATCH] ipw2200: switch to the new ipw2200-fw-3.0 image format
This patch modifies the driver to support the ipw2200-fw-3.0 image format.

The 3.0 fw image does not add any new capabilities, but as a result of
image format changes, it should fix two problems experienced by users:

1) Race conditions with the request_firmware interface and udev/hotplug
are improved as only a single request_firmware call is now required to
load the firmware and microcode (vs. 3 separate calls previously)

2) The monitor mode firmware (sniffer) is now packaged with the correct
boot image so it can now function without frequent restarts.

Note: Once you apply this patch, you will also need to upgrade your
firmware image to the 3.0 version available from:

        http://ipw2200.sf.net/firmware.php

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:04 -05:00
Olivier Hochreutiner 651be26f2d [PATCH] ipw2200: wireless extension sensitivity threshold support
The patch allows the user to set the handover threshold, i.e. the number
of consecutively missed beacons that will trigger a roaming attempt. The
disassociation threshold is set to 3 times the handover threshold.

Signed-off-by: Olivier Hochreutiner <olivier.hochreutiner@epfl.ch>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:04 -05:00
Cahill, Ben M 71de1f3dd1 [PATCH] ipw2200: Enables the "slow diversity" algorithm
This forces one antenna or the other, if the background noise is
significantly quieter in one than the other. It favors the quieter
antenna, and won't kick in unless the difference is significant.

Signed-off-by: Cahill, Ben M <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:04 -05:00
Cahill, Ben M 12977154e7 [PATCH] ipw2200: Set a meaningful silence threshold value
Set a meaningful silence threshold value (replacing our previous "0"
default), which gets rid of the gratuitous "Link deterioration"
notifications that we've been receiving from firmware.  This
notification feature tells the driver information to help it determine
when to pre-emptively restart the firmware/ucode in anticipation of
firmware errors!  But since setting this new threshold, I haven't seen
any such notifications.  At least it keeps the logs a little less busy.

Signed-off-by: Cahill, Ben M <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:04 -05:00
Zhu Yi 3e1555bae1 [PATCH] ipw2200: export `debug' module param only if CONFIG_IPW2200_DEBUG
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:03 -05:00
Zhu Yi 1d1b09eb14 [PATCH] ipw2200: Change debug level for firmware error logging
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:03 -05:00
Zhu Yi e815de422c [PATCH] ipw2200: Filter unsupported channels out in ad-hoc mode
Currently iwlist ethX freq[uency]/channel lists all the channels the card
supported for the current region, which includes some channels can only
be used in infrastructure mode. This patch filters these channels out if
the card is currently in ad-hoc mode.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:03 -05:00
Zhu Yi e8c69e27d1 [PATCH] ipw2200: Fix ipw_sw_reset() implementation inconsistent with comment
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:03 -05:00
Zhu Yi d6d5b5c13e [PATCH] ipw2200: Fix rf_kill is activated after mode change with 'disable=1'
When loading the ipw2200 module with disabled=1, rf_kill is activated after
every mode change. This is caused by ipw_sw_reset() is called when a mode
is changed. The patch fixed the problem by distinguishing the purposes with
the 'option' paramenter.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:03 -05:00
Zhu Yi 8da374fc44 [PATCH] ipw2200: remove the WPA card associates to non-WPA AP checking
wpa_supplicant needs to set wpa_enabled unconditionally, with this check
it hasn't been possible to connect to non-WPA networks using wpa_supplicant.
So remove below check.

if (priv->ieee->wpa_enabled &&
	network->wpa_ie_len == 0 && network->rsn_ie_len == 0)

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:03 -05:00
Bill Moss b191608a45 [PATCH] ipw2200: Add signal level to iwlist scan output
This patch does two things. It uses the parameter IW_QUAL_DBM which is new
in WE-19 to cause signal level and noise to be reported in dBm by the
wireless tools. It also defines the signal level as an unsigned integer
so that the signal level will be reported by iwlist iface scan.

Signed-off-by: Bill Moss <bmoss@clemson.edu>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:02 -05:00
Zhu Yi 9d0be03aee [PATCH] ipw2200: use generic ieee80211_get_hdrlen() to get packet length
replace ipw2200 specific frame_hdr_len() with generic
ieee80211 routine ieee80211_get_hdrlen()

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:02 -05:00
Zhu Yi 85149bace3 [PATCH] ipw2200: fix a potential NULL pointer dereference
Only on CONFIG_IPW2200_DEBUG is not defined

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:02 -05:00
James Ketrenos f697014af9 [PATCH] ipw2200: stop netdev queue if h/w doesn't have space for new packets
The patch roll back the change we made to support for the ability to
start/stop independent Tx queues within a single net device in order to
support 802.11e QoS. We need to be able to indicate to the upper layers
that packets of a given priority can not be sent any more without halting
transmission of all packets, and without rescheduling high priority packets
down to the next priority level.

So we return NETDEV_TX_BUSY in this case and rely on the stack would
take care of rescheduling... which it apparently does immediately and
consumes the CPU. This caused the ksoftirqd kernel thread consuming almost
all the CPU...

To put the code back to the way it was before we made these changes we
put the call netif_queue_stop back in ipw_tx_skb.  This effectively
disables multiple priority based transmit queues for 802.11e, but given
that its broken anyway...

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:02 -05:00
Henrik Brix Andersen 48a847709f [PATCH] ipw2200: print geography code upon module load
Given the amount of support requests for the meaning of the geography code
I've written a patch for printing this information on module load no matter
the debug level.

I've also added a section to the README.ipw2200 file listing the geography
codes and their meaning.

Signed-off-by: Henrik Brix Andersen <brix@gentoo.org>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 15:08:02 -05:00
Adrian Bunk 53d0bcf82a [PATCH] drivers/net/wireless/ipw2200.c: make ipw_qos_current_mode() static
This patch makes the needlessly global function ipw_qos_current_mode()
static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 14:16:44 -05:00
Larry Finger 1867b117d9 [PATCH] Remove duplicated code from ipw2200.c
As stated in a comment, the ipw2200 driver uses several routines that
were borrowed from ieee80211_geo.c. As ipw2200 requires ieee80211,
these routines are duplicated. The attached patch, which is sent
as an attachment to preserve whitespace, converts ipw2200.c to use
the ieee80211 versions, thereby reducing bloat in both the source
and binary.

Signed-Off-By: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-17 14:01:34 -05:00
John W. Linville 9f5a405b68 Merge branch 'from-linus' 2006-02-27 20:12:23 -05:00
Zhu Yi 1dd31b6c89 [PATCH] ipw2200: Suppress warning message
The following message will be only printed if DEBUG_NOTIF is on.  "Unknown
notification: subtype=40,flags=0xa0,size=40"

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Cc: James Ketrenos <jketreno@linux.intel.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-20 20:00:11 -08:00
Zhu Yi 1ba61e05e2 [PATCH] ipw2200: Fix software crypto shared WEP authentication problem
We didn't set the WEP key to hardware when we are using software based
crypto. Hardware needs the key to do WEP authentication even for
software based encryption.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-02-17 08:17:00 -05:00
Stefan Rompf 23afaec444 [PATCH] ipw2200: Fix WPA network selection problem
Do not avoid APs with wpa_ie or rsn_ie if !ieee->wpa_enabled
There are broken APs out there that fill these elements even
though encryption is disnabled. Also, this breaks legit WEP to
WPA migration scenarious.

We add a checking to prohibite WPA configured STA trying to
associate with non-WPA supported APs.

Signed-off-by: Stefan Rompf <stefan@loplof.de>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-02-17 08:16:59 -05:00
Jeff Garzik 3c9b3a8575 Merge branch 'master' 2006-02-07 01:47:12 -05:00
Alexey Dobriyan 386093ef9a [PATCH] ipw2200: fix ->eeprom[EEPROM_VERSION] check
priv->eeprom is a pointer.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Yi Zhu <yi.zhu@intel.com>
Cc: James Ketrenos <jketreno@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-01 08:53:11 -08:00
Dan Williams f1b50863aa [PATCH] wireless/ipw2200: support WE-18 WPA enc_capa
This patch allows ipw2100 driver to advertise the WPA-related encryption
options that it does really support.  It's necessary to work correctly
with NetworkManager and other programs that actually check driver & card
capabilities.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:35 -05:00
Zhu Yi bde37d0377 [PATCH] ipw2200: Disable hwcrypto by default
After looking at the mailing list (and experiencing permanent driver lockups
while using hwcrypto=1) I think that disabling this option by default would
be better than otherwise.

Signed-off-by: Andreas Happe <andreashappe@snikt.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:35 -05:00
Zhu Yi 4644151b72 [PATCH] ipw2200: Semaphore to mutexes conversion
The conversion was generated via scripts, and the result was validated
automatically via a script as well.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Ronald Bultje <rbultje@ronald.bitfreak.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: Yi Zhu <yi.zhu@intel.com>
Cc: James Ketrenos <jketreno@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:35 -05:00
Zhu Yi 2638bc3941 [PATCH] ipw2200: remove white space and better format the code
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:34 -05:00
Zhu Yi 7c97eb3f1d [PATCH] ipw2200: increase ipw2200 driver version
increase ipw2200 driver version to git-1.0.10

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:34 -05:00
Zhu Yi 4e22699fa2 [PATCH] ipw2200: Fix qos_cmd param switch bug
The patch fixes a couple of errors regarding QoS, which results in
compile warnings and malfunction of the driver.

Signed-off-by: Henrik Brix Andersen <brix@gentoo.org>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:34 -05:00
Zhu Yi 0a7bcf261e [PATCH] ipw2200: stack reduction
Checking the stack usage of my kernel, showed that ipw2200 had a few bad
offenders. This is on i386 32-bit:

0x00002876 ipw_send_associate:                          544
0x000028ee ipw_send_associate:                          544
0x000027dc ipw_send_scan_request_ext:                   520
0x00002864 ipw_set_sensitivity:                         520
0x00005eac ipw_set_rsn_capa:                            520

The reason is the host_cmd structure is large (500 bytes). All other
functions currently using ipw_send_cmd() suffer from the same problem.
This patch introduces ipw_send_cmd_simple() for commands with no data
transfer, and ipw_send_cmd_pdu() for commands with a data payload and
makes the payload a pointer to the buffer passed in from the caller.

As an added bonus, the diffstat looks like this:

 ipw2200.c |  260 +++++++++++++++++++++-----------------------------------------
 ipw2200.h |    2
 2 files changed, 92 insertions(+), 170 deletions(-)

and it shrinks the module a lot as well:

Before:

   text    data     bss     dec     hex filename
  75177    2472      44   77693   12f7d drivers/net/wireless/ipw2200.ko

After:

   text    data     bss     dec     hex filename
  61363    2488      44   63895    f997 drivers/net/wireless/ipw2200.ko

So about a ~18% reduction in module size.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:34 -05:00
Zhu Yi 397ae121ee [PATCH] ipw2200: Scale firmware loading watchdog with the firmware size
I can't really help with why restarts happen, but the following patch
greatly increases the likelihood that a firmware reload will succeed
afterward on my thinkpad. It addresses two issues. First, sysfs module
loading and hotplug are asynchronous, and as such file operations on the
"loading" and "data" files are racy when you load 2 firmwares in quick
succession. Second, the timeout for DMAing the firmware needs to scale
with the size of the firmware being loaded. That is, the watchdog needs
to be on throughput, not on time alone.

I no longer get the firmware load errors, though this is at best a hacky
workaround for a racy interface. (Obviously, this does nothing to address
the fatal errors in firmware which cause reloads; it just causes the
initial loading and the reloads to work more often.)

Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Ben M Cahill <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:34 -05:00
Zhu Yi 4bfdb91dcf [PATCH] ipw2200: add module parameter to enable/disable roaming
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:33 -05:00
Zhu Yi ede6111cae [PATCH] ipw2200: Make LED blinking frequency independent of HZ
Signed-off-by: Clemens Buchacher <drizzd@aon.at>.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:33 -05:00
Zhu Yi c7b6a6744c [PATCH] ipw2200: use jiffies_to_msec() wherever possible
This substitutes Linux jiffies_to_msec() wherever there is a
computation for determining milliseconds from jiffies,
following lead from ieee80211 code. And it does a little cleanup.
"it's" == "it is" ... "its" == possessive "it". Indulge me. ;-)

Signed-off-by: Cahill, Ben M <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:33 -05:00
Zhu Yi 810dabd466 [PATCH] ipw2200: Bluetooth coexistence support
I've added a new module param "bt_coexist" which defaults to OFF.

This does not seem to fix the firmware restarts, but it does do "the
right thing" and disables something that we were enabling by default:
signaling the Bluetooth h/w which channel we're on (whether or not the
BT h/w was out there).

Signed-off-by: Ben M Cahill <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:33 -05:00
Zhu Yi 3e234b4e57 [PATCH] ipw2200: Add LEAP authentication algorithm support
Signed-off-by: Hong Liu <hong.liu@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:33 -05:00
Zhu Yi f516dbcd7d [PATCH] ipw2200: Mask out the WEP_KEY command dump from debug log for security reason
Signed-off-by: Nick Kralevich <nick.ipw2200@kralevich.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:32 -05:00
Zhu Yi c8fe667908 [PATCH] ipw2200: Fix indirect SRAM/register 8/16-bit write routines
The indirect SRAM/register 8/16-bit write routines are broken for
non-dword-aligned destination addresses.

Fortunately, these routines are, so far, not used for non-dword-aligned
destinations, but here's a patch that fixes them, anyway.

The attached patch also adds comments for all direct/indirect I/O routine
variations.

Signed-off-by: Ben M Cahill <ben.m.cahill@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:32 -05:00
Adrian Bunk a73e22b286 [PATCH] drivers/net/wireless/ipw2200: possible cleanups
This patch contains the following possible cleanups:
- make needlessly global functions static
- "extern inline" -> "static inline"
- #if 0 the unused global function ipw_led_activity_on()

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 20:35:31 -05:00
Zhu Yi 489f4458cd [PATCH] ipw2200: Fix a variable referenced after kfree() bug
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 17:41:35 -05:00
Zhu Yi 17ed081dee [PATCH] ipw2200: Fix sw_reset doesn't clear the static essid problem
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 17:41:35 -05:00
Zhu Yi f73cb83f1a [PATCH] ipw2200: Fix "iwspy ethx off" causes kernel panic
Signed-off-by: Hong Liu <hong.liu@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-30 17:41:35 -05:00
Olaf Kirch d834a41c96 [PATCH] ipw2200: do not sleep in ipw_request_direct_scan
Drivers should not sleep for very long inside an ioctl -
so return EAGAIN and let wpa_supplicant handle the problem.

Signed-off-by: Olaf Kirch <okir@suse.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-01-16 16:51:53 -05:00
Arjan van de Ven 858119e159 [PATCH] Unlinline a bunch of other functions
Remove the "inline" keyword from a bunch of big functions in the kernel with
the goal of shrinking it by 30kb to 40kb

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-14 18:27:06 -08:00
Linus Torvalds d779188d2b Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-01-04 16:31:56 -08:00
Stephen Hemminger 3c19065a1e [IEEE80211] ipw2200: Simplify multicast checks.
From: Stephen Hemminger <shemminger@osdl.org>

is_multicast_ether_addr() accepts broadcast too, so the
is_broadcast_ether_addr() calls are redundant.

Signed-off-by: David S. Miller <davem@davemloft.net>
2006-01-03 15:27:38 -08:00
Brice Goglin 0f52bf9058 [PATCH] Duplicate IPW_DEBUG option for ipw2100 and 2200
There are currently two IPW_DEBUG options in drivers/net/wireless/Kconfig
(one for ipw2100 and one for ipw2200).  The attached patch splits it into
IPW2100_DEBUG and IPW2200_DEBUG.

Signed-off-by: Brice Goglin <Brice.Goglin@ens-lyon.org>
Cc: "James P. Ketrenos" <ipw2100-admin@linux.intel.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-01 04:51:34 -05:00
Takis c75f4742e2 [PATCH] ipw2200: kzalloc conversion and Kconfig dependency fix
- Use kzalloc for IPW2200
- Fix config dependency for IPW2200

Signed-off-by: Panagiotis Issaris <takis@issaris.org>
Cc: James Ketrenos <jketreno@linux.intel.com>
Cc: Yi Zhu <yi.zhu@intel.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-01 04:51:34 -05:00
Zhu Yi 3b26b1100e [PATCH] ipw2200: fix error log offset calculation
This fixes a slab corruption issue in the ipw2200 driver: it essentially
multiplied the error log number _twice_ by the size of the error element
entry (once explicitly in the code, and once implicitly as part of the
regular pointer arithmetic).

Cc: Henrik Brix Andersen <brix@gentoo.org>
Cc: Bernard Blackham <bernard@blackham.com.au>
Cc: Zilvinas Valinskas <zilvinas@gemtek.lt>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
--
2005-11-17 08:32:58 -08:00
Pekka Enberg efb3442cf1 [PATCH] ipw2200: disallow direct scanning when device is down
The function ipw_request_direct_scan() should bail out when the device
is down.  This fixes a lockup caused by wpa_supplicant triggering
ipw_request_direct_scan() while the driver was in a middle of a reset
due to firmware errors.

Thanks to Zilvinas Valinskas for reporting the bug and helping me
debug it.

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Acked-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-17 08:32:58 -08:00
Linus Torvalds a7c243b544 Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2005-11-09 08:34:36 -08:00
Olaf Hering 733482e445 [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reason
This patch removes almost all inclusions of linux/version.h.  The 3
#defines are unused in most of the touched files.

A few drivers use the simple KERNEL_VERSION(a,b,c) macro, which is
unfortunatly in linux/version.h.

There are also lots of #ifdef for long obsolete kernels, this was not
touched.  In a few places, the linux/version.h include was move to where
the LINUX_VERSION_CODE was used.

quilt vi `find * -type f -name "*.[ch]"|xargs grep -El '(UTS_RELEASE|LINUX_VERSION_CODE|KERNEL_VERSION|linux/version.h)'|grep -Ev '(/(boot|coda|drm)/|~$)'`

search pattern:
/UTS_RELEASE\|LINUX_VERSION_CODE\|KERNEL_VERSION\|linux\/\(utsname\|version\).h

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-09 07:55:57 -08:00
James Ketrenos cf1b479b69 Update version ipw2200 stamp to 1.0.8 2005-11-07 17:52:15 -06:00
James Ketrenos 81715376de Updated firmware version stamp to 2.4 from 2.3 so it will use the latest firmware.
You can obtain the firmware at http://ipw2200.sf.net/firmware.php

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:52:13 -06:00
James Ketrenos 286568ab1e Fixed parameter reordering in firmware log routine.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:52:10 -06:00
Hong Liu 9d5b880bb8 Fixed problem with not being able to send broadcast packets.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:52:07 -06:00
James Ketrenos 035205760e Added channel support for ipw2200 cards identified as 'ZZR'
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:52:05 -06:00
James Ketrenos 991d1cc596 Removed warning about TKIP not being configured if countermeasures are
configured.

Countermeasures default to being turned off when wpa_supplicant runs,
regardless of if TKIP is being used.  They are only turned on if a TKIP
is running.  The warning we were printing is therefore not needed.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:52:02 -06:00
Ben Cahill e758256104 Fixes missed beacon logic in relation to on-network AP roaming.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:52:00 -06:00
James Ketrenos 8935f39e86 Removed legacy WIRELESS_EXT checks from ipw2200.c
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:57 -06:00
Benoit Boissinot 97a78ca968 Fix 'Driver using old /proc/net/wireless support, please fix driver !' message.
Wireless extensions moved the get_wireless_stats handler from being
in net_device into wireless_handler.

Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:54 -06:00
James Ketrenos 9ef539d0d6 Updated driver version stamps for ipw2100 (1.1.3) and ipw2200 (1.0.7)
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:49 -06:00
Hong Liu e63247269d Fixes WEP firmware error condition.
The problem is caused by the patch in bug455 -- Channel change flood
generates fatal error.

The patch set the DISASSOCIATING status bit after sending the command.
The process was scheduled out when waiting for the command to be sent to
the card. The disassociated notification clears the DISASSOCIATING bit
in the tasklet before the process set the bit.

Move the bit setting code before sending the command now.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:47 -06:00
Zhu Yi f4ff497d45 [Fix bug# 771] Too many (8) bytes recieved when using AES/hwcrypto
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:44 -06:00
Hong Liu 29cb843e64 Fixes problem with WEP not working (association succeeds, but no Tx/Rx)
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:41 -06:00
James Ketrenos fb7ccc9e6d Fixed problem with get_cmd_string not existing if CONFIG_IPW_DEBUG disabled.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:36 -06:00
Hong Liu cdd1fa1e10 Card with WEP enabled and using shared-key auth will have firmware
error when it tries to auth to a WPA ap. The patch filters out WPA
networks if the card is not wpa enabled when selecting network to
associate to.

Signed-off-by: Hong Liu <hong.liu@intel.com>
2005-11-07 17:51:34 -06:00
Hong Liu 567deaf6d4 Mixed PTK/GTK CCMP/TKIP support.
Signed-off-by: Hong Liu <hong.liu@intel.com>
2005-11-07 17:51:29 -06:00
Peter Jones 90700fd982 Fixed is_network_packet() to include checking for broadcast packets.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:25 -06:00
Mike Kershaw 24a47dbd89 Adds radiotap support to ipw2200 in monitor mode..
Signed-off-by: Mike Kershaw <dragorn@kismetwireless.net>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:22 -06:00
Peter Jones a4f6bbb305 Make all the places the firmware fails to load showerrors (in decimal,
so you can cross-reference errno.h easily).

Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:19 -06:00
Zhu Yi 5513579181 [Bug 760] Fix setting WEP key in monitor mode causes IV lost.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:51:14 -06:00
Hong Liu 7b99659f97 [Bug 455] Fix frequent channel change generates firmware fatal error.
Because of the frequent channel change, it is possible that when we are
try to associate with channel 1 (authenticated but not associated).
Another channel change comes at this time, then the driver will issue
disassociate command to the firmware which will cause the fatal error.

It seems that the association/disassociation procedure should not be
interrupted.

The patch attached adds test on STATUS_ASSOCIATING | STATUS_DISASSOCIATING
in ipw_send_cmd(), when ensures that commands will not be sent to firmware
when we are in these two status.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:51:11 -06:00
James Ketrenos a0e04ab360 Added wait_state wakeup on scan completion.
Fixed copyright date in ipw2200.h

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:09 -06:00
James Ketrenos 3b9990cb17 Updated ipw2200 to use the new ieee80211 callbacks
(handle_probe_response, handle_beacon, handle_association_response).

Fixed a problem with ipw_send_cmd() returning non-zero on success.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:06 -06:00
Liu Hong 1fe0adb431 Migrated some of the channel verification code back into the driver to
keep regulatory consistency in one location.

Signed-off-by: James Ketrenos
2005-11-07 17:51:03 -06:00
James Ketrenos f6c5cb7c6f Added cmdlog in non-debug systems.
You can now specify via the module parameter 'cmdlog' to allocate a
ring buffer for caching host commands sent to the firmware. They can
then be dumped at any time via the sysfs entry 'cmd_log'

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:51:00 -06:00
James Ketrenos 9ddf84f6f2 Changed all of the ipw_send_cmd() calls to return any ipw_send_cmd error
codes to the caller and changed ipw_send_cmd itself to print the error
message to the syslog indicating which command failed to be sent.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:58 -06:00
James Ketrenos b39860c60b Switched firmware error dumping so that it will capture a log available
via sysfs even if debugging disabled.  When a firmware error is
captured, it will be dumped to the kernel log (if debug enabled) and
captured in memory to be retrieved via sysfs.

If an error has already been captured, subsequent errors will be
dropped.

The existing error can be cleared by writing to the error log entry.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:55 -06:00
James Ketrenos e666619e23 Modified ipw_config and STATUS_INIT setting to correct race condition
with request_scan being called before initialized if invoked from
insmod, resulting in no association occurring during boot until iwlist
scan is run.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:52 -06:00
Zhu Yi 6de9f7f27d Fix firmware error when setting tx_power.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:50:50 -06:00
Zhu Yi 22501c8ed7 Fix ipw_wx_get_txpow shows wrong disabled value.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:50:47 -06:00
Zhu Yi 0ece35b557 [Bug 701] Fix a misuse of ieee->mode with ieee->iw_mode.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:50:45 -06:00
Hong Liu caeff81b4e Fixes the ad-hoc network WEP key list issue.
If we configure the wep keys after creating the ibss network, the
beacons of this network will not show correctly (it still shows "key
off" in iwlist scan report). This is because we don't update the
beacon info in firmware.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:50:42 -06:00
Zhu Yi 1fbfea549f [Bug 792] Fix WPA-PSK AES both for -Dipw and -Dwext.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:50:39 -06:00
Zhu Yi e402c93741 Disable host fragmentation in open mode since IPW2200/2915 hardware
support hardware fragmentation.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:50:37 -06:00
Zhu Yi 87b016cb64 Workaround kernel BUG_ON panic caused by unexpected duplicate packets.
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
2005-11-07 17:50:34 -06:00
James Ketrenos 4f36f8088a Added more useful geography encoding so people's experience with
iwconfig matches what their hardware can actually do in regard to
supported channel maps, etc.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:32 -06:00
James Ketrenos 2b184d5b54 Fixed some compiler issues if CONFIG_IPW2200_QOS is enabled.
Updated a copyright date.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:29 -06:00
James Ketrenos 227d2dc1f1 Updated to support ieee80211 callback to is_queue_full for 802.11e
support.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:27 -06:00
Liu Hong 8400a1ceb4 [Bug 637] Set tx power for A band.
It uses the ieee80211-geo info to set the tx power of the a/b/g band.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:21 -06:00
Zhu Yi d8bad6df04 [bug 667] Fix the notorious "No space for Tx" bug.
We send SYSTEM_CONFIG command after the TGI_KEY command if hardware
encryption is enabled. It sometimes causes a firmware stall (firmware
doesn't respond to any request) and finally bungs up the Tx send queue.
The solution is to send SYSTEM_CONFIG command in the post association
stage from a workqueue.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:19 -06:00
Zhu Yi f57ce7ce9c Fix is_duplicate_packet() bug for fragmentation number setting.
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:16 -06:00
Zhu Yi a2d73e60bb Fix hardware encryption (both WEP and AES) doesn't work with fragmentation.
Firmware sends received packets with double sized ICV/MIC.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:14 -06:00
James Ketrenos afbf30a2b7 Catch ipw2200 up to equivelancy with v1.0.5
* Fixed #452 problem with setting retry limit (thanks to Hong Liu)
* Fixed #592 race condition during association causing firmware errors
* Fixed #602 problem with building in 64-bit environment
* Fixed #625 problem with SCAN_REQUEST_EXT sometimes failing
* Fixed #645 problem with bit rate not decreasing when moving laptop
  farther from AP
* Fixed #656 problem with 'iwconfig eth1 mode auto' and 'modprobe'
  locking the system
* Fixed #667 problem with "No space for Tx" for hwcrypto=1
* Fixed #685 kernel panic in rmmod caused by led work is still queued
* Fixed #695 problem with network doesn't reassociate after suspend/resume
* Fixed #701 problem with 'iwprvi sw_reset' not resetting the card from
  monitor mode
* Fixed #710 problem with monitor mode being used after a WEP key has
  been configured
* Fixed network->mode vs. priv->ieee->iw_mode checking (thanks to Ben Cahill)
* Fixed "Unknown management packet %d" warning
* Fixed setting channels multiple times in monitor mode causes scan stopped
* Fixed ipw_wx_sw_reset doesn't switch firmware if mode is changed.
* Add duplicate packet checking code (kill ping DUP! and TKIP replay warning)
* Fix hardware encryption (both WEP and AES) doesn't work with fragmentation.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
2005-11-07 17:50:11 -06:00