Commit graph

1713 commits

Author SHA1 Message Date
David Woodhouse
18ee6dfae8 firmware: convert ymfpci driver to use firmware loader exclusively
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:47:48 +01:00
David Woodhouse
a292f404fa firmware: convert maestro3 driver to use firmware loader exclusively
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:47:46 +01:00
David Woodhouse
76770664dc firmware: convert korg1212 driver to use firmware loader exclusively
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:47:44 +01:00
David Howells
fd4f80de46 Fix a const pointer usage warning in the Digigram miXart soundcard driver
Fix a const pointer usage warning in the Digigram miXart soundcard driver.  A
const pointer is being passed to copy_from_user() to load the firmware into.
This is okay in this case because the function has allocated the firmware
struct itself, but the const qualifier is part of the firmware struct - so the
patch casts the const away.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2008-07-10 14:29:01 +01:00
David Howells
67852dc08c Fix a const pointer usage warning in the Digigram pcxhr soundcard driver
Fix a const pointer usage warning in the Digigram pcxhr compatible soundcard
driver.  A const pointer is being passed to copy_from_user() to load the
firmware into.  This is okay in this case because the function has allocated
the firmware struct itself, but the const qualifier is part of the firmware
struct - so the patch casts the const away.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2008-07-10 14:28:52 +01:00
David Woodhouse
b82a82d0a9 ymfpci: treat firmware data as const
Standardise both in-kernel and loaded firmware to be stored as
little-endian instead of host-endian.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:26:40 +01:00
David Woodhouse
fa6e1cb66e maestro3: treat firmware data as const
The maestro3 driver is byte-swapping its firmware to be host-endian in
advance, when it doesn't seem to be necessary -- we could just use
le16_to_cpu() as we load it.

Doing that means that we need to switch the in-tree firmware to be
little-endian too.

Take the least intrusive way of doing this, which is to switch the
existing snd_m3_convert_from_le() function to convert _to_ little-endian
instead, and use it on the in-tree firmware instead of the loaded
firmware. It's a bit suboptimal but doesn't matter much right now
because we're about to remove the special cases for the in-tree version
anyway.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:26:39 +01:00
David Woodhouse
b8d21807a1 pcxhr: treat firmware data as const
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:26:09 +01:00
David Woodhouse
93a9c901c8 riptide: treat firmware data as const
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:26:07 +01:00
David Woodhouse
c2ba47d776 vx222: treat firmware data as const
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2008-07-10 14:26:06 +01:00
Takashi Iwai
44e051773d ALSA: aw2 - Fix Oops at initialization
The irq handler may be called before the proper initialization of hardware.
Call snd_aw2_saa7146_setup() before the irq handler registration.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-06-23 12:06:23 +02:00
Clemens Ladisch
9f9115d880 sound: oxygen: fix NULL pointer dereference when loading snd-oxygen
Check that model->control_filter is set before trying to call it.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-06-16 15:16:11 +02:00
Akio Idehara
7b1e8795eb [ALSA] hda - Fix "alc262_sony_unsol[]" hda_verb array
I think that hda_verb array must have "terminator (empty array)".
But alc262_sony_unsol[] does not have it.
And it causes gcc-4.3's buggy behavior
with snd_hda_sequence_write().

Signed-off-by: Akio Idehara <zbe64533@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-06-09 16:21:42 +02:00
Jaroslav Franek
868e15dbd2 sound: emu10k1 - fix system hang with Audigy2 ZS Notebook PCMCIA card
When the Linux kernel is compiled with CONFIG_DEBUG_SHIRQ=y,
the Soundblaster Audigy2 ZS Notebook PCMCIA card causes the
system hang during boot (udev stage) or when the card is hot-plug.
The CONFIG_DEBUG_SHIRQ flag is by default 'y' with all Fedora
kernels since 2.6.23. The problem was reported as
https://bugzilla.redhat.com/show_bug.cgi?id=326411

The issue was hunted down to the snd_emu10k1_create() routine:

