Commit graph

2434 commits

Author SHA1 Message Date
Mariusz Kozlowski 2469049e72 [ALSA] sound: snd_register_device_for_dev fix
snd_register_device_for_dev() can oops when device_create() returns
ERR_PTR(err).
Scenario:
preg->dev = device_create(...); /* fails */
if (preg->dev) /* contains ERR_PTR(err) */
	dev_set_drvdata(preg->dev, private_data);
and dev_set_drvdata() looks like this:
static inline void
dev_set_drvdata (struct device *dev, void *data)
{
	dev->driver_data = data; <--- boom
}
This patch should prevent that.

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
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>
2007-10-16 16:51:06 +02:00
James Courtier-Dutton 1e74190bc0 [ALSA] snd-usb-audio: Add basic support for E-Mu USB devices.
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:51:06 +02:00
Andrew Morton 6eda7cf184 [ALSA] git-alsa kconfig fix
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>
2007-10-16 16:51:04 +02:00
Randy Dunlap 213e84ec71 [ALSA] sound/hda: fix help text
Fix hda help text typo.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
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>
2007-10-16 16:51:03 +02:00
Peer Chen c107106767 [ALSA] alsa: Add the MCP79 support to hda_intel driver
Add the MCP79 support to hda driver.
The patch base on kernel 2.6.23-rc7

Signed-off-by: Peer Chen <peerchen@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:51:02 +02:00
Takashi Iwai 4eb4550ab3 [ALSA] Workaround for invalid signature read of CS8427
Reading the signature of CS8427 over SPI/I2C fails on some devices
by mysterious reason.  In most cases, however, it succeeds at the
sequential read.  So, let's give a second chance to check the signature
again.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:51:01 +02:00
Kailang Yang ac8842a039 [ALSA] hda-codec - Missing support ASUS A7J
Added the missing support for ASUS A7J [0x1043 0x1243]

Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:51:00 +02:00
Kailang Yang b60dd394f8 [ALSA] hda-codec - Fix ALC662 codec support
* Fixed ALC662 init verbs (wrong NIDs)
* Fixed ALC662 auto model issue (wrong DAC index)

Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:59 +02:00
Trent Piepho fe1b5e874d [ALSA] ad1848: simplify MCE down code
The polling loop to check for ACI to go down was more convoluted than it
needed to be.  New loop should be more efficient and it is a lot simpler.  The
old loop checked for a timeout before checking for ACI down, which could
result in an erroneous timeout.  It's only a failure if the timeout expires
_and_ ACI is still high.  There is nothing wrong with the timeout expiring
while the task is sleeping if ACI went low.
A polling loop to check for the device to leaving INIT mode is removed.  The
device must have already left init for the previous ACI loop to have finished.
Acked-by: Rene Herman <rene.herman@gmail.com>

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:59 +02:00
Trent Piepho b438f817b1 [ALSA] ad1848: Fix msleep while atomic
Simplest fix.
Acked-by: Rene Herman <rene.herman@gmail.com>

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:58 +02:00
Keita Maehara 43115f58e2 [ALSA] ac97: YMF743 missing controls support (2/2)
These patches enable a few YMF743 controls (Tone/3D/IEC958) that won't
be detected with the current version of ALSA.
The second one contains following changes:
- A chip-specific SPDIF support for YMF743 (It doesn't have AC97
 standard SPDIF registers seen on YMF753).
- The implementation for 'IEC958 Playback Source' and 'IEC958 Mute'
 are identical to the ones for YMF753. But there is no 'IEC958 Output
 Pin' for YMF743.

Signed-off-by: Keita Maehara <maehara@debian.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:57 +02:00
Keita Maehara 13043984e7 [ALSA] ac97: YMF743 missing controls support (1/2)
These patches enable some YMF743 controls (Tone/3D/IEC958) that won't
be detected with the current version of ALSA.
The first one contains only cosmetic changes to share a few
YMF753-specific symbols with YMF743.

Signed-off-by: Keita Maehara <maehara@debian.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:56 +02:00
Rene Herman c929e5ef4f [ALSA] schedule_timeout() fix for core/seq/seq_instr.c
Replace schedule_timeout() with schedule_timeout_uninterruptible()
to avoid signals in loop.

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>
2007-10-16 16:50:55 +02:00
Rene Herman d86d01935a [ALSA] alsa-kernel: schedule_timeout() fixes
Fix schedule_timeout() use in alsa-kernel. Mostly just
	schedule_timeout(1) --> schedule_timeout_uninterruptible(1)
The wavefront_synth one fixes the surrounding loop as well. In ymfpci_main,
delete a superfluous set_current_state() and in soc/soc-dapm.c replace an
_interruptible with _uninterruptible in some debug code; it's not waiting
for signals.

