Commit Graph

24259 Commits

Author SHA1 Message Date
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
Michael Buesch
26533e7e29 [PATCH] bcm43xx: remove old unused struct.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:37 -05:00
Michael Buesch
10d8dd88dc [PATCH] bcm43xx: split the channel helper functions, so that they can be used without a valid running core.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:37 -05:00
Michael Buesch
ad3f086c49 [PATCH] bcm43xx: make bcm43xx_sprom_crc() static.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:36 -05:00
Michael Buesch
ea0922b067 [PATCH] bcm43xx: Move sprom lowlevel reading/writing to its own functions.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:36 -05:00
Michael Buesch
489423c8d0 [PATCH] bcm43xx: Code cleanups. This removes various "inline" statements and reduces codesize.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:35 -05:00
Michael Buesch
ab4977f881 [PATCH] bcm43xx: rewrite and simplify the periodic task handling.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:35 -05:00
Michael Buesch
dcfd720bd7 [PATCH] bcm43xx: fix LED code.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:34 -05:00
Michael Buesch
d5dd8e28aa [PATCH] bcm43xx: update README
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:34 -05:00
Michael Buesch
f1f566236d [PATCH] Apple Airport: Add Kconfig note that the bcm43xx driver has to be used for Airport Extreme cards.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:33 -05:00
Michael Buesch
8bcab3f559 [PATCH] bcm43xx: add a note that not all devices support PIO.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:33 -05:00
Michael Buesch
77db31ea43 [PATCH] bcm43xx: Partially fix PIO code. Add Kconfig option for PIO or DMA mode (or both).
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:32 -05:00
Michael Buesch
5c57807afc [PATCH] bcm43xx: remove WX debugging.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:32 -05:00
Michael Buesch
b5488beba8 [PATCH] bcm43xx: fix compiletime warning (phy_xmitpower)
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:31 -05:00
Michael Buesch
921e485f98 [PATCH] bcm43xx: heavily increase mac_suspend timeout.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:31 -05:00
Michael Buesch
62b7f0dfab [PATCH] bcm43xx: enable SPROM writing.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:30 -05:00
Michael Buesch
393344f67b [PATCH] bcm43xx: fix txpower reporting in WE.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:30 -05:00
Danny van Dyk
67093a65c0 [PATCH] Sync bcm43xx_phy_initb6() with specs
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:29 -05:00
Michael Buesch
8fa252d099 [PATCH] bcm43xx: Wireless Ext update
Wireless Ext update:
update we_version_source
set enc_capa

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:29 -05:00
Michael Buesch
6465ce1bbf [PATCH] bcm43xx: basic ethtool support
This patch contains the beginnings of ethtool support for bcm43xx.

It only implements get_drvinfo and get_link, but that's enough for
ifplugd to use ethtool to know whether we're associated or not and then
start or stop dhcp as necessary.

Signed-off-by: Jason Lunz <lunz@falooley.org>
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:28 -05:00
Michael Buesch
9e4a375b15 [PATCH] bcm43xx: Remove function bcm43xx_channel_is_allowed()
Geographical restriction should become part of the 80211 stack,
so every driver does not have to duplicate it.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:27 -05:00
Michael Buesch
a4a600d3e1 [PATCH] bcm43xx: Add more initvals sanity checks and error out, if one sanity check fails.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:27 -05:00
Michael Buesch
65f3f19120 [PATCH] bcm43xx: Fix makefile. Remove all the "out-of-tree" stuff.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:26 -05:00
Michael Buesch
6f3e2045ca [PATCH] bcm43xx: add DEBUG Kconfig option. Also fix indention.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:26 -05:00
Michael Buesch
dda207ae2d [PATCH] bcm43xx: remove redundant COPYING file.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:25 -05:00
Michael Buesch
08ccd883f5 [PATCH] bcm43xx: Move README file to Documentation directory.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:25 -05:00
Michael Buesch
4a2a2792d0 [PATCH] bcm43xx: remove linux version compatibility code.
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:24 -05:00
Michael Buesch
ea72ab229f [PATCH] bcm43xx: sync with svn.berlios.de
Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:24 -05:00
John W. Linville
70e5e983f8 [PATCH] bcm43xx: patch Kconfig and wireless/Makefile for import
Patch Kconfig and wireless/Makefile to merge bcm43xx 'properly'

Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:23 -05:00
John W. Linville
f222313a61 [PATCH] wireless: import bcm43xx sources
Import the bcm43xx driver from the upstream sources here:

