Commit graph

25361 commits

Author SHA1 Message Date
Paolo 'Blaisorblade' Giarrusso
12523bdce1 [PATCH] uml: idle thread needn't take access to init_mm
Comparing this code which is the actual body of the arch-independent
cpu_idle(), it is clear that it's unnecessary to set ->mm and ->active_mm;
beyond that, a kernel thread is not supposed to have ->mm != NULL, only
active_mm.

This showed up because I used the assumption (which is IMHO valid) that kernel
thread have their ->mm == NULL, and it failed for this thread.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
e11c0cdf4c [PATCH] uml: fix min usage
type-safe min() in arch/um/drivers/mconsole_kern.c

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
43cecb3079 [PATCH] uml: remove unused make variables
Removed assignments to unused variables in arch/um/os-Linux/Makefile

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
347f217cec [PATCH] uml: __user annotations
__user annotations (hppfs)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
4d338e1acc [PATCH] uml: sparse cleanups
misc sparse annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
694a464e19 [PATCH] uml: kconfigs
kconfig sanitized around drivers/net

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
cc70a40b5e [PATCH] uml: eliminate duplicate mrpropered files
no need to add the same file twice to MRPROPER_FILES

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
7b99edc78d [PATCH] uml: clean up remapping code build magic
kills unmap magic

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:51 -08:00
Al Viro
de2fe5e07d [PATCH] uml: eliminate symlinks to host arch
kills symlinks in arch/um/sys-*

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
Jeff Dike
f4c57a78e2 [PATCH] uml: fix initcall return values
A number of UML initcalls were improperly returning 1.  Also removed any
nearby emacs formatting comments.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
Jeff Dike
9902abd7af [PATCH] uml: redeclare highmem
The earlier printf patch missed a corresponding change in the printed
variable.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
Jeff Dike
02dea0875b [PATCH] UML: Hotplug memory, take 2
Changes since first version
	added check for MADV_REMOVE support on the host
	fixed error return botch
	shrunk sprintf array by one character

This adds hotplug memory support to UML.  The mconsole syntax is
 	config mem=[+-]n[KMG]
In other words, add or subtract some number of kilobytes, megabytes, or
gigabytes.

Unplugged pages are allocated and then madvise(MADV_TRUNCATE), which is a
currently experimental madvise extension.  These pages are tracked so they
can be plugged back in later if the admin decides to give them back.  The
first page to be unplugged is used to keep track of about 4M of other
pages.  A list_head is the first thing on this page.  The rest is filled
with addresses of other unplugged pages.  This first page is not madvised,
obviously.

When this page is filled, the next page is used in a similar way and linked
onto a list with the first page.  Etc.  This whole process reverses when
pages are plugged back in.  When a tracking page no longer tracks any
unplugged pages, then it is next in line for plugging, which is done by
freeing pages back to the kernel.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
Pavel Machek
85b6bce365 [PATCH] Fix suspend with traced tasks
strace /bin/bash misbehaves after resume; this fixes it.

(akpm: it's scary calling refrigerator() in state TASK_TRACED, but it seems to
do the right thing).

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
Vivek Goyal
1a75a3f068 [PATCH] i386 kdump timer vector lockup fix
Porting the patch I posted for x86_64 to i386.

http://marc.theaimsgroup.com/?l=linux-kernel&m=114178139610707&w=2

o While using kdump, after a system crash when second kernel boots, timer
  vector gets (0x31) locked and CPU does not see timer interrupts
  travelling from IOAPIC to APIC.  Currently it does not lead to boot
  failure in second kernel as timer interrupts continues to come as ExtInt
  through LAPIC directly, but fixing it is good in case some boards do not
  support the other mode.

