Commit graph android_kernel_sony_sdm845/drivers/net/wireless/ipw2200.c
Message SHA1
ipw2200: expire and use oldest BSS on adhoc create
If there are no networks on the free list, expire the oldest one when
creating a new adhoc network.  Because ipw2200 and the ieee80211 stack
don't actually cull old networks and place them back on the free list
unless they are needed for new probe responses, over time the free list
would become empty and creating an adhoc network would fail due to the !
list_empty(...) check.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Dan Williams   authored and   John W. Linville   commited 2008-06-04 15:57:10 -04:00
a6d4eae801
wireless: Create 'device' symlink in sysfs
Some network interfaces of the wireless drivers lack the 'device'
symlink in sysfs.
This patch lets the drivers create the links.

Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Masakazu Mokuno   authored and   John W. Linville   commited 2008-05-16 17:15:10 -04:00
229ce3abb6
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:

	drivers/net/ehea/ehea_main.c
	drivers/net/wireless/iwlwifi/Kconfig
	drivers/net/wireless/rt2x00/rt61pci.c
	net/ipv4/inet_timewait_sock.c
	net/ipv6/raw.c
	net/mac80211/ieee80211_sta.c

David S. Miller   commited 2008-04-14 02:30:23 -07:00
df39e8ba56
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
David S. Miller   commited 2008-04-09 15:10:14 -07:00
b41f5bfff7
[NET]: Undo code bloat in hot paths due to print_mac().
If print_mac() is used inside of a pr_debug() the compiler
can't see that the call is redundant so still performs it
even of pr_debug() ends up being a nop.

So don't use print_mac() in such cases in hot code paths,
use MAC_FMT et al. instead.

As noted by Joe Perches, pr_debug() could be modified to
handle this better, but that is a change to an interface
used by the entire kernel and thus needs to be validated
carefully.  This here is thus the less risky fix for
2.6.25

Signed-off-by: David S. Miller <davem@davemloft.net>

David S. Miller   commited 2008-04-08 16:50:44 -07:00
21f644f3ea
ipw2200: set MAC address on radiotap interface
Commit bada339ba2 enforces that all
interfaces have a valid MAC address before they are brought up.

ipw2200 does not assign a MAC address to it's radiotap interface, meaning
that the radiotap interface cannot be brought up in 2.6.24.
https://bugs.gentoo.org/show_bug.cgi?id=215714

Fix this by copying the MAC address from the real interface.

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Daniel Drake   authored and   John W. Linville   commited 2008-04-07 22:19:29 -04:00
3f2eeac979
ipw2200 annotations and fixes
a) a bunch of printks in error-handling assums that ->status is
big-endian.
b) bitfields trouble
c) missing annotations

NB: a bunch of structs is declared packed for no good reason, AFAICS.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Al Viro   authored and   John W. Linville   commited 2008-03-25 16:41:58 -04:00
83f7d57c37
ipw2200: le*_add_cpu conversion
replace all:
little_endian_variable = cpu_to_leX(leX_to_cpu(little_endian_variable) +
					expression_in_cpu_byteorder);
with:
	leX_add_cpu(&little_endian_variable, expression_in_cpu_byteorder);