/* pseudo-code */
snd_emu10k1_create(...) {
	...
	request_irq(... IRQF_SHARED ...) {
		register the irq handler
		#ifdef CONFIG_DEBUG_SHIRQ
		call the irq handler: snd_emu10k1_interrupt() {
			poll I/O port   // <---- !! system hangs
			...
		}
		#endif
	}
	...
	snd_emu10k1_cardbus_init(...) {
		initialize I/O ports
	}
	...
}

The early access to I/O port in the interrupt handler causes
the freeze. Obviously it is necessary to init the I/O ports
before accessing them. This patch moves the registration of
the irq handler after the initialization of the I/O ports.

Signed-off-by: Jaroslav Franek <jarin.franek@post.cz>
Acked-by: James Courtier-Dutton <James@superbug.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-06-06 11:16:06 +02:00
Tony Vroon
378bd6a521 [ALSA] hda - COMPAL IFL90/JFL-92 laptop quirk
Use quirk table to assign ALC268_TOSHIBA to COMPAL IFL90/JFL-92 laptops.
No analog output on autoprobe.

Signed-off-by: Tony Vroon <tony@linx.net>
Tested-by: Guri <gurashka@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-06-04 12:12:35 +02:00
Takashi Iwai
07bc76dfa1 [ALSA] hda - Fix resume of auto-config mode with Realtek codecs
The auto-config mode of Realtek ALC codecs has a bug since 2.6.25
that it cannot resume properly.  The problem was the wrong assignment
of init_hook that overrides the whole initialization.

Relevant bug reports:
	http://bugzilla.kernel.org/show_bug.cgi?id=10662
	https://bugzilla.novell.com/show_bug.cgi?id=385473

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-06-03 14:56:53 +02:00
Takashi Iwai
79d06432a2 [ALSA] hda - Fix model for LG LS75 laptop
Set the proper model for LG LS75 with CM9880 codec.
See ALSA bug#2105:
	https://bugtrack.alsa-project.org/alsa-bug/view.php?id=2105

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-30 16:56:00 +02:00
Takashi Iwai
269ef19caa [ALSA] hda - Fix mic input on HP2133
The mic pins are wrongly assigned on AD1884A mobile model.
The mic handling is fixed for the automatic mic selection, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-30 16:22:10 +02:00
Takashi Iwai
e48d6d97bb [ALSA] ac97 - Fix ASUS A9T laptop output
ASUS A9T laptop uses line-out pin as the real front-output while
other devices use it as the surround.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-30 16:20:42 +02:00
Mauro Carvalho Chehab
587755f1f6 [ALSA] hda - Fix capture mute Widget for stac9250/9251
Fix capture mute widget for STAC9250/9251 codecs.  The widget 0x09
has no mute but 0x14 does actually.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-05-25 18:21:18 +02:00
Travis Place
97ec710cab [ALSA] hda - Added support for Foxconn P35AX-S mainboard
Added IDs for the Foxconn P35AX-S mainboard to patch_realtek.c, so
that ALC883_6ST_DIG is used by default.

Signed-off-by: Travis Place <wishie@wishie.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-24 18:23:57 +02:00
Takashi Iwai
20a3a05dd6 [ALSA] hda - Fix COEF and EAPD in ALC889 auto-configuration mode
Fix the missing COEF and EAPD initialization in ALC889 auto-configuration
mode.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-24 18:23:49 +02:00
Takashi Iwai
bc9b56238e [ALSA] hda - Fix noise on VT1708 codec
We get quite noisy output on the right channel on VT1708 codec
when 24bit samples are used.  Suppress the 24bit support until any
real fix is found.
	https://bugzilla.novell.com/show_bug.cgi?id=390473

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-24 18:23:35 +02:00
Travis Place
b9e16bc548 [ALSA] hda - Add model for ASUS P5K-E/WIFI-AP
Added a config table entry for the ASUS P5K-E/WIFI-AP mainboard (ID
1043:8227) to use AD1988_6STACK_DIG

