Commit Graph

75 Commits

Author SHA1 Message Date
John W. Linville
59d4b684fb Merge branch 'upstream-fixes' into upstream 2006-05-17 14:54:09 -04:00
David Woodhouse
bc519f30eb [PATCH] bcm43xx: associate on 'ifconfig up'
I still need this hack to work around the fact that softmac doesn't
attempt to associate when we bring the device up...

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-05-17 14:53:19 -04:00
Stefano Brivio
f03cc4fd92 [PATCH] bcm43xx: add PCI ID for bcm4319
Add PCI ID for bcm4319.

Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-05-05 17:10:41 -04:00
Stefano Brivio
ec000ca9d4 [PATCH] bcm43xx: fix whitespace
Fix whitespace.

Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-05-05 17:10:41 -04:00
John W. Linville
fd5226a726 Merge branch 'upstream-fixes' into upstream 2006-05-05 16:56:24 -04:00
David Woodhouse
178e0cc5ff [PATCH] bcm43xx: Fix access to non-existent PHY registers
Fix the conditions under which we poke at the APHY registers in
bcm43xx_phy_initg() to avoid a machine check on chips where they don't
exist.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-05-05 16:55:23 -04:00
Michael Buesch
869aaab181 [PATCH] bcm43xx: Fix array overrun in bcm43xx_geo_init
The problem here is that the bcm34xx driver and the ieee80211
stack do not agree on what channels are possible for 802.11a.
The ieee80211 stack only wants channels between 34 and 165, while
the bcm43xx driver accepts anything from 0 to 200. I made the
bcm43xx driver comply with the ieee80211 stack expectations, by
using the proper constants.

Signed-off-by: Jean Delvare <jdelvare@suse.de>

[mb]: Reduce stack usage by kzalloc-ing ieee80211_geo

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-05-05 16:55:23 -04:00
Stefano Brivio
f9f7b9602e [PATCH] bcm43xx: check for valid MAC address in SPROM
Check for valid MAC address in SPROM fields instead of relying on
PHY type while setting the MAC address in the networking subsystem,
as some devices have multiple PHYs.

Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-05-05 16:55:23 -04:00
Michael Buesch
5b4b9775a0 [PATCH] bcm43xx: fix iwmode crash when down
This fixes a crash when

	iwconfig ethX mode foo

is done before

	ifconfig ethX up

or after

	ifconfig ethX down

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-05-05 16:55:23 -04:00
Michael Buesch
cc9357104b [PATCH] bcm43xx: use pci_iomap() for convenience.
This reduces codesize.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24 16:15:53 -04:00
Michael Buesch
7c241d37fe [PATCH] bcm43xx: make PIO mode usable
This patch fixes PIO mode on the softmac bcm43xx
driver. (A dscape patch will follow).
It mainly fixes endianess issues.
This patch is tested on PowerPC32 and i386.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24 15:20:24 -04:00
Erik Mouw
a392149ee1 [PATCH] bcm43xx: iw_priv_args names should be <16 characters
The room for the names in bcm43xx_priv_wx_args[] are IFNAMSIZ long and
IFNAMSIZ is defined as 16, so the names in bcm43xx_priv_wx_args should
be 15 characters (16 including the trailing \0). This patch fixes that
for the "set_shortpreambl", "get_shortpreambl", "set_swencryption", and
"get_swencryption" private calls. Patch is against 2.6.17-rc1.