generated with semantic patch

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Marcin Slusarz   authored and   John W. Linville   commited 2008-02-29 15:37:15 -05:00
5c05863d03
ipw2200: fix ucode assertion for RX queue overrun
Restock the RX queue when there are a lot of unused frames so that the
RX ring buffer doesn't overrun, causing a ucode assertion.  Backport of
patch "iwlwifi: fix ucode assertion for RX queue overrun".

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Dan Williams   authored and   John W. Linville   commited 2008-02-15 13:44:19 -05:00
943dbef4b8
ipw2200: do not byteswap struct ipw_associate
keep it little-endian, update places that use its members

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Al Viro   authored and   David S. Miller   commited 2008-01-28 15:09:10 -08:00
5b5e807fb8
ipw2200 trivial annotations
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Al Viro   authored and   David S. Miller   commited 2008-01-28 15:09:09 -08:00
e62e1ee029
ipw2200: ipw_tx_skb() endianness bug
We'd just set tfd->u.data.chunk_len[i] to cpu_to_le16(remaining_bytes);
passing it to pci_map_single() is a bad idea - it expects host-endian.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Al Viro   authored and   David S. Miller   commited 2008-01-28 15:08:57 -08:00
4958730e2b
ipw2200 fix: ->rt_chbitmask is le16
A couple of places forgot cpu_to_le16() in assignments to
that field, even though right next to those in other branches
of if-else we do it correctly.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Al Viro   authored and   David S. Miller   commited 2008-01-28 15:08:56 -08:00
472caf8c8a
ipw2200 fix: struct ieee80211_radiotap_header is little-endian
some places in driver forget conversions

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Al Viro   authored and   David S. Miller   commited 2008-01-28 15:08:56 -08:00
743b84d2fc
eliminate byteswapping in struct ieee80211_qos_parameters
Make it match the on-the-wire endianness, eliminate byteswapping.
The only driver that used this sucker (ipw2200) updated.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Al Viro   authored and   David S. Miller   commited 2008-01-28 15:08:45 -08:00
8fffc15dc7
introduce WEXT scan capabilities
Introduce scan capabilities to WEXT so that userspace can do intelligent
things with scan behavior such as handling hidden SSIDs more gracefully.
If the driver reports a specific scan capability, the driver must
respect the options specified in the iw_scan_req structure when handling
the SIOCSIWSCAN call, unless it's mode or state does not allow it to do
so, in which case it must return an error.

This version switches to Dave Kilroy's suggestion of claiming unused
padding space for the scan_capa field.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Dan Williams   authored and   David S. Miller   commited 2008-01-28 14:58:25 -08:00
374fdfbc67
ipw2200: fix typo in kerneldoc
Fix a typo in kerneldoc for ipw2200.

Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Stefano Brivio   authored and   John W. Linville   commited 2008-01-16 12:53:32 -05:00
8ff9d21ee2
Merge branch 'fixes-jgarzik' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream-fixes
Jeff Garzik   commited 2007-12-22 23:25:16 -05:00
61c93f4eb4
ipw2200: prevent alloc of unspecified size on stack
if log_len is larger than 4K then we are killing the stack.
allocate on heap instead and limit size to what practically can
be used (PAGE_SIZE)

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

Reinette Chatre   authored and   John W. Linville   commited 2007-12-19 21:31:01 -05:00
412e9e7800
wireless/ipw2200.c: add __dev{init,exit} annotations
This patch adds __dev{init,exit} annotations.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Adrian Bunk   authored and   John W. Linville   commited 2007-12-17 17:01:39 -05:00
2ef19e63e6
[PATCH] ipw2100/ipw2200: jiffies_round -> jiffies_round_relative
When rounding a relative timeout we need to use round_jiffies_relative().

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Anton Blanchard   authored and   John W. Linville   commited 2007-10-25 22:05:35 -04:00
be84e3d673
Spelling fix: explicitly
From: Jean Delvare <khali@linux-fr.org>

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Adrian Bunk <bunk@kernel.org>