o After a system crash, it is not safe to service interrupts any more,
  hence interrupts are disabled.  This leads to pending interrupts at
  LAPIC.  LAPIC sends these interrupts to the CPU during early boot of
  second kernel.  Other pending interrupts are discarded saying unexpected
  trap but timer interrupt is serviced and CPU does not issue an LAPIC EOI
  because it think this interrupt came from i8259 and sends ack to 8259.
  This leads to vector 0x31 locking as LAPIC does not clear respective ISR
  and keeps on waiting for EOI.

o This patch issues extra EOI for the pending interrupts who have ISR set.

o Though today only timer seems to be the special case because in early
  boot it thinks interrupts are coming from i8259 and uses
  mask_and_ack_8259A() as ack handler and does not issue LAPIC EOI.  But
  probably doing it in generic manner for all vectors makes sense.

Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
Brian Gerst
3ccfb81e87 [PATCH] Remove long dead i386 floppy asm code
It's been disabled since v2.1.88

Signed-off-by: Brian Gerst <bgerst@didntduck.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
KAMEZAWA Hiroyuki
bc83db4f00 [PATCH] for_each_possible_cpu: sh
for_each_cpu() actually iterates across all possible CPUs.  We've had mistakes
in the past where people were using for_each_cpu() where they should have been
iterating across only online or present CPUs.  This is inefficient and
possibly buggy.

We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the
future.

This patch replaces for_each_cpu with for_each_possible_cpu.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.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-31 12:18:50 -08:00
Chen, Kenneth W
78c997a4be [PATCH] hugetlb: don't allow free hugetlb count fall below reserved count
With strict page reservation, I think kernel should enforce number of free
hugetlb page don't fall below reserved count.  Currently it is possible in
the sysctl path.  Add proper check in sysctl to disallow that.

Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:50 -08:00
Chen, Kenneth W
d6692183ac [PATCH] fix extra page ref count in follow_hugetlb_page
git-commit: d5d4b0aa4e
"[PATCH] optimize follow_hugetlb_page" breaks mlock on hugepage areas.

I mis-interpret pages argument and made get_page() unconditional.  It
should only get a ref count when "pages" argument is non-null.

Credit goes to Adam Litke who spotted the bug.

Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Acked-by: Adam Litke <agl@us.ibm.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Nick Piggin
93fac7041f [PATCH] mm: schedule find_trylock_page() removal
find_trylock_page() is an odd interface in that it doesn't take a reference
like the others.  Now that XFS no longer uses it, and its last remaining
caller actually wants an elevated refcount, opencode that callsite and
schedule find_trylock_page() for removal.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Christoph Lameter
9bf9e89c3d [PATCH] migrate_pages_to() must be defined for the no swap case
Fix migrate_pages_to() definition.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Petri T. Koistinen
b5ac5d7edb [PATCH] drivers/mtd/maps/vmax301.c: fix off by one vmax_mtd
Fix an obvious off-by-one error (vmax_mtd[] contains two elements).

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Herbert Poetzl
4d55146598 [PATCH] mtd: fix broken name_to_dev_t() declaration
drivers/mtd/devices/blkmtd.c uses a local declaration of name_to_dev_t()
which is inconsistant with the real one.  the following patch fixes this by
removing the local declaration and including mount.h instead

this patch was originally done by Micah Anderson.