Signed-off-by: Rene Herman <rene.herman>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:54 +02:00
Matthew Ranostay b44ef2f154 [ALSA] hda: More subsystem id BIOS changes
More laptop BIOS changes the subsystem id for STAC9205 cards if the
microphone is toggled on/off in the settings.
The patch removes the old STAC_9205_M43xx and use STAC_9205_DELL_M43.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:53 +02:00
Takashi Iwai 7a5a27cfae [ALSA] Add default values for power-saving as Kconfig options
Added CONFIG_SND_AC97_POWER_SAVE_DEFAULT and CONFIG_SND_HDA_POWER_SAVE_DEFAULT
Kconfig options as the default values for power-saving mode of AC97 and
HD-audio drivers, respectively.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:51 +02:00
Krzysztof Helt ec1e794932 [ALSA] sscape: support for audio part of VIVO cards
This patch adds support for audio part of the Ensoniq
SoundScape VIVO cards. The MIDI part is not supported.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:51 +02:00
Takashi Iwai 1ea73412b2 [ALSA] opti9xx: adjust OPL3 FM resource value
The OPTi ISA-PnP chips advertise their OPL4 base at 0x380 (to 0x3f0) through
pnp and put their on-chip OPL3 at +8. The driver assumes the provided
value is the ALBase (OPL3 address) though and checks for an OPL4 at -8,
which means that simply adding 8 to the pnp provides value works to fix
detection of both OPL3 and OPL4.
Problem spotted on 931 and 933 by Krzysztof Helt and confirmed on 924 and
925 (together all OPTi ISA-PnP chips) by me.
Signed-off-by; Rene Herman <rene.herman@gmail.com>
Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl>

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:49 +02:00
Krzysztof Helt 4996bca985 [ALSA] sscape: driver extension to 2nd DMA and WSS port
This patch adds second DMA channel and WSS port settings
to the sscape driver. Also, it adds internal card type setting.
The Ensoniq SoundScape VIVO PnP id is added but not handled
yet.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:47 +02:00
Daniel Mack ad1e34b565 [ALSA] caiaq - support for Native Instrument's RigKontrol3
This patch adds support for Native Instrument's upcoming
RigKontrol3 sound interface.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:46 +02:00
Krzysztof Helt 1cf0bc7e73 [ALSA] sc6000: 2 minor fixes
This patch zeroes buffer for the card name and
fixes incorrect jump in the probe function.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:45 +02:00
Matthias Kaehlcke c2d7051ed1 [ALSA] Routines for effect processor FX8010: Use list_for_each_entry
Routines for effect processor FX8010: Use list_for_each_entry instead
of list_for_each

Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:44 +02:00
Matthias Kaehlcke 33206e862e [ALSA] Intel HD Audio: Use list_for_each_entry(_safe)
Intel HD Audio: Use list_for_each_entry(_safe) instead of
list_for_each(_safe)

Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:42 +02:00
Matthias Kaehlcke 50f47ff1b9 [ALSA] ESS Maestro 1/2/2E Sound Card: Use list_for_each_entry
ESS Maestro 1/2/2E Sound Card: Use list_for_each_entry instead of
list_for_each

Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:41 +02:00
Krzysztof Helt f79415207e [ALSA] ad1848_lib: waiting loops done after cs4231_lib
This patch fixes ad1848_lib waiting loops to be the same as in the cs4231_lib.
Acked-by: Rene Herman <rene.herman@gmail.com>

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:40 +02:00
Andrew Morton 3a5bdee5fa [ALSA] sc6000 build fix
sound/isa/sc6000.c: In function 'sc6000_dsp_reset':
sound/isa/sc6000.c:270: error: implicit declaration of function 'udelay'        sound/isa/sc6000.c: In function 'sc6000_init_mss':
sound/isa/sc6000.c:327: error: implicit declaration of function 'msleep'
{standard input}: Assembler messages:

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>
2007-10-16 16:50:39 +02:00
Giuliano Pochini 22d3a20030 [ALSA] echoaudio - Add barrier() to prevent compiler optimization
This patch adds a barrier() to prevent the compiler from
moving the read outside of the loop. It also fixes a comment.