ftp://ftp.berlios.de/pub/bcm43xx/snapshots/bcm43xx/bcm43xx-20060123.tar.bz2

Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-27 11:18:23 -05:00
David S. Miller
5d5d7727a8 [SPARC64]: Kill duplicate exports of string library functions.
Kbuild now points these out.

Signed-off-by: David S. Miller <davem@davemloft.net>
2006-03-26 15:30:29 -08:00
David S. Miller
e7104b6704 [SPARC64]: Update defconfig.
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-03-26 14:58:40 -08:00
Manfred Spraul
64bc0430ee [PATCH] one ipc/sem.c->mutex.c converstion too many..
Ingo's sem2mutex patch incorrectly replaced one reference to ipc/sem.c
with ipc/mutex.c in a comment.

Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 09:46:36 -08:00
Linus Torvalds
9ae21d1bb3 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:
  drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment
  Kconfig help: MTD_JEDECPROBE already supports Intel
  Remove ugly debugging stuff
  do_mounts.c: Minor ROOT_DEV comment cleanup
  BUG_ON() Conversion in drivers/s390/block/dasd_devmap.c
  BUG_ON() Conversion in mm/mempool.c
  BUG_ON() Conversion in mm/memory.c
  BUG_ON() Conversion in kernel/fork.c
  BUG_ON() Conversion in ipc/sem.c
  BUG_ON() Conversion in fs/ext2/
  BUG_ON() Conversion in fs/hfs/
  BUG_ON() Conversion in fs/dcache.c
  BUG_ON() Conversion in fs/buffer.c
  BUG_ON() Conversion in input/serio/hp_sdc_mlc.c
  BUG_ON() Conversion in md/dm-table.c
  BUG_ON() Conversion in md/dm-path-selector.c
  BUG_ON() Conversion in drivers/isdn
  BUG_ON() Conversion in drivers/char
  BUG_ON() Conversion in drivers/mtd/
2006-03-26 09:41:18 -08:00
Bastien Roucaries
e9415777b1 drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment
This patch correct a comment about cli().

Signed-off-by: Bastien Roucaries <roucaries.bastien@gmail.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-03-26 19:18:07 +02:00
Adrian Bunk
8917f6f70b Kconfig help: MTD_JEDECPROBE already supports Intel
Intel chips are already supported.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
2006-03-26 19:15:03 +02:00
Akinobu Mita
f9b4192923 [PATCH] bitops: hweight() speedup
<linux@horizon.com> wrote:

This is an extremely well-known technique.  You can see a similar version that
uses a multiply for the last few steps at
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel whch
refers to "Software Optimization Guide for AMD Athlon 64 and Opteron
Processors"
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25112.PDF

It's section 8.6, "Efficient Implementation of Population-Count Function in
32-bit Mode", pages 179-180.

It uses the name that I am more familiar with, "popcount" (population count),
although "Hamming weight" also makes sense.

Anyway, the proof of correctness proceeds as follows:

	b = a - ((a >> 1) & 0x55555555);
	c = (b & 0x33333333) + ((b >> 2) & 0x33333333);
	d = (c + (c >> 4)) & 0x0f0f0f0f;
#if SLOW_MULTIPLY
	e = d + (d >> 8)
	f = e + (e >> 16);
	return f & 63;
#else
	/* Useful if multiply takes at most 4 cycles */
	return (d * 0x01010101) >> 24;
#endif

The input value a can be thought of as 32 1-bit fields each holding their own
hamming weight.  Now look at it as 16 2-bit fields.  Each 2-bit field a1..a0
has the value 2*a1 + a0.  This can be converted into the hamming weight of the
2-bit field a1+a0 by subtracting a1.

That's what the (a >> 1) & mask subtraction does.  Since there can be no
borrows, you can just do it all at once.

Enumerating the 4 possible cases:

0b00 = 0  ->  0 - 0 = 0
0b01 = 1  ->  1 - 0 = 1
0b10 = 2  ->  2 - 1 = 1
0b11 = 3  ->  3 - 1 = 2