Signed-off-by: Herbert Poetzl <herbert@13thfloor.at>
Acked-by: Micah Anderson <micah@riseup.net>
Acked-by: Daniel Hokka Zakrisson <daniel@hozac.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Peter Korsgaard
84e699e6ec [PATCH] mtd/redboot: Handle holes in fis table
Redboot simply sets the first character of a fis entry to 0xff on "fis
delete".  The kernel redboot parser stops parsing on such an entry, and
without this patch any entries after a deleted image would not be detected.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Pavel Machek
a63ec1b7b7 [PATCH] Add chip used in collie to jedec_probe
This adds flash chip used in Sharp Zaurus sl5500 (collie) to jedec_probe.
Values work for read-only access, but I have not figured out how to do
read-write.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Eric Sesterhenn
edcbce2150 [PATCH] Dead code in mtd/maps/pci.c
This fixes coverity bug #12.  The first two gotos in the function still
have the initial value for mtd set.  And the third goto just triggers for
!mtd

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Pavel Machek
2d2dce0eb6 [PATCH] Kill ifdefs in mtdcore.c
Kill unneccessary ifdefs in mtdcore.c.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:49 -08:00
Eric Sesterhenn / snakebyte
8b68a12633 [PATCH] Fix debug statement in inftlcore.c
Fix a copy/paste bug found by cpminer inside the inftlcore.c file

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Acked-by: Greg Ungerer <gerg@snapgear.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Atsushi Nemoto
b175d03dd2 [PATCH] mtd cmdlinepart: allow zero offset value
Current cmdlinepart.c uses offset value 0 to specify a continuous
partition.  This prevents creating a second partition starting at 0.

For example, I can split 4MB device using "mtdparts=id:2M,2M", but I can
not do "mtdparts=id:2M@2M,2M@0" to swap mtd0 and mtd1.

This patch introduces special OFFSET_CONTINUOUS value for a continuous
partition and allows 0 for offset value.

Also this patch replaces 0xffffffff with UINT_MAX for SIZE_REMAINING.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Tobias Klauser
87d10f3c79 [PATCH] drivers/mtd: Use ARRAY_SIZE macro
Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove
duplicates of the macro.

Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Adrian Bunk
54af6b4648 [PATCH] MTD_NAND_SHARPSL and MTD_NAND_NANDSIM should be tristate's
MTD_NAND=m and MTD_NAND_SHARPSL=y or MTD_NAND_NANDSIM=y are illegal
combinations that mustn't be allowed.

This patch fixes this bug by making MTD_NAND_SHARPSL and MTD_NAND_NANDSIM
tristate's.

Additionally, it fixes some whitespace damage at these options.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Richard Purdie <rpurdie@rpsys.net>
Acked-by: "Artem B. Bityutskiy" <dedekind@yandex.ru>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Adrian Bunk
0500abf521 [PATCH] drivers/mtd/: small cleanups
- chips/sharp.c: make two needlessly global functions static

