The old snd-powermac driver has some serious refcounting issues when
initialisation fails, which is the case on all new machines with
a layout-id since those are handled by the new snd-aoa driver.
Some of those bugs seem to have been under the radar for some time
(like double pci_dev_put), but one was actually added in 2.6.22 with
Stephen attempt at teaching refcounting to the driver which didn't
do it at all.
This patch fixes both, thus removing all sort of kref errors that
would happen if that driver gets loaded on a G5 machine or a recent
PowerBook due to OF nodes left around with a 0 refcount.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
I have made a tool to parse the kernel that does not pre-process the
source. That means that my parser tries to parse all the code, including
code in the #else branch or code that is not often compiled because the
driver is not very used (or not used at all). So, my parser sometimes
reports parse error not originally detected by gcc. Here is my (first)
patch.
[akpm@linux-foundation.org: fix amd8111e.c]
Signed-off-by: Yoann Padioleau <padator@wanadoo.fr>
Acked-by: Matthew Wilcox <matthew@wil.cx>
Acked-by: Wim Van Sebroeck <wim@iguana.be>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Jeff Garzik <jeff@garzik.org>
Acked-by: James Bottomley <James.Bottomley@steeleye.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
STAC922x provides the capture boost level up to 4, but actually it
works only up to 2. Since the range of the mixer is automatically
defined from amp-capability bits, we need to override the value
beforehand. snd_hda_override_amp_caps() is introduced for this
purpose.
The function patch_stac922x() calls this for NID 0x12 (Mux Capture
Volume). This should fix another recording problem on Intel Macs.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
The recent fix for STAC92xx surround outputs broke the input pin
setting for shared line-in and mic jacks. This patch fixes the
breakage.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Fix pin default configs for speaker associations and sequence
for Gateway MX6453 machine with STAC925x codecs.
Signed-off-by: Steve Longerbeam <stevel@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch adds the MSI K9N Ultra system to the realtek patch.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Tested and verified in #alsa/Freenode on Tuesday, May 29, 2007.
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: crimsun@Box.ncat.edu
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Add a quirk for MSI S420 (based on a guess work).
From: Baruch Even <baruch@ev-en.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This should fix a spinlock lockup bug on the s3c24xx arch.
From: Zoltan Devai <zdevai@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Commit f32610edab added ALC660VD support, but
this caused a 2.6.21 regression for some users. The ASUS M2V device is
now detected as ALC660VD rather than ALC660/861 but the PCI quirk was not
carried over.
This patch allows affected users to use audio again.
http://bugzilla.kernel.org/show_bug.cgi?id=8273https://bugs.gentoo.org/show_bug.cgi?id=178243
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Reported by Eric Sesterhenn.
Fix the wrong checks of extra voice pointer, which may cause NULL
dereferences.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch adds support for the ASUS A8J Series 56k Modem (Motorola SM56)
Signed-off-by: Christian Rothlaender <christian@rothlaender.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch fixes an automute code issue for systems that do not rely
on eapd support.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch adds more Dell systems and a Panasonic laptop with
STAC9200 codecs.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch adds support for the Gateway NX860 system.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
First thing mm.h does is including sched.h solely for can_do_mlock() inline
function which has "current" dereference inside. By dealing with can_do_mlock()
mm.h can be detached from sched.h which is good. See below, why.
This patch
a) removes unconditional inclusion of sched.h from mm.h
b) makes can_do_mlock() normal function in mm/mlock.c
c) exports can_do_mlock() to not break compilation
d) adds sched.h inclusions back to files that were getting it indirectly.
e) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were
getting them indirectly
Net result is:
a) mm.h users would get less code to open, read, preprocess, parse, ... if
they don't need sched.h
b) sched.h stops being dependency for significant number of files:
on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,
after patch it's only 3744 (-8.3%).
Cross-compile tested on
all arm defconfigs, all mips defconfigs, all powerpc defconfigs,
alpha alpha-up
arm
i386 i386-up i386-defconfig i386-allnoconfig
ia64 ia64-up
m68k
mips
parisc parisc-up
powerpc powerpc-up
s390 s390-up
sparc sparc-up
sparc64 sparc64-up
um-x86_64
x86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig
as well as my two usual configs.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This patch makes sure that short USB replies are treated as an
error when requesting the value of a certain mixer control.
Signed-off-by: Thomas Reitmayr <thomas@devbase.at>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Included is a patch against current alsa-kernel hg tip adding
quirks that Ubuntu Dapper/Edgy/Feisty contains.
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
isa_register_driver() returns an error if no device is found
and it's no fatal error for the drivers with pnp support.
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch fixes a bug whereby AC97 bus device data was being clobbered
when AC97 codecs using the generic ac97_codec.c driver were being
registered. Codecs that didn't use the generic driver were unaffected
(e.g. WM9712, WM9713).
Changes:-
o Add new AC97 codec class for custom (or need bus dev registration)
AC97 codecs.
o Only register/deregister this custom codec device with the AC97 bus.
The generic AC97 driver already does this for generic codec devices.
This may be related to bug #3038 :-
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3038
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch fixes a bug whereby the GPL'ed symbol ac97_dai was being
declared as static.
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
In some cases, mixer elements return -EINVAL because it couldn't
obtain proper amp_cap bits. The patch improves the robustness,
trying the amp_cap query again in such a case.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch adds the ID for another quickcam microphone, reported by freqmod
on ALSA ticket #0003040
I'm going to submit a USB patch separately to provide a macro to simplify these
entries, as suggested by Alan Stern. We could switch to using that in future.
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Some verb tables (such as an Asus VT sent by IDT) contain only speaker
outs in the default pin configs, and no line-outs. In such a case the
speaker sequence numbers have to be used to order the speaker out
pins, just as is being done for line-out pins. Then, when speaker-outs
are copied to line-outs, the line-outs will be ordered properly.
Signed-off-by: Steve Longerbeam <stevel@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Fix the retrival of widget connection list in the generic parser.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Add a workaround for the ESI M4U that claims to support 32-byte packets
but ignores the remaining bytes of packets bigger than four bytes.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
The firmware of the M-Audio USB Uno MIDI Interface has, at least in
hardware revision 1.25, a bug that garbles its USB output. When it
receives a Note On MIDI message that uses running status, the resulting
USB MIDI packet has a wrong CIN (4 instead of 9) and a wrong length
(2 bytes, the status byte is still missing).
This patch adds a workaround to track the CINs and the MIDI messages of
received USB MIDI packets to detect whether a packet with CIN 4 is a
correct SysEx packet or a buggy running status packet.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
The AMP mute bit is bit 7. No real influence since no one uses this
definition yet, though...
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Fix the auto-mute controls of ALC880 uniwill model. Split to two
individual functions to handle HP and front-mic mutes. For front-mic
mute, use snd_hda_codec_amp_update() to be consistent with mixer.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
I quuestion the testing status of that patch!
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
From: David Rientjes <rientjes@google.com>
isapnp[] is only used for CONFIG_PNP. If this configuration option is
not set, do not declare the array.
Cc: Adam Belay <ambx1@neo.rr.com>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* fixed surround playback on stac922x. Pin direction control bits were
not being set correctly in stac92xx_set_pinctl(). Specifically it
would refuse to set the port as an output if the port was already
configured as an input. Last hunk (#8).
* fixed an input mux bug on 92xx codecs. When there is more than one
possible input calculated for the muxes, the actual mux widget never
gets set from its reset default, which is index 0, in the stac9221
case that is port E. So alsamixer/amixer/gnome-mixer report the Mic
as being the selected input source, but in fact is something else
(line-in port E in stac9221 case). Another problem with this is that
if you actually try to set the mux input to 'Mic', nothing happens
because *cur_val == idx (see snd_hda_input_mux_put). You have to
actually toggle input source to line-in then back to mic to actually
set the mux widget. Hunk #7.
* fixed some typos in patch_sigmatel.c. Hunk #6.
* fix to stac92xx_add_dyn_out_pins() that fixes surround playback on
codecs with less that 4 DACs (stac9205 for example). It reads the widget
caps cache created by hda_codec to count the total number of analog DACs
found. It then uses that to determine whether there will be enough
independent DACs available for line/mic switch controls. Hunk #1, #2,
and #3.
* improvements to stac92xx_auto_fill_dac_nids() to make it more general.
This fixes surround playback on some codecs in combination with the
fix to stac92xx_add_dyn_out_pins() above. It reads the full connection
list now, instead of just the first entry, and then locates an analog
DAC in the list. If one is found and it's free, assign it to that line-out.
If no free DAC is found for the line-out, return -ENODEV. It also makes
sure to actually select the chosen DAC if more than one DAC is input to
the pin. Hunks #4, #5.
Signed-off-by: Steve Longerbeam <stevel@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Since request_firmware() is no longer used when the internal firmware
images are used, it is no longer necessary to depend on FW_LOADER in
this case.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Added a missing call to resume mixer controls for STAC92xx codecs.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
The last patch didn't really work (false report).
Although the hardware supports 125us minimum period, the current
usb-audio driver code assumes the 1ms period in many places.
Rollback the change.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch adds support for 3 new HP laptops to the Conexant
'Venice' driver.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
The minimal period size is 125us for high-speed mode while
1ms for full-speed mode.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
It seems noone ever tried to use this driver with more than one device.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
E-Mu 1010 is not currently supported yet. Needs development work.
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Add handling of Intel-iMac-specific pinconfig of the sound card.
Intel-iMac now handled as a separated subsystem.
Signed-off-by: Sylvain FORET <sylvain.foret@anu.edu.au>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch is for ATI RS780 and R600 HDMI support.
Signed-off-by: Wolke Liu <wolke.liu@amd.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Prefer the name of audio codecs as the mixer name even if
modem codecs are probed before the audio codecs.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Don't use request_firmware() if the internal firmwares are defined
via Kconfig. Otherwise it results in a significant delay at loading
time (minutes).
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Fixed the model (asus-laptop) for ASUS A9rp with ALC660 codec.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This patch fixes the headphone squeal and noise on Conexant CX20551
(Waikiki) audio.
Signed-off-by: Tobin Davis <gruemaster@email.uophx.edu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>