Signed-off-by: Travis Place <wishie@wishie.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-24 18:23:26 +02:00
Travis Place
186c3117f8 [ALSA] hda - Fix ASUS P5GD1 model
Corrected the model assignment for the ASUS P5GD1 w/SPDIF after reports of
surround sound not being possible.

Signed-off-by: Travis Place <wishie@wishie.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-20 11:56:40 +02:00
Takashi Iwai
ebc7a40663 [ALSA] hda - Fix ALC262 fujitsu model
Fixed the speaker auto-mute with two laptop and docking headphones.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Tony Vroon <tony@linx.net>
2008-05-20 11:56:33 +02:00
Takashi Iwai
2e75d050e4 [ALSA] ac97 - Add a workaround for broken quirk for VT1617A codec
On boards with VT1617A codec, the sound disappears suddenly.
This looks like a problem with HPE-bit control that is supposed to be
set in patch_vt1617a().  However, on such problematic hardwares, the
bit is actually reset mysteriously.

The patch adds a workaround for the wrong quirk.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-05 14:12:08 +02:00
Jacek Luczak
564c5bead4 [ALSA] Revert migration to alc_set_pin_output() in alc861_auto_set_output_and_unmute()
Change done by:
        commit f6c7e5461e
        [ALSA] hda-codec - Fix auto-configuration of Realtek codecs
broke sound on ALC861 Analog.

Signed-off-by: Jacek Luczak <luczak.jacek@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-05 14:12:08 +02:00
Takashi Iwai
20686c2437 [ALSA] fm801 - Fix kconfig dependency mess of fm801-tea575x
FM801-tea575x tuner has a reverse selection to V4L1 and this causes
nasty dependency problems.

The patch simplifies the dependency with a normal
"depends on VIDEO_V4L1".  This decreases the usability but fixes bugs,
yeah.  If any better feature like "requires" is introduced to kbuild
in future, we'll be able to switch it...

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-05 14:12:08 +02:00
Takashi Iwai
7bd3c0f73c [ALSA] hda - Support IDT 92HD206 codec
Added the support for IDT 92HD206 codec chip.
It's compatible with STAC927x.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-05-05 14:12:07 +02:00
Takashi Iwai
df99cd334e [ALSA] hda - Add support of Medion RIM 2150
Added the support of Medion RIM 2150 laptop with ALC880 codec.
ALSA bug#3708:
	https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3708

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-29 19:01:57 +02:00
Takashi Iwai
7f70f046af [ALSA] ice1724 - Enable watermarks
Enable watermarks settings (previously commented out) for MPU RX/TX.
Otherwise irqs aren't issued properly.

Tested-by: Pavel Hofman <pavel.hofman@insite.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-29 19:01:56 +02:00
Takashi Iwai
df7e3fdf83 [ALSA] Add MPU401_INFO_NO_ACK bitflag
Added MPU401_INFO_NO_ACK bitflag to ignore the ACK check for UART
commands.  VT172x doesn't handle ACK commands, for example.

Tested-by: Pavel Hofman <pavel.hofman@insite.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-29 19:01:56 +02:00
Takashi Iwai
3a841d519f [ALSA] ice1724 - Fix IRQ lock-up with MPU access
The sound boards with VT1724 and compatible chips may lock up when
MPU401 is accessed together with the PCM streaming.
This patch fixes the problem.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:38:25 +02:00
Takashi Iwai
05808ecc45 [ALSA] hda - Fix Thinkpad X300 digital mic
TP X300 digital mic requires additional init verbs with magic COEFs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:42 +02:00
Takashi Iwai
a0b8f7d89b [ALSA] hda - Fix model for Acer Aspire 5720z
Set the proper model=acer for Acer Aspire 5720z with ALC268 codec.
ALSA bug#3550:
	https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3550

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:42 +02:00
Takashi Iwai
ebf029da38 [ALSA] Fix possible races at free_irq in PCI drivers
The irq handler of PCI drivers must be released before releasing other
resources since the handler for a shared irq can be still called and
may access the freed resource again.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:41 +02:00
Peter Lienig
d80fd0935e [ALSA] ice1712 - Add Terrasoniq TS88 support
Added the support of Terrasonq TS88.