Signed-off-by: Erik Mouw <erik@harddisk-recovery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19 17:25:41 -04:00
Michael Buesch
b35d649cb2 [PATCH] bcm43xx: sysfs code cleanup
This cleans up the bcm43xx sysfs code and makes it compliant
with the unwritten sysfs rules (at least I hope so).

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19 17:25:41 -04:00
Michael Buesch
8829d55e6b [PATCH] bcm43xx: fix pctl slowclock limit calculation
This fixes coverity bug:
http://marc.theaimsgroup.com/?l=linux-netdev&m=114417628413880&w=2

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19 17:25:40 -04:00
Adrian Bunk
2230daa0fd [PATCH] bcm43xx: fix dyn tssi2dbm memleak
This patch fixes a memory leak spotted by the Coverity checker.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19 17:25:40 -04:00
Randy Dunlap
93fef7dda4 [PATCH] bcm43xx: fix config menu alignment
Use "depends on" to make all bcm43xx driver options be listed
at the same level.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19 17:25:40 -04:00
Randy Dunlap
4c6f749f74 [PATCH] bcm43xx wireless: fix printk format warnings
Fix printk format warnings:
drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:456: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘size_t’
drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:460: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘size_t’
drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:476: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘size_t’
drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:480: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘size_t’
drivers/net/wireless/bcm43xx/bcm43xx_dma.c:200: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘dma_addr_t’
drivers/net/wireless/bcm43xx/bcm43xx_dma.c:311: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘dma_addr_t’
drivers/net/wireless/bcm43xx/bcm43xx_dma.c:733: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘dma_addr_t’

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19 17:25:40 -04:00
Michael Buesch
b79367a5ea [PATCH] bcm43xx: set trans_start on TX to prevent bogus timeouts
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19 17:25:39 -04:00
Michael Buesch
ec483781fe [PATCH] bcm43xx: don't set the channel on a device, which is down.
Initial patch by David Woodhouse and Michael Marineau.
Locking fix by me.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:47 -05:00
Michael Buesch
adc40e9796 [PATCH] bcm43xx: sync GPHY init with the specs.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:47 -05:00
Michael Buesch
8afceb1e6a [PATCH] bcm43xx: fix the remaining sparse warnings.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:46 -05:00
Michael Buesch
b5e868edbe [PATCH] bcm43xx: remove some compilerwarnings.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:45 -05:00
Michael Buesch
d1ca6c4ff6 [PATCH] bcm43xx: fix "include" issues on some platforms.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:45 -05:00
Michael Buesch
04b98f71e2 [PATCH] bcm43xx: get rid of "/* vim: ..." lines at the end of several files.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:44 -05:00
Michael Buesch
72fb851e97 [PATCH] bcm43xx: add useless and broken statistics stuff. People seem to want it. well...
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:44 -05:00
Michael Buesch
cf017e1b6f [PATCH] bcm43xx: fix nrssi_threshold calculation.
patch by doctorzoidberg.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:43 -05:00
Michael Buesch
e382c234cb [PATCH] bcm43xx: sync interference mitigation code to the specs.
This also includes a rewritten valuesave-stack.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:43 -05:00
Michael Buesch
6ecb26904c [PATCH] bcm43xx: set default attenuation values.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:42 -05:00
Michael Buesch
0ac59daee5 [PATCH] bcm43xx: some IRQ handler cleanups.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:42 -05:00
Michael Buesch
6ab5b8e670 [PATCH] bcm43xx: merge all iwmode code into the set_iwmode function.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:41 -05:00
Michael Buesch
714eece7c7 [PATCH] bcm43xx: fix some gpio register trashing (hopefully :D)
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:40 -05:00
Michael Buesch
4a1821e4c7 [PATCH] bcm43xx: remove check for mmio length, as it differs among platforms. (especially embedded)
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:40 -05:00
Michael Buesch
5808bbbdf8 [PATCH] bcm43xx: properly mask txctl1 before writing it to hardware.
This should not make a difference, but be careful to not trash the register.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:39 -05:00
Michael Buesch
b3db5e5538 [PATCH] bcm43xx: Do boardflags workarounds for specific boards.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:39 -05:00
Michael Buesch
4cf6f03e06 [PATCH] bcm43xx: Remove the workaround in dummy_transmission,
as it causes more trouble than it solves

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:38 -05:00
Michael Buesch
49f29efa7f [PATCH] bcm43xx: Fix crash on ifdown, by being careful in pio/dma freeing.
This bug was caused by the packing of the bcm43xx_dma and bcm43xx_pio
structures into a union.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:38 -05:00
Michael Buesch
e9357c056c [PATCH] bcm43xx: reduce the size of bcm43xx_private by removing unneeded members.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:37 -05:00
Michael Buesch
aae3778176 [PATCH] bcm43xx: add functions bcm43xx_dma_read/write, bcm43xx_dma_tx_suspend/resume.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:37 -05:00
Michael Buesch
e1b1b581b8 [PATCH] bcm43xx: receive TX status on MMIO or DMA unconditionally regarding the 80211 core rev.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:36 -05:00
Michael Buesch
73733847be [PATCH] bcm43xx: fix some stuff, add a few missing mmiowb(), remove dead code.
This may workaround the XMIT ERRORs some people are getting.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:36 -05:00
Michael Buesch
7ce942d0ff [PATCH] bcm43xx: Remove the mmio access printing facility overhead.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:35 -05:00
Michael Buesch
efccb647f4 [PATCH] bcm43xx: Abstract the locking mechanism.
This is the starting point to make the driver out-of-order-MMIO-stores safe.
There are more mmiowb() needed.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:35 -05:00
Michael Buesch
4d5a9e0eeb [PATCH] bcm43xx: Set both, the DMAmask and the coherent DMAmask.
This has a potential to fix the >1G bug. But I can not test that, yet.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:34 -05:00
Pete Zaitcev
512a80916b [PATCH] bcm43xx: fix DMA TX skb freeing in case of fragmented packets.
It seems to me that the today's wireless-2.6 git contains bcm43xx which
does not free txb's correctly, if I understand it right.

Consider a situation where a txb with two skb's is sent down.
The dma_tx_fragment will save the pointer to meta->txb of the first
fragment. If fragments are freed in order, ieee80211_txb_free frees both
skb's when the first fragment is processed. This may result in reuse
of the second skb's memory.

This danger is rather remote, but it seems to me that the patch
below not only fixes the problem, but also makes the code simpler,
which is good, right?

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:19:33 -05:00
Michael Buesch
367f899ac3 [PATCH] bcm43xx: Add sysfs attributes for device specific tunables.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:40 -05:00
Michael Buesch
f398f02d12 [PATCH] bcm43xx: Move TX/RX related functions to its own file. Add basic RTS/CTS code.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:40 -05:00
Michael Buesch
1d1a73ccdc [PATCH] bcm43xx: add assert(bcm->initialized) to periodic_tasks_setup().
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:39 -05:00
Michael Buesch
cad2b31a76 [PATCH] bcm43xx: move initialized = 1 to the end of init_board.
Note that the periodic work has to be started with initialized==1

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:39 -05:00
Michael Buesch
bf7b876043 [PATCH] bcm43xx: Workaround init_board vs IRQ race.
The proper fix for this is to move IRQ enabling to the end of
init_board. But this is nontrivial and needs to be done with care.
Stay with this cheap workaround for now.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:38 -05:00
Michael Buesch
c4c3beb7d7 [PATCH] bcm43xx: Fix Kconfig typo (transfer mode default)
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:38 -05:00