The next step consists of breaking up b (made of 16 2-bir fields) into
even and odd halves and adding them into 4-bit fields.  Since the largest
possible sum is 2+2 = 4, which will not fit into a 4-bit field, the 2-bit
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                          "which will not fit into a 2-bit field"

fields have to be masked before they are added.

After this point, the masking can be delayed.  Each 4-bit field holds a
population count from 0..4, taking at most 3 bits.  These numbers can be added
without overflowing a 4-bit field, so we can compute c + (c >> 4), and only
then mask off the unwanted bits.

This produces d, a number of 4 8-bit fields, each in the range 0..8.  From
this point, we can shift and add d multiple times without overflowing an 8-bit
field, and only do a final mask at the end.

The number to mask with has to be at least 63 (so that 32 on't be truncated),
but can also be 128 or 255.  The x86 has a special encoding for signed
immediate byte values -128..127, so the value of 255 is slower.  On other
processors, a special "sign extend byte" instruction might be faster.

On a processor with fast integer multiplies (Athlon but not P4), you can
reduce the final few serially dependent instructions to a single integer
multiply.  Consider d to be 3 8-bit values d3, d2, d1 and d0, each in the
range 0..8.  The multiply forms the partial products:

	           d3 d2 d1 d0
	        d3 d2 d1 d0
	     d3 d2 d1 d0
	+ d3 d2 d1 d0
	----------------------
	           e3 e2 e1 e0

Where e3 = d3 + d2 + d1 + d0.   e2, e1 and e0 obviously cannot generate
any carries.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:59:30 -08:00
Artem B. Bityuckiy
3be7d29fb9 Remove ugly debugging stuff
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-03-26 18:58:31 +02:00
Akinobu Mita
37d54111c1 [PATCH] bitops: hweight() related cleanup
By defining generic hweight*() routines

- hweight64() will be defined on all architectures
- hweight_long() will use architecture optimized hweight32() or hweight64()

I found two possible cleanups by these reasons.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:15 -08:00
Akinobu Mita
e9bebd6f3a [PATCH] bitops: remove unused generic bitops in include/linux/bitops.h
generic_{ffs,fls,fls64,hweight{64,32,16,8}}() were moved into
include/asm-generic/bitops.h.  So all architectures don't use them.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:15 -08:00
Akinobu Mita
b9a2838cc2 [PATCH] bitops: ntfs: remove generic_ffs()
Now the only user who are using generic_ffs() is ntfs filesystem.  This patch
isolates generic_ffs() as ntfs_ffs() for ntfs.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: Anton Altaparmakov <aia21@cantab.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:15 -08:00
Akinobu Mita
55b0f8a68a [PATCH] bitops: ia64: make partial_page.bitmap an unsigned long
The find_*_bit() routines are defined to work on a pointer to unsigned long.
But partial_page.bitmap is unsigned int and it is passed to find_*_bit() in
arch/ia64/ia32/sys_ia32.c.  So the compiler will print warnings.

This patch changes to unsigned long instead.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:15 -08:00
Akinobu Mita
6ecf66ae49 [PATCH] bitops: sh: make thread_info.flags an unsigned long
The test_bit() routines are defined to work on a pointer to unsigned long.
But thread_info.flags is __u32 (unsigned int) on sh and it is passed to flag
set/clear/test wrappers in include/linux/thread_info.h.  So the compiler will
print warnings.

This patch changes to unsigned long instead.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:15 -08:00
Akinobu Mita
f51a05c16d [PATCH] bitops: update include/asm-generic/bitops.h
Currently include/asm-generic/bitops.h is not referenced from anywhere.  But
it will be the benefit of those who are trying to port Linux to another
architecture.

So update it by same manner

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:15 -08:00
Akinobu Mita
d4337aa528 [PATCH] bitops: xtensa: use generic bitops
- remove {,test_and_}{set,clear,change}_bit()
- remove __{,test_and_}{set,clear,change}_bit() and test_bit()
- remove generic_fls64()
- remove find_{next,first}{,_zero}_bit()
- remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
- remove generic_hweight{32,16,8}()
- remove sched_find_first_bit()
- remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:15 -08:00