Signed-off-by: Giuliano Pochini <pochini@shiny.it>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:38 +02:00
Tobin Davis 11370ee2c1 [ALSA] hda-codec: Add two new systems to ALC883
This patch adds support for the Asus M2A-VM HDMI and Abit IP35-PRO
motherboards.

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>
2007-10-16 16:50:38 +02:00
Tobin Davis b201131c43 [ALSA] hda-codec: Add 4 channel support for Realtek ALC883
I had a request for a 4 channel mode.  This should implement front
and surround outputs, leaving the 3rd plug for mic input.

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>
2007-10-16 16:50:37 +02:00
Clemens Ladisch c36fd8c3cd [ALSA] cmipci: fix distortion on rear channels
When playing multichannel data, the rear channels can get distorted if
the last sample of the last played stereo stream was not zero.  To avoid
this, add a hack to play a few silence samples after the stream is
stopped.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:36 +02:00
Clemens Ladisch ebe9e289d8 [ALSA] cmipci: clean up struct cmipci_pcm
Remove some unused field from the struct cmipci_pcm, and change the type
of some others to save some space.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:35 +02:00
Clemens Ladisch 0f28eca32b [ALSA] cmipci: fix lookup of double rates
When using one of the double sampling rates, use half the sample rate to
look up in the rates[] table, otherwise we stumble over the BUG().

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:34 +02:00
Clemens Ladisch 8ffbc01e2c [ALSA] cmipci: reorganize set_dac_channels()
By reorganizing the code that sets the CHB3DxC bits we can not only
simplify this code but also fix the bug where the CHB3D8C bit was not
reset when playing a stereo stream after a 7.1 stream.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:33 +02:00
Clemens Ladisch 35add1c295 [ALSA] cmipci: remove 5.0 format
Disallow playback of five channels because the hardware does not support
it (or nobody knows how to do it).

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:32 +02:00
Clemens Ladisch 22a22f5aac [ALSA] cmipci: allow 96 kHz playback on non-multichannel rear
Move the code that enables 96 kHz out of the if() that checks for
availability of both DMA channels so that it is enabled even when
another stream is playing on the front channels.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:31 +02:00
Clemens Ladisch 4ee7271718 [ALSA] cmipci: initialize 0x90 registers
Initialize the registers at 0x90 and 0x91 with some undocumented values.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:30 +02:00
Clemens Ladisch 3042ef7520 [ALSA] cmipci: reset the chip when initializing
When the chip is initialized, reset it.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:30 +02:00
Clemens Ladisch 54d030cc40 [ALSA] cmipci: show more registers in proc file
Show a dump of all registers in the 0x00-0x27 and 0x90-0x93 ranges in
the 'cmipci' proc file.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:29 +02:00
Clemens Ladisch a839a33d85 [ALSA] cmipci: update register definitions
Update comments for many register symbols, add some new register
symbols, and rename a few ones.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:28 +02:00
Clemens Ladisch 6935e68877 [ALSA] cmipci: fix version 37 detection
Use the proper value for the bit that identifies chip version 37.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:27 +02:00
Clemens Ladisch c818e0a152 [ALSA] bt87x: fix detection of generic boards
Add an 'unknown' board type so that it is possible to differentiate
between unknown and generic boards.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:26 +02:00
Clemens Ladisch 2ea547dcdd [ALSA] usb-audio: add Ozone Academic support
Add a quirk to detect the MIDI port on the M-Audio Ozone Academic.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:26 +02:00
Jaroslav Kysela 5683bc6e9e [ALSA] SC6000 driver - add HAS_IOPORT dependency
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:24 +02:00
Takashi Iwai f189e14cc4 [ALSA] echoaudio - Remove superfluous volatile prefix
Remove superfluous volatile prefix in the communication struct definition.
This eventually fixes the compile warnings with the recent gcc, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:23 +02:00
Krzysztof Helt e307258d5b [ALSA] Gallant SC-6000 driver
This is port of the Gallant SC-6000 driver from the OSS aedsp16 driver.
This card was also sold as AudioExcel DSP 16 and Zoltrix AV302 (Audio
Plus True 16).

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:21 +02:00
Danny Tholen e8a7f136f5 [ALSA] hda-intel - Improve HD-audio codec probing robustness
When modem is disabled in the BIOS, detection of the number of codecs
always fails after booting if STATESTS is not cleared first.
This patch fixes this problem and also adds an error check in a place
where a read error would lead to a very large number of pointless loops.

Signed-off-by: Danny Tholen <obiwan@mailmij.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:20 +02:00
Takashi Iwai 768d8c7df8 [ALSA] pcxhr - Fix trigger start with non-linked streams
The non-linked streams couldn't be started properly due to missing
setting of stream->status.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:50:18 +02:00
Timur Tabi bfc4e86166 [ALSA] Fix CS4270 volume control and optimize I2C operations
The volume control for the CS4270 ASoC driver was inverted - raising the
volume level with alsamixer would decrease the actual volume.
This patch also improves the performance of the I2C code (used to change
register settings) by only performing an I2C write if the new value is
different from the value that's in the register cache.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:49:30 +02:00
Krzysztof Helt 23d4635ed3 [ALSA] cs4231-lib: improved waiting after mce_down
This patch replaces long msleeps in waiting loops
with schedule_timeout() calls.

Signed-off-by: Krzysztof Helt <krzysztof.h1 at wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 16:49:29 +02:00
Rene Herman d44df2d0f2 [ALSA] ad1848/cs4231: replace commented out debug code with snd-printd{,d}
While I'm at it another 'while I'm there' -- replace commented out debug
code with snd-printd{,d}.

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>
2007-10-16 16:49:26 +02:00