- move some declarations to a header file where they belong to

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Ingo Molnar
48b192686d [PATCH] sem2mutex: drivers/mtd/
Semaphore to mutex 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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Ingo Molnar
040d79f906 [PATCH] sem2mutex: mtd/doc2000.c
Semaphore to mutex 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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Andrew Morton
37466ea85a [PATCH] m25p80: printk warning fix
drivers/mtd/devices/m25p80.c: In function `m25p80_erase':
drivers/mtd/devices/m25p80.c:189: warning: signed size_t format, different type arg (arg 6)

Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-31 12:18:48 -08:00
Marcelo Tosatti
553ee5dc1a [PATCH] pcmcia: declare pccard_iodyn_ops (fix m8xx_pcmcia.c compilation error)
Apparently the pccard_iodyn_ops declaration has been forgotten, which
results in a compilation error for m8xx_pcmcia.c

Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
2006-03-31 21:49:51 +02:00
Tony Luck
2ab9391dea [IA64] Avoid "u64 foo : 32;" for gcc3 vs. gcc4 compatibility
gcc3 thinks that a 32-bit field of a u64 type is itself a u64, so
should be printed with "%ld".  gcc4 thinks it needs just "%d".
Make both versions happy by avoiding this construct.

Signed-off-by: Tony Luck <tony.luck@intel.com>
2006-03-31 10:28:29 -08:00
Frederik Deweerdt
c2f60c523a [ALSA] Kconfig SND_SEQUENCER_OSS help text fix
Fix misleading help text for SND_SEQUENCER_OSS config option.

Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:01 +02:00
Maximilian Rehkopf
af9b70ac00 [ALSA] Add Aux input switch control for Aureon Universe
This patch adds a mixer control which allows the user to switch the Aux
playback between the internal Aux jack, Wavetable, and Rear Line-In on
Aureon Universe cards.

For switching, a PCA9554 (8-line GPIO with I2C interface) and a 74HC4052
(dual 4-way mux/demux) are used.  Output 0 and 1 of the PCA9554 are
connected to the select pins of the 74HC4052. The I2C interface of the
PCA9554 is connected to the card's internal SPI bus which is also used
to control the WM8770 and CS8415. SPI and I2C on the same lines...

To communicate with the PCA9554 the WM8770 and CS8415 are disabled and
an I2C Stop Condition is generated before the Start Condition (needed
for synchronisation because other SPI traffic appear to confuse the
PCA9554). Then a normal I2C data transfer takes place.  Programming must
be done ridiculously slow; in theory, 4.7us is the minimum delay time
for normal-speed I2C according to the datasheet, but even with 10us
switching was unreliable.  The Windows driver from Terratec does the
programming very slowly, too (checked with an oscilloscope).

PCA9554 datasheet:
http://www.semiconductors.philips.com/acrobat/datasheets/PCA9554_9554A_6.pdf

74HC4052 datasheet:
http://www.semiconductors.philips.com/acrobat/datasheets/74HC_HCT4052_4.pdf

Signed-off-by: Maximilian Rehkopf <otakon@gmx.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:01 +02:00
Markus Bollinger
0bd43b5bc9 [ALSA] pcxhr - Fix the crash with REV01 board
On a new board revision for pcxhr boards, the
PCXHR_CHIPSC_GPI_USERI bit is no more supported.
The cards concerned have a REV01 in their PCI ID.

As the current driver tests this bit and does not load the
first Xilinx binary when it's 1, the card will crash on Xilinx
access over PCI. (the PCI will freeze ....)

The fix (fix to version 1.0.11rc4) works for both REV00 and
REV01 cards.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:01 +02:00
OGAWA Hirofumi
ce7415f496 [ALSA] sound/pci/hda: use create_singlethread_workqueue()
process_unsol_events() seems to assume a singlethread one (IOW, racey).
So, this patch uses create_singlethread_workqueue() instead of
create_workqueue().

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:01 +02:00
Felix Kuehling
89be83f8ee [ALSA] hda-intel - Add support of ATI SB600
This patch adds support for high definition audio on ATI SB600.

Signed-off-by: Felix Kuehling <fkuehlin@ati.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:01 +02:00
Takashi Iwai
38223daa1a [ALSA] cs4281 - Fix the check of timeout in probe
Fix the check of timeout in probe routines to work properly
reagrdless of HZ (ALSA bug#1976).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:00 +02:00
Takashi Iwai
e860f00047 [ALSA] cs4281 - Fix the check of right channel
Fix the check of right channel in mixer volume put callback.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:00 +02:00
Takashi Iwai
14790f1c73 [ALSA] Test volume resolution of usb audio at initialization
Test the volume of usb audio whether actually it works and adjusts
the resolution value according to it.

Some USB audio devices report a lower resolution than it reacts.
The only possible check is to write and read a volume value.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:00 +02:00
Andreas Mohr
0b2dcd5d6a [ALSA] maestro3.c: fix BUG, optimization
- fix brown-paper-bag locking bug (lock() / return / unlock())
- improve central function snd_m3_update_ptr()
  (avoid expensive integer divisions)
- add cpu_relax() to busy-wait I/O loop as recommended
  (does this require special macro support in ALSA for older kernels??)
- constify several structs
- spelling updates

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:00 +02:00
Jonathan Woithe
a1e8d2da03 [ALSA] HDA/Realtek: multiple input mux definitions and pin mode additions
The following patch relative to CVS from 20060324 adds the following
features to the Realtek HDA codec.

1) Define two new pin modes: ALC_PIN_DIR_IN_NOMICBIAS and
   ALC_PIN_DIR_INOUT_NOMICBIAS.  These can be used with jack mode switch
   definitions in mixers to prevent the user being offered the mic bias
   options if the hardware doesn't support it.

2) Add the ability to have different input mux definitions for different
   ADCs.  This is needed because the ALC260 chip uses different mux layouts
   for the two onboard ADCs.  A new field (num_mux_defs) was added to the
   alc_spec and alc_config_preset structures to support this.

3) Adjust numerous comments to make them consistent with the above changes.

4) Utilise the new multi-mux definition functionality for the ALC260 fujitsu
   model to allow recording of the mixer output.

5) Utilise the new multi-mux definition functionality for the ALC260 test
   model to make the mux selections a little less confusing.

6) Allow the headphone jack of the ALC260 acer model to be retasked in
   the mixer.

6) Utilise the new multi-mux definition functionality for the ALC260 acer
   model to give access to the mixer output and the retasked headphone
   jack.

At this stage the *_NOMICBIAS modes are not used.  We have reports that the
"Line" jack of at least some Acer models doesn't pass the bias out, and we
also know that NIDs 0x0f and 0x10 don't seem to accept the mic bias requests
at all.  However, I feel we need to collect more evidence on both counts
before committing to the use of *_NOMICBIAS.  In the case of the Acers, it's
not clear whether this issue (probably caused by the inclusion of DC
blocking capacitors) affects all Acer models or just a small number.  With
the issue with NIDs 0x0f and 0x10 it's unclear whether this is a hardware
bug which will be addressed in later chip revisions or if it's an
intentional restriction.  The datasheet makes no mention of the restriction
so at this stage I'm inclined to consider it a hardware bug.  Comments in
the source reflect this reasoning.

On a similar theme, the headphone jack of the Fujitsu S7020 also doesn't
appear to pass mic bias voltage.  I'm still investigating this however.

With the ability to retask the headphone jack, owners of ALC260-based Acer
laptops should now be able to record 4 channels of audio if they desire. The
multiple mux definitions allow this jack to be presented from both ADCs
(since this mux input is one of those which differs between the muxes).

This patch has been tested on a Fujitsu S7020 laptop and appears to behave
itself both for the "test" and "fujitsu" models.  Definitions using only a
single mux specification also work.  Other ALC chips should be fine but I
cannot test these myself.  The "auto" modes should also continue to function
but again I have not verified this.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:00 +02:00
Rene Herman
cf40a310a7 [ALSA] AdLib FM card driver
Attached you'll find an ALSA driver for AdLib FM cards. An AdLib card is
just an OPL2, which was already supported by sound/drivers/opl3, so only
very minimal bus-glue is needed. The patch applies cleanly to both
2.6.16 and 2.6.16-mm1.

The driver has been tested with an actual ancient 8-bit ISA AdLib card
and works fine. It also works fine for an OPL3 {,emulation} as still
found on many ISA soundcards but given that AdLib cards don't have their
own mixer, upping the volume from 0 might be a problem without the card
driver already loaded and driving the OPL3.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:58:59 +02:00
Takashi Iwai
060d77b9c0 [ALSA] Fix / clean up PCM-OSS setup hooks
- Fix possible race of referring the setup hook from the running PCM
- Fix memory leak in an error path of proc write
- Clean up the setup hook parser

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:58:59 +02:00
Takashi Iwai
3bf75f9b90 [ALSA] Clean up PCM codes (take 2)
- Clean up initialization and destruction of substream instance
  Now snd_pcm_open_substream() alone does most initialization jobs.
  Add pcm_release callback for cleaning up at snd_pcm_release_substream()
- Tidy up PCM oss code

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:58:59 +02:00
Takashi Iwai
bf1bbb5a49 [ALSA] Tiny clean up of PCM codes
- Make snd_pcm_prepare() static
- Clean up snd_pcm_kernel_*_ioctl() functions, reduce exports

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:58:58 +02:00