Jean Delvare   authored and   Adrian Bunk   commited 2007-10-19 23:22:55 +02:00
c03983ac9b
[PATCH] ipw2200: batch non-user-requested scan result notifications
ipw2200 makes extensive use of background scanning when unassociated or
down.  Unfortunately, the firmware sends scan completed events many
times per second, which the driver pushes directly up to userspace.
This needlessly wakes up processes listening for wireless events many
times per second.  Batch together scan completed events for
non-user-requested scans and send them up to userspace every 4 seconds.
Scan completed events resulting from an SIOCSIWSCAN call are pushed up
without delay.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Dan Williams   authored and   David S. Miller   commited 2007-10-10 16:55:06 -07:00
0b53167697
[NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()
This is nicer than the MAC_FMT stuff.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Joe Perches   authored and   David S. Miller   commited 2007-10-10 16:51:42 -07:00
0795af5729
[NET]: Nuke SET_MODULE_OWNER macro.
It's been a useless no-op for long enough in 2.6 so I figured it's time to
remove it.  The number of people that could object because they're
maintaining unified 2.4 and 2.6 drivers is probably rather small.

[ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

Ralf Baechle   authored and   David S. Miller   commited 2007-10-10 16:51:13 -07:00
10d024c1b2
[PATCH] Update version ipw2200 stamp to 1.2.2
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2007-07-17 21:56:18 -04:00
ee2c4add43
[PATCH] ipw2200: Fix ipw_isr() comments error on shared IRQ
Signed-off-by: Tom De Man <Tom.DeMan@DZINE.BE>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2007-07-17 21:56:17 -04:00
d00d012134
[PATCH] Fix ipw2200 set wrong power parameter causing firmware error
The power mode can only be set 0~5 to firmware. Otherwise there will be a
firmware error generated. This patch fixed the invalid power mode requested
by driver.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2007-07-17 21:56:17 -04:00
4e157f08a0
[PATCH] ipw2200: rf kill switch polling power saving
Make the ipw2200 driver polling of rf kill switch occur on second boundaries to reduce
power. Making all the wakeup's in the system occur together reduces power, and keeps
CPU in idle longer.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Stephen Hemminger   authored and   John W. Linville   commited 2007-07-10 13:59:48 -04:00
1c9d5e41e3
[PATCH] ipw2200: fix ieee80211_get_geo typo
testing much?

Cc: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Andrew Morton   authored and   Jeff Garzik   commited 2007-04-28 11:00:55 -04:00
742e9910d6
[PATCH] ipw2200: add channels sysfs entry
Add 'channels' sysfs entry for ipw2200. The entry exports channels
information for the user space.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   Jeff Garzik   commited 2007-04-28 11:00:54 -04:00
375dd24428
[SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}
To clearly state the intent of copying from linear sk_buffs, _offset being a
overly long variant but interesting for the sake of saving some bytes.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

Arnaldo Carvalho de Melo   authored and   David S. Miller   commited 2007-04-25 22:28:23 -07:00
d626f62b11
[SK_BUFF]: Introduce skb_reset_mac_header(skb)
For the common, open coded 'skb->mac.raw = skb->data' operation, so that we can
later turn skb->mac.raw into a offset, reducing the size of struct sk_buff in
64bit land while possibly keeping it as a pointer on 32bit.

This one touches just the most simple case, next will handle the slightly more
"complex" cases.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Arnaldo Carvalho de Melo   authored and   David S. Miller   commited 2007-04-25 22:24:32 -07:00
459a98ed88
[PATCH] ipw2200: add iwconfig rts/frag auto support
This patch add ipw2200 support for iwconfig rts/frag auto.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   Jeff Garzik   commited 2007-02-05 16:58:43 -05:00
ea8862dc86
Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream
Conflicts:

	drivers/net/wireless/zd1211rw/zd_mac.h
	net/ieee80211/softmac/ieee80211softmac_assoc.c

Jeff Garzik   commited 2006-12-07 05:02:40 -05:00
359f2d17e3
[PATCH] ipw2200: Fix debug output endian issue
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2006-12-05 19:31:33 -05:00
720eeb4332
[PATCH] ipw2200: Update version stamp to 1.2.0
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2006-12-05 19:31:33 -05:00
aac40ceb8f
[PATCH] ipw2200: Add IEEE80211_RADIOTAP_TSFT for promiscuous mode
The ipw2200 BSS firmware passes on the TSF information within ipw_rx_frame,
but monitor firmware doesn't. I add back the IEEE80211_RADIOTAP_TSFT flags
so that we can get the MAC timestamp if we use the rtap interface. We will
see the MAC timestamp equals to zero if we capture the packets with a
monitor mode interface. But this is the expected behaviour.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2006-12-05 19:31:33 -05:00
4b1f8a99a2
[PATCH] ipw2200: replace kmalloc+memset with kcalloc
Replace kmalloc+memset with kcalloc

Signed-off-by: Yan Burman <burman.yan@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Yan Burman   authored and   John W. Linville   commited 2006-12-05 19:31:32 -05:00
e6e3f12ad7
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:

	drivers/infiniband/core/iwcm.c
	drivers/net/chelsio/cxgb2.c
	drivers/net/wireless/bcm43xx/bcm43xx_main.c
	drivers/net/wireless/prism54/islpci_eth.c
	drivers/usb/core/hub.h
	drivers/usb/input/hid-core.c
	net/core/netpoll.c

Fix up merge failures with Linus's head and fix new compilation failures.

Signed-Off-By: David Howells <dhowells@redhat.com>

David Howells   commited 2006-12-05 14:37:56 +00:00
4c1ac1b491
[PATCH] wireless: clean-up some "check return code" warnings
Clean-up some warnings from missing return code checks, mostly from
calling pci_enable_device during a PCI resume.

Signed-off-by: John W. Linville <linville@tuxdriver.com>

John W. Linville   authored and   Jeff Garzik   commited 2006-12-02 00:12:03 -05:00
02e0e5e935
Fix misc .c/.h comment typos
Fix various .c/.h typos in comments (no code changes).

Signed-off-by: Matt LaPlante <kernel1@cyberdogtech.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>

Matt LaPlante   authored and   Adrian Bunk   commited 2006-11-30 05:24:39 +01:00
0779bf2d2e
WorkStruct: make allyesconfig
Fix up for make allyesconfig.

Signed-Off-By: David Howells <dhowells@redhat.com>

David Howells   commited 2006-11-22 14:57:56 +00:00
c4028958b6
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.

The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around.  On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).

Where appropriate, an arch may override the generic storage facility and do
something different with the variable.  On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.

Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions.  Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller.  A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.

I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.

This will affect all archs.  Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

	struct pt_regs *old_regs = set_irq_regs(regs);

And put the old one back at the end:

	set_irq_regs(old_regs);

Don't pass regs through to generic_handle_irq() or __do_IRQ().

In timer_interrupt(), this sort of change will be necessary:

	-	update_process_times(user_mode(regs));
	-	profile_tick(CPU_PROFILING, regs);
	+	update_process_times(user_mode(get_irq_regs()));
	+	profile_tick(CPU_PROFILING);

I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().

Some notes on the interrupt handling in the drivers:

 (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
     the input_dev struct.

 (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
     something different depending on whether it's been supplied with a regs
     pointer or not.

 (*) Various IRQ handler function pointers have been moved to type
     irq_handler_t.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

David Howells   commited 2006-10-05 15:10:12 +01:00
7d12e780e0
[PATCH] WE-21 for ipw2200
Signed-off-by: Jean Tourrilhes <jt@hpl.hp.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Jean Tourrilhes   authored and   John W. Linville   commited 2006-09-25 16:52:16 -04:00
919ee6ddcd
drivers/net: const-ify ethtool_ops declarations
Signed-off-by: Jeff Garzik <jeff@garzik.org>

Jeff Garzik   commited 2006-09-13 14:30:00 -04:00
7282d491ec
Merge branch 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream
Jeff Garzik   commited 2006-09-06 11:02:22 -04:00
a2413598b8
[PATCH] ipw2200: Fix compile error when CONFIG_IPW2200_DEBUG is not selected
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2006-08-29 17:06:34 -04:00
efa7e0691f
[PATCH] ipw2200: Update version stamp to 1.1.4
Update version ipw2200 stamp to 1.1.4

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2006-08-29 17:06:34 -04:00
8b5f9171f6
[PATCH] ipw2200: enable wireless extension passive scan
This patch enables the ipw2200 driver to support passive scanning as
offered by the wireless extensions. For this, I enhanced the ipw_wx_set_scan
function in such a way that it differentiates between a passive and an
active scan request. Additionally, I added a new function called
ipw_request_passive_scan that is similiar to the ipw_request_scan
function to perform passive scans. Last but not least, I added a field
(in fact it is a work_struct struct) called request_passive_scan to
the ipw_priv struct.

Signed-off-by: Thomas King <king@informatik.uni-mannheim.de>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Zhu Yi   authored and   John W. Linville   commited 2006-08-29 17:06:34 -04:00
094c4d2df6