Signed-off-by: Peter Lienig <lienig@rheinmetall-de.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:40 +02:00
Jeff Garzik
f000fd8093 [ALSA] Fix synchronize_irq() bugs, redundancies
free_irq() calls synchronize_irq() for you, so there is no need for
drivers to manually do the same thing (again).  Thus, calls where
sync-irq immediately precedes free-irq can be simplified.

However, during this audit several bugs were noticed, where free-irq is
preceded by a "irq >= 0" check... but the sync-irq call is not covered
by the same check.

So, where sync-irq could not be eliminated completely, the missing check
was added.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:40 +02:00
Karsten Wiese
8a87c9cf99 [ALSA] Audiophile 192: Fix ad converter initialization
Correct some arguments in calls to snd_ice1712_gpio_write_bits() from
ap192_set_rate_val().

Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:40 +02:00
Karsten Wiese
775c199e6a [ALSA] Don't set gpio mask register in snd_ice1712_gpio_write_bits()
Some calls to snd_ice1712_gpio_write() go wrong, if
snd_ice1712_gpio_write_bits() ran before and changed the gpio mask register.
Read the actual gpio value and combine it with the to be set bits in the cpu
instead.

Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:39 +02:00
Karsten Wiese
988f066477 [ALSA] ice1724.c: toggle "chip reset" and "eeprom based setup" sequence
Let "chip reset" become first. Increasement of the "chip reset" related timeout
leads to correctly read eeprom's contents here.

Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:39 +02:00
Takashi Iwai
7943a8aba9 [ALSA] hda - Avoid unexpected breakage with ALC889A hack
The last ALC889A hack may break on some devices with certain model presets
since patch_alc*() have different model tables.  So, now it's handled in
the original patch_alc882() but fly to patch_alc883() in model=auto
appropriately.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:37 +02:00
Takashi Iwai
cb308f97ae [ALSA] hda - Fix ALC889A codec support
ALC889A is recognized ALC885/ALC882 but it's actually closer to
ALC888/ALC883.

Cc: Kasper Sandberg <lkml@metanurb.dk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:37 +02:00
Matthew Ranostay
7c2ba97b8a [ALSA] hda: Add 5.1 support for second headphone jack
Several 92hd7xxx and STAC9228 laptops have multiple headphone jacks,
the second headphone jack should be used for the 5.1 surround sound.
Add support for 'Headphone as Line Out' switch, which allows it be used
in 5.1 surround sound.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:37 +02:00
Clemens Ladisch
4972a177fe [ALSA] oxygen: generalize DAC volume TLV handling
Add a pointer for DAC volume TLV data to the model structure so that the
model driver do not need to manually assign it in their control filter.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:37 +02:00
Clemens Ladisch
e983532e44 [ALSA] oxygen: mute by default
Initialize the playback volume controls as being muted and having
minimal volume.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:37 +02:00
Clemens Ladisch
193e813814 [ALSA] oxygen: generalize handling of DAC volume limits
Add fields for the DAC volume limits to the module structure so that
model drivers do not need to install their own control info handlers.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:36 +02:00
Clemens Ladisch
0c0e6daf14 [ALSA] hifier: remove empty hifier_mixer_init()
The empty hifier_mixer_init() function is useless; remove it.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:36 +02:00
Takashi Iwai
3adb8abc70 [ALSA] hda - Add support of AD1989A/AD1989B
Added the support of AD1989A and AD1989B codecs.
These codecs can have multiple SPDIF devices, but currently we handle
only one SPDIF.  If any real devices with two SPDIF interfaces (likely
one for SPDIF and one for HDMI), we'll fix this rightly.

Otherwise, these codecs are pretty similar with AD1988.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24 12:00:36 +02:00