Changes v1.0.14 v1.0.15 detail

From AlsaProject
Jump to: navigation, search

Contents

Changes v1.0.14 v1.0.15

Detailed changelog between 1.0.14 and 1.0.15 releases

alsa-driver

Sound Core

- 2.6.22 is supported as well.
- Create hacked autoconf.h from the kernel build tree
Fix configure script to create the hacked linux/autoconf.h from the
kernel _build_ tree first before kernel _source_ tree.
- add empty kthread wrappers
Add empty wrappers for the kthread functions to allow compilation to
succeed. There is no implementation, so one cannot actually use them.
- release 1.0.15rc3
- Remove gzipped file in install-modules
The recent system can handle *.gz files. make install-modules should
remove such files, too, for avoiding the confliction.
ALSA bug#3318
- Add SPI devices to ALSA Kconfig and Makefile
This patch adds SPI devices in the ALSA diretory, including the Kconfig and
Makefile.
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
- pc-speaker update
- Ported to the hrtimers API
- Added the needed locking
- Made the "struct pcsp_chip" statically allocated
(you can't have more than one pc-speaker anyway)
- Removed the hackish speed detection and use loops_per_jiffy instead
- Lindented
- Replaced "if ((err = func()) < 0)"
with "err = func(); if (err < 0)"
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
- hda-intel: prevent build on old kernels
gcc 2.x (required for 2.2 kernels) does not support flexible array
members like in struct hda_bind_ctls, so we have to disable
snd-hda-intel on earlier kernels.
The real version requirement is "2.4", but mod-deps does not handle
version numbers before 2.6 correctly.
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- release 1.0.15
- Disable link with ac97_bus driver for older kernels
The older kernels have no proper support of ac97_bus driver, so let's
simply disable it.
- release 1.0.15rc1
- [S390] Kconfig: menus with depends on HAS_IOMEM.
Add "depends on HAS_IOMEM" to a number of menus to make them
disappear for s390 which does not have I/O memory.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
- Fix for CONFIG_HAS_DMA
The new kconfig CONFIG_HAS_DMA isn't defined in older kernels.
Make it always y for them.
- Support xxx-y style in Makefile for 2.2/2.4 kernels
Support the composite objects with xxx-y not only xxx-obj.
- Avoid SOC for 2.6.9 or older kernels
2.6.9 or older kernels have problems to build soc drivers.
- Some hacks to fix build on RHEL4/CentOS4
Dirty hacks to fix build on RHEL4/CentOS4 (hopefully).
- release 1.0.15rc2
- add CONFIG_HAS_IOPORT check for SC6000 ISA driver
- PC-Speaker driver update
- PCSP_HOOK is no longer needed, removed.
The driver fully moved to hrtimers and the kernel patch is now optional.
- Depend on EXPERIMENTAL in preparation to submit this upstream.
- Remove the built-in software volume control in favour of softvol.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>

ALSA Core

- unregister_chrdev(): ignore the return value
unregister_chrdev() always returns 0. There is no need to check the return
value.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Regenerate the patch
Regenerated for the change removing the return value of unregister_chrdev().
- Add workaround for pci->revision
The new change referring to pci->revision broke the build with the
kernels older than 2.6.23. A wrapper snd_pci_reivions() is added for
covering this, and the patches are made for the codes using pci->revision.
- hda-intel - Add hwdep interface
Added a hwdep interface for each codec (enabled per kconfig).
This interface can be used for reading/writing HD-audio verbs
and other purposes as future extensions.
- add empty kthread wrappers
Add empty wrappers for the kthread functions to allow compilation to
succeed. There is no implementation, so one cannot actually use them.
- change return type of pci_save/restore_state wrappers
Change the return type of pci_save/restore_state() from void to int
because it is actually checked in a driver.
- Add a workaround to make snd-page-alloc independent from snd
Because of unconditional inclusion of autoconf.h, snd-page-alloc became
dependent upon snd module accidentally again.
This hack avoids the dependency of snd_hidden_*alloc.
- misc_driver: protect PM code with CONFIG_PM
Do not compile snd_device_pm_callback, snd_isa_platform_suspend and
snd_isa_platform_resume when CONFIG_PM is not defined because the
suspend and resume callbacks are not known to the compiler in this case.
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- linux 2.6 sync - spelling/typo fixes
- Fix build error without CONFIG_HAS_DMA
The recent change of include/asm-generic/dma-mapping-broken.h breaks
the build without CONFIG_HAS_DMA. This patch is an ad hoc fix.
- Clean up Makefile
Clean up Makefile using xxx-$(CONFIG_XXX) style instead of
ifeq(CONFIG_XXX,y).
- Fix the wrong kfree error with kmemdup
We forgot a wrapper for kmemdup with memory debug option.
It resulted in the wrong kfree message (and memory leaks).
- 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>
- Regenerate sound.patch
Regenerated sound.patch for the last update of sound.c to check the
return value of device_create().
- Fix isa driver wrapper for 2.2/2.4 kernels
The probe with isa driver wrapper doesn't work properly due to an obsolete
check of platform_get_drvdata(). Now removed it.

SoC PXA2xx Core

- [ARM] 4527/1: pxa: fix pxa27x ac97 cold reset in ASoC due to CKEN change
due to CKEN_xxx definition and pxa_set_cken() change, the pxa27x
ac97 cold reset is broken in ASoC, fixed to use bit index instead
of bit mask
Signed-off-by: eric miao <eric.y.miao@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- [ARM] 4458/1: pxa: Fix CKEN usage and hence fix pxa suspend/resume
The PXA CKEN changes broken syspend/resume on the pxa27x. This patch
corrects the problem and fixes another couple of bad references.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- fix file specification in comments
Many files include the filename at the beginning, serveral used a wrong one.
Signed-off-by: Uwe Kleine-Kig <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>

Control Midlevel

- Add helper functions for frequently used callbacks
Added helper functions for frequenty used callbacks:
snd_ctl_boolean_mono_info() and snd_ctl_boolean_stereo_info()
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- unexport snd_ctl_elem_{read,write}
snd_ctl_elem_{read,write} no longer have any modular users
Signed-off-by: Adrian Bunk <bunk@kernel.org>
- Some hacks to fix build on RHEL4/CentOS4
Dirty hacks to fix build on RHEL4/CentOS4 (hopefully).
- Fix a typo
Fix a copy-and-paste error, snd_ctl_elem_write should be exported
instead of read.

PCM Midlevel

- Fix substream to check in PCM drain
The check of a substream in snd_pcm_drain() might not be always correct
since runtime can point a different substream (although the PCM state
of each linked substream should be same, in theory).
This patch fixes it.
- pcm: merge rates[] from pcm_misc.c and pcm_native.c
Merge the rates[] arrays from pcm_misc.c and pcm_native.c because they
are both the same.
- pcm: add snd_pcm_rate_to_rate_bit() helper
Add a snd_pcm_rate_to_rate_bit() function to factor out common code used
by several drivers.
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- Fix 'discards qualifiers' compile warnings in pcm.h
Fixed cast messes in pcm.h.
include/sound/pcm.h: In function 342200230hw_param_interval_c342200231:
include/sound/pcm.h:800: warning: passing argument 1 of 342200230hw_para

m_interval342200231 discards qualifiers from pointer target type

Simply redefine the inline functions again for const pointers.
- Kill useless volatile in pcm.h
The volatile prefix is just useless there. Let's kill them, and then
gcc will be happier, too.
sound/acore/pcm.c:867: warning: passing argument 1 of 342200230__constant

_c_and_count_memset342200231 discards qualifiers from pointer target type

- Support 3-bytes 24bit format in PCM OSS emulation
Add the support of 3-bytes 24bit formats in PCM OSS emulation.
Also removed snd_pcm_build_linear_format() function. It's exported
just for OSS emulation, and now the code was changed without calling
this function.

RawMidi Midlevel

- Clean up duplicate includes in sound/core/
This patch cleans up duplicate includes in
sound/core/
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>

Timer Midlevel

- timer: check for incorrect device state in non-debug compiles, too
Convert the snd_assert()s to simple if()s to prevent crashes when one of
the timer instance ioctls is called before the file is bound to a timer
device.

/arm/Makefile

- Move CONFIG_H3600_HAL codes to sa11xx-uda1341.patch
Move CONFIG_H3600_HAL codes to sa11xx-uda1341.patch out of the upstream
code.

/i2c/Makefile

- Clean up Makefile
Clean up Makefile using xxx-$(CONFIG_XXX) style instead of
ifeq(CONFIG_XXX,y).

/isa/Makefile

- 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>

/soc/codecs/Makefile

- ASoC CS4270 codec device driver
This patch adds ALSA SoC support for the Cirrus Logic CS4270 codec. The
following features are suppored:
1) Stand-alone and software mode
2) Software mode via I2C only
3) Master mode, not Slave
4) No power management
Signed-off-by: Timur Tabi <timur@freescale.com>

/spi/Makefile

- Add SPI devices to ALSA Kconfig and Makefile
This patch adds SPI devices in the ALSA diretory, including the Kconfig and
Makefile.
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
- ALSA sound driver for the AT73C213 DAC using Atmel SSC driver
This patch adds support for the AT73C213 DAC using the misc Atmel SSC driver
in
I2S mode. The driver also requires a SPI to setup the registers and control
volume.
It has been tested with an AT32AP7000 on the ATSTK1000 development board. Th

e

driver should also work with any Atmel device with an SSC module supported b

y

the Atmel SSC driver (atmel-ssc).
The atmel-ssc driver is just submitted to the Linux kernel. Please see mail
thread http://lkml.org/lkml/2007/7/16/32
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>

AC97 Codec

- Use msecs_to_jiffies() in ac97_codec.c
Replace the direct calculation of jiffies with msecs_to_jiffies().
- Add missing static in ac97_codec.c
Added missing static to snd_ac97_restore_status() and
snd_ac97_restore_iec958() functions.
- Disable link with ac97_bus driver for older kernels
The older kernels have no proper support of ac97_bus driver, so let's
simply disable it.
- Add default values for power-saving as Kconfig options
Added CONFIG_SND_AC97_POWER_SAVE_DEFAULT and CONFIG_SND_HDA_POWER_SAVE_DEFAU

LT

Kconfig options as the default values for power-saving mode of AC97 and
HD-audio drivers, respectively.
- linux 2.6 sync - spelling/typo fixes
- ac97 - Suppress the reset of audio-codec from modem-codec at resume
On codec chips with both audio and modem functions (e.g. Conexant one),
performing AC97_RESET resets the whole registers. When both audio and
modem drivers are resumed at the same time, the modem one often is
resumed after the audio, and it results in the reset of audio registers
(ALSA bug#3333).
This patch fixes such a problem. Since the modem codec basically
doesn't need AC97_RESET, skip this initialization unless specified
as audio.
- 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>
- 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>

AC97 bus driver

- Fix build with older kernels
Include adriver.h wrapper for fixing the build of ac97_bus.c
with older kernels.

AD1848 driver

- isa libs Makefiles cleanup
This patch uses the Kconfig parameters SND_AD1848_LIB and
SND_CS4231_LIB instead of mentioning each driver that requires
the ad1848-lib or cs4231-lib separately in the Makefiles.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- Fix invalid schedule_timeout_interruptible()
Fixed the invalid use of schedule_timeout_interruptible() without
checking pending signals. Simply replaced with schedule_timeout().
Suggestions thanks to Jeff Garzik.
- ad1848: fix AD1848P macro
Consistent variable naming is a good thing, but let's be a little less
sneaky about enforcing it... ;-/
Signed-off-by: Rene Herman <rene.herman@gmail.com>
- ad1838/cs4231 - fix MCE timeout upon initial load
When the ad1848/cs2431 is first being initialized, auto-calibration may not
be set causing a timeout waiting for it in snd_ad1848/cs4231_mce_down().
This has no dire consequences other than an alarming printk, but since what
we need to wait for is for the calibration to _finish_, let's just check for
that instead.
The early chips need a slight delay (as commented -- 5 sample periods) to be
sure that _if_ calibration is going to happen, it has started when we check
While the CS4231A datasheet implies it'll happen immediately on downing MCE,
some testing is showing that there's a window there as well, so just do the
delay everywhere.
Thanks to Krysztof Helt for pinpointing this problem.
Signed-off-by: Rene Herman <rene.herman@gmail.com>
- ad1848: replace HZ calculus with msecs_to_jiffies()
If I'm not mistaken, any (new) use of HZ these days is considered a bug so
while I'm there...
Signed-off-by: Rene Herman <rene.herman@gmail.com>
- 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>
- ad1848_lib: waiting loops done after cs4231_lib
This patch fixes ad1848_lib waiting loops to be the same as in the cs4231_li

b.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Acked-by: Rene Herman <rene.herman@gmail.com>
- ad1848_lib: replace common delay loop by function
This patch replaces a common delay loop by a function.
It also uses ARRAY_SIZE macro for the rates table.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Acked-by: Rene Herman <rene.herman@gmail.com>
- ad1848: Fix msleep while atomic
Simplest fix.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Acked-by: Rene Herman <rene.herman@gmail.com>
- 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 finishe

d.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Acked-by: Rene Herman <rene.herman@gmail.com>

ALI5451 driver

- Add workaround for pci->revision
The new change referring to pci->revision broke the build with the
kernels older than 2.6.23. A wrapper snd_pci_reivions() is added for
covering this, and the patches are made for the codes using pci->revision.
- ali5451 warning fix
sound/pci/ali5451/ali5451.c: In function 'snd_ali_prepare':
sound/pci/ali5451/ali5451.c:716: warning: 'R2' may be used uninitialized in

this function

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- PCI: Change all drivers to use pci_device->revision
Instead of all drivers reading pci config space to get the revision
ID, they can now use the pci_device->revision member.
This exposes some issues where drivers where reading a word or a dword
for the revision number, and adding useless error-handling around the
read. Some drivers even just read it for no purpose of all.
In devices where the revision ID is being copied over and used in what
appears to be the equivalent of hotpath, I have left the copy code
and the cached copy as not to influence the driver's performance.
Compile tested with make all{yes,mod}config on x86_64 and i386.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Acked-by: Dave Jones <davej@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

ALSA sequencer

- seq_midi_event: fix encoding of data bytes after end of sysex
Create a new state ST_INVALID for the encoder to prevent data bytes at
the beginning of a stream or after a sysex message being interpreted as
note-off parameters.
- seq_midi_event: prevent running status after system messages
Reset the event type after encoding a system message to prevent any
following data bytes from being interpreted as data for a running status
system message, which is not allowed in MIDI.
- seq_midi_event: fix parsing of missing data bytes
Reorganize the encoder logic to prevent status bytes that appear where
data bytes are expected from being interpreted as data bytes.
- seq_midi_event: fix parsing of F9/FD bytes
Check for a valid event type when encoding a system real-time message to
prevent the bytes F9 or FD resulting in an empty sequencer message.
- some kmalloc/memset ->kzalloc (tree wide)
Signed-off-by: Yoann Padioleau <padator@wanadoo.fr>
- Fix invalid schedule_timeout_interruptible()
Fixed the invalid use of schedule_timeout_interruptible() without
checking pending signals. Simply replaced with schedule_timeout().
Suggestions thanks to Jeff Garzik.
- 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>

ALSA<-OSS emulation

- Remove ifdefs from OSS PCM emulation codes
Fix Makefile to compile files conditionally to CONFIG_SND_PCM_OSS_PLUGINS,
and remove unneeded ifdefs in these files.
- Simplify the format conversion in PCM OSS emulation
Simplify the format conversion code in PCM OSS emulation.
This patch also adds the support of 3bytes 24bit formats with linear
and mulaw, but they are not enabled in pcm_plugin.c yet.
- Support 3-bytes 24bit format in PCM OSS emulation
Add the support of 3-bytes 24bit formats in PCM OSS emulation.
Also removed snd_pcm_build_linear_format() function. It's exported
just for OSS emulation, and now the code was changed without calling
this function.
- Add new AFMT_* formats for OSS emulation
The recent OSS includes the support for 32bit and other formats, which
we already have, too. Let's define and map them.

ALSA<-OSS sequencer

- seq: resource leak fix and various code cleanups
This patch fixes:
1) a resource leak (CID: 1817)
2) various code cleanups
Signed-off-by: Eugene Teo <eugeneteo@kernel.sg>

ARM PXA2XX driver

- [ARM] 4458/1: pxa: Fix CKEN usage and hence fix pxa suspend/resume
The PXA CKEN changes broken syspend/resume on the pxa27x. This patch
corrects the problem and fixes another couple of bad references.
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

ATIIXP driver

- Add workaround for pci->revision
The new change referring to pci->revision broke the build with the
kernels older than 2.6.23. A wrapper snd_pci_reivions() is added for
covering this, and the patches are made for the codes using pci->revision.
- PCI: Change all drivers to use pci_device->revision
Instead of all drivers reading pci config space to get the revision
ID, they can now use the pci_device->revision member.
This exposes some issues where drivers where reading a word or a dword
for the revision number, and adding useless error-handling around the
read. Some drivers even just read it for no purpose of all.
In devices where the revision ID is being copied over and used in what
appears to be the equivalent of hotpath, I have left the copy code
and the cached copy as not to influence the driver's performance.
Compile tested with make all{yes,mod}config on x86_64 and i386.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Acked-by: Dave Jones <davej@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

ATIIXP-modem driver

- Add workaround for pci->revision
The new change referring to pci->revision broke the build with the
kernels older than 2.6.23. A wrapper snd_pci_reivions() is added for
covering this, and the patches are made for the codes using pci->revision.
- PCI: Change all drivers to use pci_device->revision
Instead of all drivers reading pci config space to get the revision
ID, they can now use the pci_device->revision member.
This exposes some issues where drivers where reading a word or a dword
for the revision number, and adding useless error-handling around the
read. Some drivers even just read it for no purpose of all.
In devices where the revision ID is being copied over and used in what
appears to be the equivalent of hotpath, I have left the copy code
and the cached copy as not to influence the driver's performance.
Compile tested with make all{yes,mod}config on x86_64 and i386.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Acked-by: Dave Jones <davej@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Apple Onboard Audio driver

- Fix tas_suspend/resume build warning
sound/aoa/codecs/snd-aoa-codec-tas.c:750: warning: 'tas_suspend' defined but
not used
sound/aoa/codecs/snd-aoa-codec-tas.c:760: warning: 'tas_resume' defined but

not used

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
- Clean up with common snd_ctl_boolean_*_info callbacks
Clean up codes using the new common snd_ctl_boolean_*_info() callbacks.
- Driver core: change add_uevent_var to use a struct
This changes the uevent buffer functions to use a struct instead of a
long list of parameters. It does no longer require the caller to do the
proper buffer termination and size accounting, which is currently wrong
in some places. It fixes a known bug where parts of the uevent
environment are overwritten because of wrong index calculations.
Many thanks to Mathieu Desnoyers for finding bugs and improving the
error handling.
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- snd-aoa-codec-onyx: fix typo
Parse error in ifdef or bad use of macro.
Signed-off-by: Yoann Padioleau <padator@wanadoo.fr>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Asihpi driver

- remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync()
Set the SNDRV_PCM_INFO_SYNC_START flag and the substream's sync ID
(only) if the substream actually can be linked to another one.
- Build fix for 2.6.23-rc1
Build fix for 2.6.23-rc1, where kmem_cache_create() API was changed.
- check for linked substreams of different cards
It is possible to have linked substreams that belong to different cards
and/or different drivers. This patch changes some drivers to make sure
that they do not incorrectly try to handle substreams of a different
card.
- Fix build with 2.6.23-rc1 kernel
Added missing <linux/fs.h> to fix build with 2.6.23-rc1 kernel.
- asihpi - Fix StreamGetInfo
StreamGetInfo queried wrong stream type.
(minor) correct case of Playback and Capture control names
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
- asihpi unify play/capture timer functions
Unify the playback and capture timer function. A group of linked streams
only uses one timer.
Cope with linked streams on more than one card (untested)
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
- asihpi: mmap and link streams
asihpi version 3.07.13 :
Enable MMAP dma capable cards.
Enable linked streams for cards that have hardware support for this.
Add TLV for level and volume controls.
Register asihpi class for HPI part of driver
Add documentation, remove unused code.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
- asihpi: Fix compatibility with 64-bit resource_size_t
In recent kernels the resource_size_t type can be either 32-bit or
64-bit depending on config options. The proper way to printk such
values is to cast them to unsigned long long.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
- alsa-driver: use schedule_timeout_{,un}interruptible.
Replace 3 open-coded implementations of schedule_timout_{,un}interruptible
and use {u,m}secs_to_jiffies.
Signed-off-by: Rene Herman <rene.herman@gmail.com>

Atmel AT73C213 DAC driver

- ALSA sound driver for the AT73C213 DAC using Atmel SSC driver
This patch adds support for the AT73C213 DAC using the misc Atmel SSC driver
in
I2S mode. The driver also requires a SPI to setup the registers and control
volume.
It has been tested with an AT32AP7000 on the ATSTK1000 development board. Th

e

driver should also work with any Atmel device with an SSC module supported b

y

the Atmel SSC driver (atmel-ssc).
The atmel-ssc driver is just submitted to the Linux kernel. Please see mail
thread http://lkml.org/lkml/2007/7/16/32
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>

BT87x driver

- snd-bt87x: Power down audio ADC when not in use
Sets a bit to power down the Bt87x's internal audio ADC when the ALSA device
isn't open, or when it is in "digital mode" using an external ADC.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
- pcm: add snd_pcm_rate_to_rate_bit() helper
Add a snd_pcm_rate_to_rate_bit() function to factor out common code used
by several drivers.
- 2.6 kernel sync (2007/10/15) - small patches
- bt87x: fix detection of generic boards
Add an "unknown" board type so that it is possible to differentiate
between unknown and generic boards.
- snd-bt87x: Improve support for different board types
Different cards have different audio configurations, but the driver didn't
support this. The only setting it had was the digital rate.
This patch adds a board configuration list. Currently, configurable items a

re

the digital rate and the digital data format (for cards with an external ADC

),

a flag for the absence of an external ADC, and a flag for no connection to t

he

Bt87x internal ADC.
This allows cards that don't use the internal ADC to omit the ALSA "Bt87x
analog" device and related controls. Cards without an external ADC can omit
the "Bt87x digital" device.
In order to support the CS5331A ADC used on the Osprey 440 and 2x0 cards, th

e

digital format needs to be different than the default.
Support could be added for defining:
The connections or lack of them to the Bt87x's internal ADC mux
Multiple sample rates for an external ADC (e.g. Osprey)
Control of an external mux for an external ADC (e.g. Osprey)
The card definitions for cards other than the Ospreys are kept equivalent to
their old values. This is likely inaccurate for most cards, as it is doubtf

ul

that both an external and the internal ADC would be used. Lacking informati

on

on those cards, the behavior is left unchanged.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
- Regenerate bt87x.patch
Regenerated bt87x.patch for the last change
a55dc0affe21b6fd07e9f5cec5b11532a4799cac
snd-bt87x: Improve support for different board types
- bttv: Fix Viewcast Osprey 440 support
Add the Osprey 440 to the Bt878 ALSA driver's whitelist. Currently the samp

le

rate is fixed at 32kHz, as the driver doesn't support different rates for
digital input mode, though the card can select the rate from 32, 44.1, or 48
kHz via gpio.
- bt87x - Add known PCI ID entries
Added the PCI ID entries for known working devices
- Prolink PixelView PV-M4900
- Pinnacle Studio PCTV rave

CA0106 driver

- Summary:snd-ca0106:Add recognition for new variant. Fixes ALSA bug#3251
- Coding style fix sound/pci/ca0106/ca_midi.h
Coding style fix
Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
- ca0106: Add analog mute controls for cards with SPI DAC
Add four mute controls for the analog output channels for cards that use
an SPI DAC, like the SB0570 SB Live! 24-bit / Audigy SE. The Wolfson DAC
doesn't support muting left/right so the controls are mono.
The chip state struct gets a 32-byte array to act as a shadow of the spi
dac registers. Only two registers are used for mute, but more would be
needed for analog gain, de-emphasis, DAC power down, phase inversion, and
other features.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
- ca0106: replaced control add sequences with macro
Turn a rather long lined for loop that is duplicated multiple times into a
macro.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
- ca0106: power down SPI DAC channels when not in use
For cards with an SPI DAC (SB Live 24-bit / Audigy SE), power down channels
0-2 when not in use. They are powered up on PCM open and down again on PCM
close. Channel 4 (== Front) is not powered down, as it is used for capture
feedback. Powering it down would effectively kill line in pass-through.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
- ca0106: Add more symbol SPI register names and use them
Add more symbol name for SPI register values. Change the SPI_XXX_BIT define

s

from the bit number to a mask. Saves having to write (1<<SPI_XXX_BIT) all t

he

time to convert to mask. We never end up wanting the bit number.
Use all the symbol names for the SPI DAC init sequence. The sequence is
exactly the same as it was before.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
- ca0106: remove extra commands in SPI DAC init sequence
The init sequence set a number of registers more than once to different
values. It's only necessary to set them once to their final values.
It also never actually updated the digital attenuation settings.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>

CMI8788 driver

- cmi8788: add sync start
Allow all PCM substreams of a card to be linked and to be started/
stopped atomically.
- cmi8788: change shortname
Change the card shortname from "PCI 8788" to "CMI8788" so that the card
ID is not "P8788".
- cmi8788: add __NO_VERSION__
Fix compilation on 2.2 kernels.
- add cmi8788 driver
This adds a C-Media CMI8788 driver that I found somewhere on the
internet.
Completely untested.
- cmi8788: use one function for pointer callback
Factor out the common code from the three PCM pointer callbacks.
- cmi8788: write correct values to BaseTCount
Initialize the DMA BaseTCount registers with the correct period size
values.
- cmi8788: move hw_params-specific code to hw_params callback
Move the code that is only dependent on the hardware parameters from the
prepare callbacks to the hw_param callbacks.
- cmi8788: fix and optimize trigger callback
Optimize the trigger callback by moving the DMA reset to the prepare
callback. This also fixes the behaviour for pausing where we want to
continue from the current position.
- cmi8788: clean up pcm init
Clean up the initialization of the PCM devices.
- cmi8788: remove int_sta_mask field
Remove the int_sta_mask field because it is always the same as the
int_mask field.
- cmi8788: optimize interrupt handler
Speed up the interrupt handler by toggling the interrupt mask bits for
those interrupts that have occured all at once.
- cmi8788: move interrupt enabling out of trigger callback
Move the interrupt enabling code from the trigger into the prepare/
hw_free callbacks so that the trigger callback now consists of a single
I/O write.
- cmi8788: initialize stream mask bits once
The driver does not need to clear the stream DMA/interrupt mask bits
when closing a stream, so we can initialize them just once.
- cmi8788: fix AC97 playback interrupt mask
Bit 14 does not seem to be needed in the interrupt mask for the front
panel playback stream.
- cmi8788: merge interrupt and DMA bit masks
Merge the interrupt and DMA bit masks because they are always the same
for each stream.
- remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync()
Set the SNDRV_PCM_INFO_SYNC_START flag and the substream's sync ID
(only) if the substream actually can be linked to another one.
- cmi8788: cache interrupt/dma mask registers
Cache the last written values of the IntMask and DMA_SetStatus
registers. This has the effect of moving some I/O reads out of the
interrupt handler and the trigger callback.
- cmi8788: clear interrupt/DMA status when loading
When loading the driver, disable all interrupts and DMA channels (just
to be sure).
- cmi8788: make interrupt acking more robust
Do not ignore those interrupts that we are currently not interested in,
but acknowledge all that have been raised.
It is possible for a stream to start/stop concurrently. To protect
against this, re-enable only those interrupts that are currently enabled
in chip->int_mask_reg.
- cmi8788: fix formatting
* fix indenting and other formatting
* remove C99-style comments
* remove some commented-out code
* move variable declarations before statements
* remove some pointless if()s
* remove superfluous exports
- cmi8788: remove unused symbols
Remove some unused symbols.
- cmi8788: remove ioremap
Remove the ioremap code because this chip does not use memory-mapped I/O.
- cmi8788: remove cmi_printk
Remove the cmi_printk() macro.
- cmi8788: reorganize chip data
Manage the chip data structure as private_data of the card instead of a
lowlevel device.
- cmi8788: remove controller structure
Remove the needless controller abstraction; the chip is identical with
the AC97/SPI controller.
- cmi8788: move PCM code to cmi_pcm.c
Move the PCM code to the new file cmi_pcm.c.
- cmi8788: remove unused fields
Remove some unused field and superfluous structures.
- cmi8788: fix interrupt status check
Fix a bug in the interrupts status check that would have prevented
interrupt sharing.
- cmi8788: move declarations to header
Move all extern declarations to the header.
- cmi8788: remove typedefs
Remove all typedefs for structures.
- cmi8788: remove superfluous NULL checks
Remove NULL pointer checks where the pointer value is already known to
be valid.
- cmi8788: simplify AC97 register writes
Replace all occurrences of direct writes to the AC97InChanCfg2 register
with calls to snd_cmi_send_ac97_cmd().
- cmi8788: simplify some code
Simplify some code.
- cmi8788 - Fix build with the recent kernel
Fix the deprecated kernel codes to build the driver again with the
recent kernel.
- cmi8788: store cmi_substream pointer in runtime->private_data
Store the cmi_substream pointer in the runtime->private_data field so
that callbacks can get it directly instead of looking it up.
- cmi8788: clean up pcm open callback
Move the substream-specific parts into the substream-specific callbacks.
- cmi8788: remove unsupported formats
Do no support unsupported sample formats like 20-bit samples or
capturing with more than two channels.
- cmi8788: fix format bits
Use correct values for the DMA format bits.
- cmi8788: factor out format bits lookup
Create separate functions for determining the DMA/I2S sample format/
channels bit fields.
- cmi8788: add rate setting
Add code to set the correct I2S sample rate.
- cmi8788: prevent autoloading
The snd-cmi8788 driver is too buggy to allow it to load automatically,
so add a module parameter that must be set explicitly before it loads.
- cmi8788: detect chip revisions
Detect the older CMI8787 chip and show the chip revision in the card longnam

e.

- cmi8788: fix capture buffer size
Fix the hardware information for the capture stream that cannot handle
buffers larger than 2^16 words.
- cmi8788: add SPDIF PCM
Add a PCM device for SPDIF input/output.
- cmi8788: move low-level functions to cmi_lib.c
Move the low-level I/O, SPI, 2-wire and AC97 functions to the new
cmi_lib.c file.
- cmi8788: simplify more code
Clean up the rest of the code.
- cmi8788: fix pcm hardware info
Use more correct values for the PCM hardware information values.
- cmi8788: remove DMA_chan_reset field
Join the DMA_sta_mask and DMA_chan_reset fields because their values are
always the same.
- cmi8788: remove superfluous header
Remove a bunch of headers that are not needed.

CMIPCI driver

- cmipci: make the test for integrated MIDI port address more robust
Unused bytes in the I/O register range are likely to have the value 0x00
instead of 0xff, so test against both values when checking for the
presence of the integrated MIDI port.
- cmipci: add msbits constraint for 24-bit format
Add a msbits constraint to the SPDIF output device to indicate that
S32_LE samples use only 24 bits for data.
- cmipci: reorganize chip version detection
Add a case for chip version 39 where no bit is set in register 0Ch, and
move the detection of version 39 before that of 8768. This makes the
logic more compatible with the driver on that other OS.
- cmipci: remove has_dual_dac
Remove the has_dual_dac variable because it was always set.
- cmipci: show actual chip name in card longname
Show the actual name of CMI8762/CMI8768/CMI8769/CMI8770 chips in the
card longname instead of just using "CMI8738" for all of them.
- cmipci: remove invalid channels constraint
Remove the constraint that sets the channel limit for the first playback
device to that of the second one; the first device supports only stereo.
- cmipci: add 96 kHz support
Add support for 88.2 kHz and 96 kHz analog and digital playback on
CMI8768/CMI8770 chips.
- cmipci: do not check for integrated FM/MIDI ports with chip version 37
Integrated MPU-401/OPL3 ports are available with chip version 39 and
later, so we do not test for the port with version 37.
Now that the test is known to work, we can again enable the MIDI port by
default.
- cmipci: check that the legacy MIDI port works
Check that the UART_EN bit actually enabled the MPU-401 port.
Apparently, C-Media thinks that it is a good idea to be paranoid here.
- cmipci: show real chip name in card name
The "-MCx" suffix that is expected by alsa-lib is only needed in the
card driver string, so we can show the actual chip name in the
shortname.
- cmipci: fix version 37 detection
Use the proper value for the bit that identifies chip version 37.
- cmipci: update register definitions
Update comments for many register symbols, add some new register
symbols, and rename a few ones.
- 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.
- cmipci: reset the chip when initializing
When the chip is initialized, reset it.
- cmipci: initialize 0x90 registers
Initialize the registers at 0x90 and 0x91 with some undocumented values.
- 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.
- cmipci: remove 5.0 format
Disallow playback of five channels because the hardware does not support
it (or nobody knows how to do it).
- 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.
- 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().
- 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.
- 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.
- cmipci: fix MIDI device name
Initialize card->shortname early enough so that the MIDI device can pick
it up and does not need to have a generic name.
- cmipci: fix handling of FM/MIDI port addresses
Make sure that the MPU-401 MIDI and OPL-3 FM devices are used only on
those chips where they are supported, and that the correct port
addresses are used.

CREDITS file

- Update Claudio's CREDITS information
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- linux 2.6 sync (2007-07-30)
- 2.6 kernel sync (2007/10/15) - rest (outside ALSA tree)
- linux 2.6 code sync (2007-07-19)

CS4231 driver

- Fix bugs in mode change/recalibration for opl3sa2 driver
The mode change / recalibration doesn't work always with opl3sa2 devices,
e.g. the first time it's played back. The patch fixes the problem.
Signed-off-by: Paul Vojta <vojta@math.berkeley.edu>
- ad1838/cs4231 - fix MCE timeout upon initial load
When the ad1848/cs2431 is first being initialized, auto-calibration may not
be set causing a timeout waiting for it in snd_ad1848/cs4231_mce_down().
This has no dire consequences other than an alarming printk, but since what
we need to wait for is for the calibration to _finish_, let's just check for
that instead.
The early chips need a slight delay (as commented -- 5 sample periods) to be
sure that _if_ calibration is going to happen, it has started when we check
While the CS4231A datasheet implies it'll happen immediately on downing MCE,
some testing is showing that there's a window there as well, so just do the
delay everywhere.
Thanks to Krysztof Helt for pinpointing this problem.
Signed-off-by: Rene Herman <rene.herman@gmail.com>
- 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>
- cs4231-lib: replace common delay loop by function
This patch replaces a common delay loop by a function.
It also uses ARRAY_SIZE macro for the rates table.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Acked-by: Rene Herman <rene.herman@gmail.com>
- cs4231 header split
This patch splits the cs4231.h file into two parts:
- cs4231-regs.h which contain register constants and macros
- cs4231.h which includes the above and contain rest of the definitions
This will allow to share register definitions between x86 ISA cs4231
and SPARC cs4231.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- 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>
- Fix thinko in cs4231 mce down check
The last patches to replace with schedule_timeout() don't work as expected.

CS423x drivers

- isa libs Makefiles cleanup
This patch uses the Kconfig parameters SND_AD1848_LIB and
SND_CS4231_LIB instead of mentioning each driver that requires
the ad1848-lib or cs4231-lib separately in the Makefiles.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>

CS46xx driver

- cs46xx - Fix PM resume
Fixed PM resume of cs46xx devices. It now restores properly the DSP
image and kick-off the DSP.
- Clean up Makefile
Clean up Makefile using xxx-$(CONFIG_XXX) style instead of
ifeq(CONFIG_XXX,y).
- sound/pci/cs46xx/: fix an off-by-one
This patch fixes an off-by-one in a snd_assert() spotted by the
Coverity checker.
Signed-off-by: Adrian Bunk <bunk@stusta.de>

CS5535 driver

- cs5535audio: correctly set dma->substream
We're never actually setting dma->substream to the current substream; that
means the dma->substream checks that we do in the suspend/resume path
are never satisfied, and the PRD registers are never correctly managed. Thi

s

changes it so that we set the substream when constructing the specific
bus master DMA, and unsetting it when we tear down the BM's DMA.
Signed-off-by: Andres Salomon <dilinger@debian.org>
- cs5535audio: fix PRD register save/restore power management race
In the suspend path, we currently save the PRD registers and then disable DM

A.

This is racy; the sound hardware might update the PRD register as it finishe

s

processing some DMA pages between when we've saved the PRD registers and
when DMA actually gets disabled. Furthermore, we actively check whether or
not DMA is enabled before saving PRD registers; there's no reason to do that

,

as the PRD registers should not update when we twiddle the ACC_BM[x]_CMD
register(s). Worst case, we save the PRD registers twice; even powering
down the ACC shouldn't mess with the PRD registers (according to the 5536
data sheet, section 5.3.7.4, power-down procedure). This patch reworks
all that to first disable DMA, and then save PRD registers.
Signed-off-by: Andres Salomon <dilinger@debian.org>
- cs5535audio: update PCI device handling in suspend/resume
Save the PCI state before disabling the device, and add some error checking.
Signed-off-by: Andres Salomon <dilinger@debian.org>
- cs5535audio: fix ACC_BM[x]_CMD register handling
According to 6.3.2.7 of the cs5535/cs5536 data sheets, the ACC_BM[x]_CMD
registers are only 8 bits wide. This driver treats them as 32 bits wide,
and also has bits in the wrong place. Simple fix to the definitions.
Signed-off-by: Andres Salomon <dilinger@debian.org>
- cs5535audio: drop unused bus master stuff
We really only care about the first two bus masters (playback and capture).
There's no need to have unused BM code lying around, so let's get rid of it.
If for some reason we trigger an IRQ for some BM that we're not using.. well

,

that warrants spitting out an error message (imo).
Signed-off-by: Andres Salomon <dilinger@debian.org>
- Clean up Makefile
Clean up Makefile using xxx-$(CONFIG_XXX) style instead of
ifeq(CONFIG_XXX,y).

CX88 driver

- 2.6 kernel sync (2007/10/15) - rest (outside ALSA tree)

Digigram PCXHR driver

- pcxhr - Fix trigger start with non-linked streams
The non-linked streams couldn't be started properly due to missing
setting of stream->status.
- pcxhr - Fix dB level information
Some dB level information is wrong in pcxhr driver according to the
datasheet. Fixed now.

Digigram VX core

- Clean up with common snd_ctl_boolean_*_info callbacks
Clean up codes using the new common snd_ctl_boolean_*_info() callbacks.

Documentation

- hda-codec - update of documentation
Update the documentation to reflect the last changes regarding the
power-saving mode and register caches.
- Add missing model entries for HD-audio codecs
Added missing model entries for HD-audio codecs in the module option list.
- usb-audio - Fix AC3 with M-Audio Audiophile USB
Fixed AC3 interface in device_setup=0x00 mode thanks to Hakan
Lennestal and updated documentation
Signed-off-by: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
- hda-codec - Rename HP model-specific quirks
Rename ALC888_HP_NETTLE and ALC888_HP_LUCKNOW models to the more generic
names ALC888_6ST_HP and ALC888_3ST_HP since HP seems to be consistent
in the wiring of their 3stack and 6stack ALC888-based systems.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- This patch adds more support for Dell systems with Stac9205 codecs.
Tested against a couple of different systems (with different pin
configs), but the others should also work. Also cleaned up some of the
9205 patch code.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-intel - Add power_save_controller module option
Add power_save_controller module option instead of define flag.
Also, added descriptions of new module options in ALSA-Configuration.txt.
- hda-codec - Add support for Haier W66
1. Support Lenovo 420A (PCI SSID: 0x17aa 0x3bfc)
2. Support Haier W66 (PCI SSID: 0x1991 0x5625)
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- More description on duplex streams with OSS emulation
Add paragraph to the OSS document to clarify correct use of duplex streams.
Signed-off-by: Alan Horstmann <gineera@aspect135.co.uk>
- hda: support for S/PDIF out on ASUS M2V
Added support for S/PDIF digital output on ASUS M2V motheboard - added
new model "3stack-660-digout" and ALC660VD_3ST_DIG
Signed-off-by: Mike Crash <mike@mikecrash.com>
- cmipci: do not check for integrated FM/MIDI ports with chip version 37
Integrated MPU-401/OPL3 ports are available with chip version 39 and
later, so we do not test for the port with version 37.
Now that the test is known to work, we can again enable the MIDI port by
default.
- document basic TLV stuff
Add documentation about how to define dB scale information for mixer
controls.
- sc6000: documentation fix
This patch fixes MPU-401 irq values list in documentation.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- Add descriptions for new module options of snd-sscape driver
Add descriptions for new module options of snd-sscape driver,
wss_port and dma2.
- Add description about power-saving mode
Added the description about power-saving mode on AC97 and HD-audio drivers.
- hda-codec - Add ALC268 acer model
Added model=acer for ALC268 codec support.
The configuration is: headphone = 0x14, speaker = 0x15
needs hp-jack auto-detection. The same routine as alc262-fujitsu model
is used.
Also, added the auto-muting routine for ALC268 model=toshiba.
- hda-codec - Add support for Macbook Pro rev3
Added the support for Macbook Pro rev3 with ALC885 codec chip.
The patch taken from ALSA bug#3242.
- hda-codec - Fix Dell laptops support with STAC codecs
Fixed Dell laptops support with STAC92xx codecs.
Many pin-config models are introduced. See ALSA-Configuration.txt
for details.
The patch taken from ALSA bug#3319, originally by Jorg Prante:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3319
- usb-audio - Fix audiophile-USB quirk for little-endian
Audiophile-usb fix (corrects little-endianness in 16bit
modes, resets interfaces at device initialization, and updates the
documentation).
Signed-off-by: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
- hda-intel: support for iMac 24 released on 09/2006
Basic audio support for the iMac 24 model released on 09/2006,
including
headphone jack detection with automatic speaker muting.
This iMac uses the Realtek ALC885 codec, not a Sigmatel one as in
other models.
Functionality has been tested for internal speakers, headphone and
microphone.
Signed-off-by: Nicola Fagnani <nicfagn@iol.it>
- Fixes to follow the standard coding style
Fixed the tutorial to follow the standard kernel coding style.
- hda-codec - Add laptop-automute model for AD1986A
Added a new model laptop-automute for AD1986A, which has the HP jack
detection and auto-muting of the speaker. Currently, it's used for
Lenovo N100.
- hda-codec - Add missing model names for ALC882 codecs
Added the missing model option strings for ALC882 codecs.
Also added the corresponding description in ALSA-Configuration.txt.
- hda-codec - Add more Dell systems
This patch adds support for Dell E520 and a couple of other 965 based systems.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Add support for Acer Aspire laptops
This patch adds support for some Acer Aspire systems.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- doc - Remove IRQF_DISABLED from the example description
Remove the bogus IRQF_DISBLAED together with IRQF_SHARED from the
example code in the document.
- wavefront - Use standard firmware loader
Use the standard firmware loader for loading ICS2115 OS firmware file.
This is the last old bad guy that is still using sys_open() and sys_read()
calls, and now all should be gone.
The patch also adds the missing description of module options related
with wavefront_synth.c.
Due to this rewrite, user will have to copy or make symlink the firmware
file appropriately to the standard firmware path such as /lib/firmware.
- hda-codec - Add support of ALC268 codec
Added the support of new ALC268 codec chip.
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Add model dell for Dell XPS M1210
Added a new model "dell" for Dell XPS M1210 with STAC922x codec chip.
- Add description of sc6000 driver
Added the description of the new sc6000 driver to ALSA-Configuration.txt.
- Fix OSS documentation about 3bytes format
Now the OSS emulation supports 3bytes format, too.
- hda-codec - Add option texts and descriptions for new Realtek models
Added the missing text entries and descriptions for the newly added
model values for Realtek codec chips.
- cmipci: fix handling of FM/MIDI port addresses
Make sure that the MPU-401 MIDI and OPL-3 FM devices are used only on
those chips where they are supported, and that the correct port
addresses are used.
- hda-codec - Add AD1882 codec support
Added AD1882 codec support. It has currently two models, 3stack and
6stack.
- hda-codec - Fix Gateway laptops with STAC9200
Fix the output of Gateway laptops with STAC9200 codec chip.
They require the EAPD control for some pins. These pins shouldn't be
powered down.
To enable EAPD control, a new model "gateway" was added to STAC9200.
The known PCI SSIDs are included in the quirk list.
The fix was originally suggested by Brian Hinz, in ALSA bug#2948.
- Add missing models for Dell with STAC9200 codec
Added the missing description of models for Dell machines with
STAC9200 HD-audio codec chip.

Dreamcast AICA sound (pcm) driver

- aica - fix behaviour in poor resource conditions
Fix behaviour in poor resource conditions. With this new patch,
tidied with indent and with SNDRV_PCM_TRIGGER_STOP being used.
Signed-off by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
- 2.6 kernel sync (2007/10/15) - small patches

EMU10K1/EMU10K2 driver

- emu10k1: enable emu1010 only on 2.6 kernels
Disable support for emu1010 on 2.2/2.4 kernels because we have not yet
emulation code for kthread_*.
- Summary:snd-emu10k1: Add support for E-Mu 1616 PCI, 1616M PCI, 0404 PCI, E-M

u

Notebook.
Description: The .device=0x0008 chips have new, but different EMU32 in/out
channels. Driver updated to make use of these EMU32 channels.
- Summary:snd-emu10k1:Improves firmware loading for E-Mu cards.
Details:
Fixes http://bugzilla.kernel.org/show_bug.cgi?id=8176
- Summary:snd-emu10k1:Support for ADAT and S/PDIF.
Patch submitted by Ctirad Fertr
<c.fertr@volny.cz>
- emu10k1 - EMU 1212 with 16 capture channels
* adding 8 more 32-bit capture channels (total of 16) for emu1010 cards
* adding some code comments and card details description
Signed-off-by: Pavel Hofman <dustin@seznam.cz>
- 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>
- This patch removes memset() from snd_emu10k1_fx8010_info() which apparently
isn't needed there. Upatched code uses:
memset(info, 0, sizeof(info));
where 'info' is a pointer and therefore only first 4 bytes of 'info' gets
cleared on a 32bit machine. Anyway looking at the code zeoring this memory
region isn't needed at all because the snd_emu10k1_fx8010_info() function
initializes all the 'info' fields on its own. So that's why this code works
at all in its original form.
This patch removes this redundant code. Also snd_emu10k1_fx8010_info() can't
fail so lets save some bytes and change its return type to void.
Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Summary:snd-emu10k1: Initial support for E-Mu 1616 and 1616m.
- Summary:snd-emu10k1:Enable E-Mu 1616m notebook firmware loading.
- emu10k1 - Fix memory corruption
The number of mixer elements for SPDIF control don't match with the
actual array size (3). This may result in a memory corruption that
overwrites the i2c_capture_source field (ALSA bug#3095).
- Summary:snd-emu10k1:Implement SPDIF/ADAT status.
- Summary:snd-emu10k1:Unmute the Audio/Micro Dock after firmware load.
- emu10k1: There's no need to cast vmalloc() return value in snd_emu10k1_create()
vmalloc() returns void *. no need to cast.
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>

ENS1370/1+ driver

- fix ensoniq section mismatch
Fix ensoniq driver sections when HOTPLUG=n, but code is used
during resume, so it cannot be discarded:
WARNING: sound/pci/snd-ens1371.o(.text+0x5c0): Section mismatch: reference to .init.text: (between 'snd_ensoniq_chip_init' and 'snd_ensoniq_free')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>

ES18xx driver

- add the ESS1879 pnpbios ID to the es18xx driver
As reported by Troy Heidner, the "Gateway Solo 5150" laptop (for one) has an
onboard ESS1879 that identifies itself through PNPBIOS as just that. He also
confirmed that other than not knowing about it, snd-es18xx drives the chip
fine, so this adds the ID to the driver.
Signed-off-by: Rene Herman <rene.herman@gmail.com>

ES1968 driver

- 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>

Echoaudio driver

- 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>
- 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.

Generic drivers

- ALSA: more section mismatches
Fix section mismatch warnings:
WARNING: sound/built-in.o(.exit.text+0x753): Section mismatch: reference to
.init.text: (between 'snd_mts64_module_exit' and 'snd_portman_module_exit')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Jaroslav Kysela <perex@suse.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Clean up with common snd_ctl_boolean_*_info callbacks
Clean up codes using the new common snd_ctl_boolean_*_info() callbacks.
- pc-speaker update
- Ported to the hrtimers API
- Added the needed locking
- Made the "struct pcsp_chip" statically allocated
(you can't have more than one pc-speaker anyway)
- Removed the hackish speed detection and use loops_per_jiffy instead
- Lindented
- Replaced "if ((err = func()) < 0)"
with "err = func(); if (err < 0)"
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
- fix section mismatch
Fix shared init/exit function attributes:
WARNING: sound/built-in.o(.exit.text+0x4a1): Section mismatch: reference to .init.text: (between 'alsa_card_virmidi_exit' and 'alsa_card_serial_exit')
WARNING: sound/built-in.o(.exit.text+0x4c1): Section mismatch: reference to .init.text: (between 'alsa_card_serial_exit' and 'ac97_bus_exit')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- more section mismatches
Something about __init_or_module isn't working as expected (?).
CONFIG_HOTPLUG=y
CONFIG_MODULES=n
Fix shared init/exit code helper:
WARNING: sound/built-in.o(.exit.text+0x243): Section mismatch: reference to .init.text: (between 'alsa_card_mpu401_exit' and 'ac97_bus_exit')
WARNING: sound/built-in.o(.exit.text+0x21b): Section mismatch: reference to .init.text: (between 'alsa_card_dummy_exit' and 'alsa_card_serial_exit')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- portman2x4 section mismatch
FIx section mismatch when CONFIG_HOTPLUG=n:
WARNING: sound/built-in.o(.exit.text+0x271): Section mismatch: reference to .init.text:snd_p
ortman_unregister_all (between 'snd_portman_module_exit' and 'alsa_mpu401_uart_exit')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- PC-Speaker driver update
- PCSP_HOOK is no longer needed, removed.
The driver fully moved to hrtimers and the kernel patch is now optional.
- Depend on EXPERIMENTAL in preparation to submit this upstream.
- Remove the built-in software volume control in favour of softvol.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>

HDA Codec driver

- hda-codec - rewrite amp cache more generic
Rewrite the code to handle amp cache and hash tables to be more
generic. This routine will be used by the register caches in the
next patch.
- hda-codec - introduce command register cache
This patch adds the cache for codec command registers.
snd_hda_codec_write_cache() and snd_hda_sequence_write_cache() do
the write operations with caching, which values can be resumed via
snd_hda_codec_resume_cache().
The patch introduces only the framework, and no codec code is using
this cache yet. It'll be implemented in the following patch.
- hda-codec - optimize resume using caches
So far, the driver looked the table of snd_kcontrol_new used for creating
mixer elements and forces to call each of its put callbacks in PM resume
code. This is too ugly and hackish.
Now, the resume is simplified using the codec amp and command register
caches. The driver simply restores the values that have been written
in the cache table. With this simplification, most codec support codes
don't require any special resume callback.
- hda-codec - add snd_hda_codec_stereo() function
Added snd_hda_codec_amp_stereo() function that changes both of stereo
channels with the same mask and value bits. It simplifies most of
amp-handling codes.
- hda-codec - Clean up bind-controls
We have already a generic bind-control helper, so let's clean up the codes
using it.
- hda-intel - Add POWER_SAVE option
Added CONFIG_SND_HDA_POWER_SAVE kconfig. It's an experimental option
to achieve an aggressive power-saving. With this option, the driver
will turn on/off the power of each codec and controller chip dynamically
on demand.
The patch introduces a new module option "power_save". It specifies
the second of time-out for automatic power-down. As default, it's
10 seconds. Setting 0 means to suppress the power-saving feature.
The codec may have analog-input loopbacks, which are usually represented
by mixer elements such as "Mic Playback Switch" or "CD Playback Switch".
When these are on, we cannot turn off the mixer and the codec chip has
to be kept on. For bookkeeping these states, a new codec-callback is
introduced.
For the bus-controller side, a new callback pm_notify is introduced,
which can be used to turn on/off the contoller appropriately.
Note that this power-saving might cause slight click-noise at
power-on/off. Also, it might take some time to wake up the codec, and
might even drop some tones at the very beginning. This seems to be the
side-effect of turning off the controller chip.
This turn-off of the controller can be disabled by undefining
HDA_POWER_SAVE_RESET_CONTOLLER in hda_intel.c.
- hda-codec - Fix ALC268 acer model
ALC268 has different NIDs from ALC262. Acer model should use NID 0x02 and
0x03 instead of 0x0c and 0x0d for the master volume.
- hda-codec - Fix capture on ALC262 HP machines
Fix the index for Front Mic capture source on ALC262 HP machines.
Also, added the new capture source list for HP BPC DC7000 series
to work properly.
From: zhejiang <zhe.jiang@intel.com>
- hda-codec - code cleanups in patch_sigmatel.c
Clean up the mixer entries for Input Source using a macro.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- hda-codec - Fix HP Nettle 5.1 output
Fixed HP Nettle 6ch/8ch channel routing based on ALC883 sixstack and
swapping rear and center/LFE in verbs and mixer settings.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Add HP Lucknow 5.1 support
Added HP Lucknow (ALC888) 5.1 surround support based on ALC883 6-channel
threestack with changes in channel routing.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Add missing model parameter strings for ALC262
Added the missing model option values for ALC262.
- hda-codec - Fix number of pin widgets with STAC codecs
Use ARRAY_SIZE() to calculate the number of pin widgets for each codec
chip.
This also fixes a typo in STAC9205 code that gives a wrong number (14
instead of 12), which resulted in fatal communication errors.
- hda-codec - Add LG LW20 line-in capture source
Add line-in to the list of LG LW20 capture sources. Also fix the LG LW
pin assignment list comment.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Add quirk for HP Samba
This patch fixes 5.1 surround output for the HP Samba using the same
quirk as the HP Lucknow. If HP machines are uniform in their wiring,
we should rename ALC888_HP_NETTLE to ALC888_6ST_HP and ALC888_HP_LUCKNOW
to ALC888_3ST_HP for generic HP 6stack and 3stack configurations.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Rename HP model-specific quirks
Rename ALC888_HP_NETTLE and ALC888_HP_LUCKNOW models to the more generic
names ALC888_6ST_HP and ALC888_3ST_HP since HP seems to be consistent
in the wiring of their 3stack and 6stack ALC888-based systems.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-intel - Coding style fixes
Fix codes to follow more to the standard kernel coding style.
- hda-intel - Add hwdep interface
Added a hwdep interface for each codec (enabled per kconfig).
This interface can be used for reading/writing HD-audio verbs
and other purposes as future extensions.
- hda-codec - Add a generic bind-control helper
Added callbacks for a generic bind-control of mixer elements.
This can be used for creating a mixer element controlling multiple
widgets at the same time. Two macros, HDA_BIND_VOL() and HDA_BIND_SW(),
are introduced for creating bind-volume and bind-switch, respectively.
It taks the mixer element name and struct hda_bind_ctls pointer, which
contains the real control callbacks in ops field and long array for
private_value of each bound widget.
All widgets have to be the same type (i.e. the same amp capability).
- hda-codec - kernel config for each codec
Create kernel configs to choose the codec support codes to build.
- hda-codec - Add quirk for another MSI laptop to alc883_cfg_tbl[]
This hg commit adds the SSID of another MSI laptop to the
alc883_cfg_tbl[] quirk list. Verified in #alsa/Freenode
on Thu, Jun 7, 2007.
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
- hda-codec - Fix Thinkpad X61/T61 outputs
Enable EAPD bit on Thinkpad X61/T61. The recent model requires it
explicitly to make any sounds. In future, it should be toggled
automatically on demand.
Also, added a beep volume/switch. Some people like it although I
don't understand why :)
- hda-codec - Fix for Fujitsu Lifebook C1410
Fixed ALC262 fujitsu model to support Fujitsu Lifebook C1410 properly.
It requires EAPD and has separate int/ext mic inputs (which was missing
in the current driver).
- hda-codec - Add missing Mic Boost for some ALC882 models
Mic Boost mixer volume was missing in some ALC882 models. Added now.
- hda-codec - Add support for Toshiba A305
Added the proper model=toshiba for Toshiba A305 with ALC268 codec.
- hda-intel - Fix resume with power save
The controller power wasn't turned on properly at resume due to the
power-saving patch. Now fixed.
- This patch adds more support for Dell systems with Stac9205 codecs.
Tested against a couple of different systems (with different pin
configs), but the others should also work. Also cleaned up some of the
9205 patch code.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Add support for Haier W66
1. Support Lenovo 420A (PCI SSID: 0x17aa 0x3bfc)
2. Support Haier W66 (PCI SSID: 0x1991 0x5625)
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Add SPDIF support on ALC880 fujitsu model
Some Fujitsu laptops have SPDIF output jack (ALSA bug#3009).
- sound/pci/hda/patch_realtek.c: remove dead code
This patch removes some dead code spotted by the Coverity checker.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
- hda-codec - Fix the error in DAC assignment of STAC codec
The STAC codec support code has the automatic recognition of
additional side-output pins, and this may result in an error when
the assigned pin has no corresponding DAC connection.
The patch fixes the problem -- it corrects the line_outs again
without such additional pins.
- hda-codec - Fix Toshiba A100 with ALC861
One of the newly added model entries causes a regression on Toshiba A100.
It works fine with model=auto. So, let's deselect the entry again.
- hda-codec - Add support for the ASRock K8NF6G-VSTA motherboard
This patch adds ALC861VD support for the ASRock K8NF6G-VSTA motherboard.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Fix Oops with AD1984 thinkpad model
Fixed Oops with AD1984 thinkpad model. Also fixed the wrong
init verbs for NID 0x03 and 0x04, which have apparently no mute
bit.
- hda: support for S/PDIF out on ASUS M2V
Added support for S/PDIF digital output on ASUS M2V motheboard - added
new model "3stack-660-digout" and ALC660VD_3ST_DIG
Signed-off-by: Mike Crash <mike@mikecrash.com>
- HDA - Change default configuration for Fujitsu Si3515
This patch changes the default configuration for the Fujitsu Siemens
Si3515 Laptop to the correct model=laptop.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Fix wrong pin-setup at resume of STAC codecs
The resume procedure for STAC codecs overrides the cached values and
results in the wrong (reset) PIN state. The patch gets rid of the
overriding part and simplifies the resume.
- hda-codec - Avoid zero NID in line_out_pins[] of STAC codecs
The STAC codes adds line_out_pins[] for shared mic/line-inputs accordingly.
But, the current code may give a hole with NID=0 in some setting, which
results in an error at probe. This patch fixes the problem.
- hda-intel - fix a race in dynamic power managment
codec->power_transition is supposed to be true while codec is going
to be shut off if in the mean time somebody calls snd_hda_power_up,
hda_power_work will not shut down the codec, but nether will clear
codec->power_transition, thus it stays on forever. Fix this.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- hda-intel - Fix resume logic, when dynamic power managment is on
Comment in hda_intel.c states that "the explicit resume is needed only
when POWER_SAVE isn't set", but this is not true.
There is no code that will automaticly power up the codec on resume,
but only code that powers it up when user accesses it. So if user
leaves a sound playing, codec will not be powered
To fix that I check if there are any codecs that should be powered
codec->power_count, and if so I power them up together with main
controller.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- hda-codec - add support for swapping center/LFE channels to STAC codecs
Center/LFE channels are located on same jack, so it can be usefull
to swap them.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- hda-codec - add support for analog loopback to STAC9204/9205/922x/927x
The analog loopback routes the sound just before it enters ADC0
to output of DAC0.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- hda-codec - make volume knob, the master volume for sigmatel codecs
VolumeKnob is present on most sigmatel codecs, it allows to decrease
volume of all DACs at once, it is a kind of post-procesing volume.
Note that all output amps of sigmatel only decrease volume, and all
input amps only increase volume.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- hda-codec - Fix support for sigmatel codecs that have 2 or more ADCs
1) Create seperate mixer controls for each ADC
2) Make number of substreams of capture PCM device be equal to
number of ADCs
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- hda: BIOS changing subsystem id
Some laptop BIOS change the subsystem id for STAC9205 cards if the
microphone isn't toggled on/off in the settings.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- 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>
- 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>
- 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.
- hda-codec - Add quirks for HP dx2200/dx2250
HP dx2200 and dx2250 use Micro-Star International (MSI) motherboards
(models MS-7254 and MS-7297 respectively) with an ALC862 codec in
threestack configuration. Adding this quirk allows correct 5.1 sound
output in these systems.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-intel - Remove invalid __devinit
Some functions in hda_codec.c are called from patch ops, which are
kept in the codec instance even after initialization. Thus they
shouldn't be marked as __devinit.
- hda-codec - Add ALC268 acer model
Added model=acer for ALC268 codec support.
The configuration is: headphone = 0x14, speaker = 0x15
needs hp-jack auto-detection. The same routine as alc262-fujitsu model
is used.
Also, added the auto-muting routine for ALC268 model=toshiba.
- hda-codec - Fix PM on ALC885 Intel Macs
Fix power-management on ALC885 Intel Macs.
It fixes the problem with power-saving mode, too.
- hda-codec - Remove superfluous code
Remove the superfluous code that's actually not used at all.
- hda-codec - Add unsol_event to ALC883 Acer Aspire
Added unsol_event handling to ALC883 Acer Aspire codes.
Also, removed unneeded channel-mode mixer control from 2-ch only presets.
- hda-intel - Avoid unnecessary work scheduling
Avoid unnecessary work scheduling for power-off.
- hda-codec - Add model for MSI m673x
Added model=targa-dig for MSI m673x with ALC883 codec.
- hda-codec - Add auto-mute function to Sony VAIO with STAC9872
Added auto-mute function with HP jack to Sony VAIO laptop with STAC9872
codec. The patch taken from ALSA bug#3275.
- hda-codec - Fix Toshiba A135 model selection
Fixed the double entries in the model presets.
Toshib A135 prefers model=lenovo rather than dallas.
- hda-codec - Add support for Macbook Pro rev3
Added the support for Macbook Pro rev3 with ALC885 codec chip.
The patch taken from ALSA bug#3242.
- hda-codec - Add support for Toshiba Satellite P205
Add model=lenovo for Toshiba Satellite P205 with ALC861VD codec chip.
- hda-intel - Fix compile with gcc-3.x
gcc-3.x doesn't like forward inlining:
CC [M] sound/pci/hda/hda_codec.o
sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free':
sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here
sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here
- hda-codec - Fix mater mixer switch of ALC262 sony-amd model
Fixed the master mixer switch of ALC272 sony-amd model.
It used a simple bind-control, but it resulted in unexpected
unmute of speaker output. Now the control checks the HP jack
state apropriately, just like fujitsu model.
- hda-codec - Fix ALC268 unsol event
The unsol event of ALC268 is in the standard bit 26.
Also, fixed the Acer master controls, and added Extensa 5210
to the quirk list.
- hda-codec - Fix Dell laptops support with STAC codecs
Fixed Dell laptops support with STAC92xx codecs.
Many pin-config models are introduced. See ALSA-Configuration.txt
for details.
The patch taken from ALSA bug#3319, originally by Jorg Prante:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3319
- hda-codec - Some fixes for Realtek codec supports
- Added BenQ T31-16 AMD Turion64x2 (ALC262) support
- Added models for ASUS machines with ALC861
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Fix ALC662 auto mode
Fixed ALC662 auto mode, wrong NIDs were chosen.
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Fix the recording selection on VAIO laptop
Fix the mismatch of init verb and capture mux with VAIO STAC9872.
Also, changed the item names to be more intuitive.
- hda-codec - Add LG LW20 si3054 modem id
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda: stac9202 mixer fix
Added support for line out controls for STAC9202 cards, and fixed issue
where master mixer control was being created twice for headphone and
speaker outs.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add quirk for Asus P5LD2
Without the proper model setting, the Asus P5LD2 rear outputs remain
completely silent unlike other systems where the front speakers usually
work. This patch adds the P5LD2 to the quirk table.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-intel: support for iMac 24 released on 09/2006
Basic audio support for the iMac 24 model released on 09/2006,
including
headphone jack detection with automatic speaker muting.
This iMac uses the Realtek ALC885 codec, not a Sigmatel one as in
other models.
Functionality has been tested for internal speakers, headphone and
microphone.
Signed-off-by: Nicola Fagnani <nicfagn@iol.it>
- hda-codec - Fix the initial mixer state of ALC262 sony-assamd model
Many of ALC262 codes don't call the automute function at the beginning,
which may keep the silence until the HP jack is replugged. Now proper
init_hook is added.
Also, sony-assamd model doesn't handle the widget 0x14 properly, thus
calling automute isn't enough. Now Front switch handles both widgets.
- hda-codec - Add model for Toshiba A135
Added model=lenovo for Toshiba A135 with ALC861VD codec.
- hda-codec - Fix input_mux numbers for vaio stac92xx
My bad, I forgot to update the num_items field when added a new item
to vaio_mux items table, so the last item "PCM" disappeared.
Now it has the right number 3.
- hda-codec - Add laptop-automute model for AD1986A
Added a new model laptop-automute for AD1986A, which has the HP jack
detection and auto-muting of the speaker. Currently, it's used for
Lenovo N100.
- hda-codec - Add support for ASUS A7M
Added the support for ASUS A7M with ALC882 codec.
It's slightly different from ASUS A7J.
The patch taken from ALSA bug#3000
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3000
- hda-codec - Add missing model names for ALC882 codecs
Added the missing model option strings for ALC882 codecs.
Also added the corresponding description in ALSA-Configuration.txt.
- hda-codec - Add quirk entry for Casper CPR2000
Added the quirk entry for Casper CPR2000 (model=acer) with ALC268 codec
(ALSA bug#3343).
- 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>
- hda-codec - Missing support ASUS A7J
Added the missing support for ASUS A7J [0x1043 0x1243]
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Add more Dell systems
This patch adds support for Dell E520 and a couple of other 965 based systems.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Add support for Acer Aspire laptops
This patch adds support for some Acer Aspire systems.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-intel - Fix NULL dereference in resume
codec->patch_ops.init can be NULL. Check before calling it.
- hda-intel - Don't do suspend if already powered down
In the power-saving mode, the suspend is done dynamically at power-down.
So we don't have to call suspend stuff explicitly if it's already
powered down.
- hda-codec - Add missing capture boost for ALC268
Added missing capture boost controls for ALC268 codec.
- hda-codec - Add support for HP Nettle
Added the model for HP Nettle mobo with ALC883.
From: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Add support for HP Spartan
Added the model for HP Spartan with Conexant codec chip.
From: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Fix default pin config of Abit AW9D-MAX
Fix the default pin configuration of Abit AW9D-MAX. The board has a
broken BIOS that doesn't set the correct pin default configs, which
screws up the auto-configuration of snd-hda-intel driver.
The patch enables the override of default pin config values.
- HDA-Intel - Add support for MSI K9AGM2-FIH motherboard
This patch adds support for the MSI K9AGM2-FIH on-board audio.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda: Enable SPDIF in/out on some stac9205 boards
Added support for some boards with SPDIF in/out, and cleaned up the GPIO
enable function.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Fix AD1988 SPDIF output
The SPDIF output on AD1988 had some problems due to the wrongly routed
analog loopback to SPDIF. This patch fixes the implementation of
"IEC958 Playback Source" mixer to handle the amp bits of mixer widget
0x1d correctly.
- hda-codec - Fix GPIO in resume
Reinitialize GPIO in resume callback if necessary.
- hda-codec - Fix AD1984 basic model
Fix the amp direction of digital mic capture volume mixer, which
resulted in -EINVAL.
- hda-codec - Add proper model for HP xw series
Set the proper model for HP xw4550, xw4600, xw6600 and xw8600.
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Add support of ALC268 codec
Added the support of new ALC268 codec chip.
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Add HP Pavillion quirk to Realtek code
This patch adds the HP Pavillion a1589L desktop system to the ALC883
configuration table.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Fix ALC662 auto-configuration code
The auto-configuration code didn't initialize the verbs correctly.
- hda-codec - Add Fujitsu Siemens v3515 support to patch_conexant
This patch adds support for the Fujitsu Seimens Amilo Pro v3515 notebook.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Add model dell for Dell XPS M1210
Added a new model "dell" for Dell XPS M1210 with STAC922x codec chip.
- hda: add eapd support to additional idt codecs
Added support for EAPD on the 927x, and 9227-8 IDT HDA codecs.
Enabling EAPD powers the internal speaker amp otherwise there is no
sound on systems with an internal amp.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add zero checks in input-mux helper functions
Added zero checks in input-mux helper functions to avoid Oops.
Some devices may have no input pins while the driver registers
control elements calling these functions.
- 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>
- 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>
- hda-codec - Remove conflicting capture mixers for ALC861VD
Removed conflicting capture mixers for ALC861VD model=dallas.
It fixes the ALSA bug#3236.
- hda-codec - Update realtek codec support
1. Support Acer Aspire 9810
2. Support TOSHIBA A205
3. Support HP TX1000
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Add support for Biostar NF61S SE mobo
Added the support for Biostar NF61S SE mobo with ALC861VD codec,
model=6stack-digout (ALSA bug#3190).
- hda-codec - Add option texts and descriptions for new Realtek models
Added the missing text entries and descriptions for the newly added
model values for Realtek codec chips.
- hda-intel - Add flush_scheduled_work() in snd_hda_codec_free()
Added flush_scheduled_work() in snd_hda_codec_free() to make sure that
the all work is gone. Also, optimized the condition to schedule the
delayed work in snd_hda_power_down().
- hda-codec - Fix Master volume with AD1986A laptop model
Use the bind-control for NID 0x1a and 0x1b as Master volume control
on AD1986 model=laptop as well as model=laptop-eapd. This will fix
the missing output on some devices.
- hda-codec - Add Mic Boost control with auto-configuration
Some codecs need Mic Boost mixer controls for obtaining a proper recording
level, but the auto-configuration doesn't create them.
This patch adds the creation of mic-boost controls on corresponding codecs.
- hda-codec - Fix 5.1 output in LG LW20
Implemented LG LW20 5.1 support based on ALC880 threestack modes. It was
previously set to use one DAC and 2 jack modes, giving 2-channel output
only. Analog CD playing support is still missing.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Add VIA HDA to si3054
Add VIA HDA identification to use the HDA-based Motorola modem of
the Clevo m540 laptop.
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- Yet another Uniwill laptop with ALC861 codec
From: Dave Jones <davej@redhat.com>
Rediffed version of the patch from ..
http://bugzilla.kernel.org/show_bug.cgi?id=8016
that seems to be lingering for some time.
Original patch by: Andy Shevchenko <andy@smile.org.ua>
Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- hda-codec - Add AD1882 codec support
Added AD1882 codec support. It has currently two models, 3stack and
6stack.
- hda-codec - Fix Gateway laptops with STAC9200
Fix the output of Gateway laptops with STAC9200 codec chip.
They require the EAPD control for some pins. These pins shouldn't be
powered down.
To enable EAPD control, a new model "gateway" was added to STAC9200.
The known PCI SSIDs are included in the quirk list.
The fix was originally suggested by Brian Hinz, in ALSA bug#2948.
- hda-codec - Re-add quirk support for Dell XPS 1330 and Inspiron 1420
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
- hda-codec - Add support for Acer Aspire 9303
Add the entry for Acer Aspire 9303 (model=acer-aspire) with ALC883 codec.
- hda-codec - Fix wrong pin config order in STAC92xx dell models
The last patch to change/add Dell models have wrong pin config orders.
This patch fixes the pin positions.
Taken from ALSA bug#3319,
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3319

HDA Intel driver

- hda-intel - Add POWER_SAVE option
Added CONFIG_SND_HDA_POWER_SAVE kconfig. It's an experimental option
to achieve an aggressive power-saving. With this option, the driver
will turn on/off the power of each codec and controller chip dynamically
on demand.
The patch introduces a new module option "power_save". It specifies
the second of time-out for automatic power-down. As default, it's
10 seconds. Setting 0 means to suppress the power-saving feature.
The codec may have analog-input loopbacks, which are usually represented
by mixer elements such as "Mic Playback Switch" or "CD Playback Switch".
When these are on, we cannot turn off the mixer and the codec chip has
to be kept on. For bookkeeping these states, a new codec-callback is
introduced.
For the bus-controller side, a new callback pm_notify is introduced,
which can be used to turn on/off the contoller appropriately.
Note that this power-saving might cause slight click-noise at
power-on/off. Also, it might take some time to wake up the codec, and
might even drop some tones at the very beginning. This seems to be the
side-effect of turning off the controller chip.
This turn-off of the controller can be disabled by undefining
HDA_POWER_SAVE_RESET_CONTOLLER in hda_intel.c.
- hda-intel - Add probe_mask blacklist
Added the black-list of probe_mask option to set the default value for
known non-working devices. Currently, Thinkpad *60 and *61 series are set.
I'm afraid more will be added to the list in near future...
- hda-intel - Show the last command in warning messages
Show the last issued command in warning messages when any communication
error with CORB/RIRB occurs.
Also, a bit code clean-up for composing the command value in
*_send_cmd().
- hda-intel - Coding style fixes
Fix codes to follow more to the standard kernel coding style.
- Add the MCP73/77 support to hda_intel driver
Add the MCP73/MCP77 support to hda driver.
The patch base on kernel 2.6.22-rc4
Signed-off-by: Peer Chen <peerchen@gmail.com>
- 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>
- hda-intel - Fix resume with power save
The controller power wasn't turned on properly at resume due to the
power-saving patch. Now fixed.
- hda-intel - Add power_save_controller module option
Add power_save_controller module option instead of define flag.
Also, added descriptions of new module options in ALSA-Configuration.txt.
- hda-intel - Fix resume logic, when dynamic power managment is on
Comment in hda_intel.c states that "the explicit resume is needed only
when POWER_SAVE isn't set", but this is not true.
There is no code that will automaticly power up the codec on resume,
but only code that powers it up when user accesses it. So if user
leaves a sound playing, codec will not be powered
To fix that I check if there are any codecs that should be powered
codec->power_count, and if so I power them up together with main
controller.
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
- 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>
- hda-intel - Add position_fix quirk for Dell Precision 390
Dell Precision 390 needs position_fix=1 as default (ALSA bug#3295).
- hda-intel - Don't do suspend if already powered down
In the power-saving mode, the suspend is done dynamically at power-down.
So we don't have to call suspend stuff explicitly if it's already
powered down.
- 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>
- 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>

HDA generic driver

- hda-codec - introduce command register cache
This patch adds the cache for codec command registers.
snd_hda_codec_write_cache() and snd_hda_sequence_write_cache() do
the write operations with caching, which values can be resumed via
snd_hda_codec_resume_cache().
The patch introduces only the framework, and no codec code is using
this cache yet. It'll be implemented in the following patch.
- hda-codec - optimize resume using caches
So far, the driver looked the table of snd_kcontrol_new used for creating
mixer elements and forces to call each of its put callbacks in PM resume
code. This is too ugly and hackish.
Now, the resume is simplified using the codec amp and command register
caches. The driver simply restores the values that have been written
in the cache table. With this simplification, most codec support codes
don't require any special resume callback.
- hda-codec - add snd_hda_codec_stereo() function
Added snd_hda_codec_amp_stereo() function that changes both of stereo
channels with the same mask and value bits. It simplifies most of
amp-handling codes.
- hda-intel - Add POWER_SAVE option
Added CONFIG_SND_HDA_POWER_SAVE kconfig. It's an experimental option
to achieve an aggressive power-saving. With this option, the driver
will turn on/off the power of each codec and controller chip dynamically
on demand.
The patch introduces a new module option "power_save". It specifies
the second of time-out for automatic power-down. As default, it's
10 seconds. Setting 0 means to suppress the power-saving feature.
The codec may have analog-input loopbacks, which are usually represented
by mixer elements such as "Mic Playback Switch" or "CD Playback Switch".
When these are on, we cannot turn off the mixer and the codec chip has
to be kept on. For bookkeeping these states, a new codec-callback is
introduced.
For the bus-controller side, a new callback pm_notify is introduced,
which can be used to turn on/off the contoller appropriately.
Note that this power-saving might cause slight click-noise at
power-on/off. Also, it might take some time to wake up the codec, and
might even drop some tones at the very beginning. This seems to be the
side-effect of turning off the controller chip.
This turn-off of the controller can be disabled by undefining
HDA_POWER_SAVE_RESET_CONTOLLER in hda_intel.c.
- hda-intel - Coding style fixes
Fix codes to follow more to the standard kernel coding style.
- hda-intel - Add hwdep interface
Added a hwdep interface for each codec (enabled per kconfig).
This interface can be used for reading/writing HD-audio verbs
and other purposes as future extensions.
- hda-codec - Add a generic bind-control helper
Added callbacks for a generic bind-control of mixer elements.
This can be used for creating a mixer element controlling multiple
widgets at the same time. Two macros, HDA_BIND_VOL() and HDA_BIND_SW(),
are introduced for creating bind-volume and bind-switch, respectively.
It taks the mixer element name and struct hda_bind_ctls pointer, which
contains the real control callbacks in ops field and long array for
private_value of each bound widget.
All widgets have to be the same type (i.e. the same amp capability).
- hda-codec - kernel config for each codec
Create kernel configs to choose the codec support codes to build.
- Add missing hda_hwdep.c
- 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>
- hda-intel - Fix compile warning in snd_hwdep_ioctl_compat()
Fix missing cast:
sound/pci/hda/hda_hwdep.c:86: warning: passing argument 4 of 'hda_hwdep_ioctl' makes integer from pointer without a cast
- hda-intel - Fix a typo in Makefile
Fixed a typo of CONFIG_SND_HDA_GENERIC.
- hda-codec - Output MFG information for HDA devices
This patch output information about the MFG (Modem Function Group) to
the /proc/asound/card?/codec#? file. This information is important to
identify if a HDA device has a modem or not.
Signed-off-by: Jonathan Phenix <jonathan@linuxant.com>

HDSPM driver

- hdspm - Coding style fixes
Fix codes to follow more to the standard kernel coding style.

I2C cs8427

- 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.

ICE1712 driver

- Fix misspellings collected by members of KJ list.
Fix the misspellings of "propogate", "writting" and (oh, the shame
 :-) "kenrel" in the source tree.
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
- ice1712 - Fix missing replacement to snd_ctl_boolean_mono_info
There were some places I forgot to replace with snd_ctl_boolean_mono_info.
- sound: fix compile error (wrong declaration of devinitdata)
Fix compile error:
CC sound/pci/ice1712/prodigy192.o
sound/pci/ice1712/prodigy192.c:708: error: ak4114_controls causes a section type conflict
... but __initdata cannot be "const".
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>

IOCTL32 emulation

- Enable timer ioctls in 32bit compat modules
Enable some disabled timer ioctls in 32bit compat modules again.
These ioctls are re-defined not to conflict with the existing TIOC_*
definitions. So, safe to use now, and was enabled far ago in the
upstream 32bit compat layer (timer_compat.c).

ISA

- wavefront - Use standard firmware loader
Use the standard firmware loader for loading ICS2115 OS firmware file.
This is the last old bad guy that is still using sys_open() and sys_read()
calls, and now all should be gone.
The patch also adds the missing description of module options related
with wavefront_synth.c.
Due to this rewrite, user will have to copy or make symlink the firmware
file appropriately to the standard firmware path such as /lib/firmware.
- fix SND_CS5530=y, ISA=n compilation
This patch fixes the following compile error with
CONFIG_SND_CS5530=y, CONFIG_ISA=n:
<-- snip -->
...
LD .tmp_vmlinux1
sound/built-in.o: In function `snd_sb16_capture_trigger':
sb16_main.c:(.text+0x212ad): undefined reference to `snd_sbdsp_command'
sb16_main.c:(.text+0x212cc): undefined reference to `snd_sbdsp_command'
sb16_main.c:(.text+0x212f7): undefined reference to `snd_sbdsp_command'
sound/built-in.o: In function `snd_sb16_playback_trigger':
sb16_main.c:(.text+0x2136d): undefined reference to `snd_sbdsp_command'
sb16_main.c:(.text+0x2138c): undefined reference to `snd_sbdsp_command'
...
<-- snip -->
Signed-off-by: Adrian Bunk <bunk@stusta.de>
- 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>
- SC6000 driver - add HAS_IOPORT dependency

MAINTAINERS file

- 2.6 kernel sync (2007-07-20)
- linux 2.6 sync (2007-07-30)
- 2.6 kernel sync (2007/10/15) - rest (outside ALSA tree)
- linux 2.6 code sync (2007-07-19)

MIXART driver

- mixart - Check ioremap error
Check ioremap error and handle properly at initialization.
- sound: convert "sound" subdirectory to UTF-8
Convert the "sound" subdirectory to UTF-8.
Signed-off-by: John Anthony Kazos Jr. <jakj@j-a-k-j.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
- mixart: Add missing vmalloc.h include
Fixes the following build error:
CC sound/pci/mixart/mixart_hwdep.o
sound/pci/mixart/mixart_hwdep.c: In function 'mixart_hwdep_dsp_load':
sound/pci/mixart/mixart_hwdep.c:610: error: implicit declaration of function 'vmalloc'
sound/pci/mixart/mixart_hwdep.c:617: error: implicit declaration of function 'vfree'
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

MPU401 UART

- more section mismatches
Something about __init_or_module isn't working as expected (?).
CONFIG_HOTPLUG=y
CONFIG_MODULES=n
Fix shared init/exit code helper:
WARNING: sound/built-in.o(.exit.text+0x243): Section mismatch: reference to .init.text: (between 'alsa_card_mpu401_exit' and 'ac97_bus_exit')
WARNING: sound/built-in.o(.exit.text+0x21b): Section mismatch: reference to .init.text: (between 'alsa_card_dummy_exit' and 'alsa_card_serial_exit')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- mpu-401: do not require an ACK byte for the ENTER_UART command
The original MPU-401 does not send an ACK byte after processing the
ENTER_UART command, so we better do not try to wait for it.
Many clones get this wrong and do send an ACK, but when interpreting it
as MIDI, it is just a harmless Active Sensing message, and it is likely
to be read and discarded by the interrupt handler before the MIDI input
device is triggered.
- mpu-401: remove MPU401_INFO_UART_ONLY flag
Since the last patch made the ENTER_UART command optional, the
enter_uart option and its corresponding flag have become superfluous.
The uart_enter option remains for backward compatibility but just prints
a warning when used.

MSND driver

- fix request_firmware() calls for 2.4 kernels
Update the patches for wavefront_synth and msnd_pinnacle to use a
different third parameter for request_firmware() on 2.4 kernels.
- alsa-driver: use schedule_timeout_{,un}interruptible.
Replace 3 open-coded implementations of schedule_timout_{,un}interruptible
and use {u,m}secs_to_jiffies.
Signed-off-by: Rene Herman <rene.herman@gmail.com>

Memalloc module

- Fix build with 2.6.22 or older kernel
Define CONFIG_HAS_DMA for 2.6.22 or older kernels.
- Fix compile warnings with 2.6.22 kernel
Fix compile warnings with 2.6.22 kernel (regarding redefinition of CONFIG_HAS_DMA)
- Add a workaround to make snd-page-alloc independent from snd
Because of unconditional inclusion of autoconf.h, snd-page-alloc became
dependent upon snd module accidentally again.
This hack avoids the dependency of snd_hidden_*alloc.
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- Fix build error without CONFIG_HAS_DMA
The recent change of include/asm-generic/dma-mapping-broken.h breaks
the build without CONFIG_HAS_DMA. This patch is an ad hoc fix.
- Fix for CONFIG_HAS_DMA
The new kconfig CONFIG_HAS_DMA isn't defined in older kernels.
Make it always y for them.
- Convert snd-page-alloc proc file to use seq_file
Use seq_file for the proc file read/write of snd-page-alloc module.
This automatically fixes bugs in the old proc code.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Fix memalloc.patch for rewrite with seq_file
Regenerated memalloc.patch for the last rewrite to use seq_file.
The proc file is excluded for 2.2 kernels temporarily due to lack of
seq_file support.

NM256 driver

- nm256 - Add mention of opl3sa2 to a diagnostic message
Adds mention of opl3sa2 driver to a diagnostic message for NeoMagic
nm256 driver.
Signed-off-by: Paul Vojta <vojta@math.berkeley.edu>

OPL3

- Clean up Makefile
Clean up Makefile using xxx-$(CONFIG_XXX) style instead of
ifeq(CONFIG_XXX,y).

OPL3SA2 driver

- Fix bugs in mode change/recalibration for opl3sa2 driver
The mode change / recalibration doesn't work always with opl3sa2 devices,
e.g. the first time it's played back. The patch fixes the problem.
Signed-off-by: Paul Vojta <vojta@math.berkeley.edu>
- use __devexit_p
Change __devexit to __devexit_p:
sound/isa/opl3sa2.c:956: error: expected expression before '__attribute__'
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- opl3sa2 - Add Neomagic MagicWave 3D ISA PnP ID
Add Neomagic MagicWave 3D to list of supported devices for opl3sa2
driver.
Signed-off-by: Paul Vojta <vojta@math.berkeley.edu>

OSS firmware core

- Detach sched.h from mm.h

Opti9xx drivers

- 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>
- Fix unfreed pnp driver in opti9xx ISA driver
- Added the missing pnp_unregister_card_driver() in the case ISA PnP
isn't found, which caused an error at kobject_add with -EEXIST
Jun 11 09:07:31 rain kernel: kobject_add failed for opti9xx with -EEXIST, don't try to register things with the same name in the same directory.
Jun 11 09:07:31 rain kernel: [<c01c18fa>] kobject_shadow_add+0x12a/0x1c0
Jun 11 09:07:31 rain kernel: [<c01c1a81>] kobject_register+0x21/0x50
Jun 11 09:07:31 rain kernel: [<c01f09a2>] bus_add_driver+0x72/0x1b0
Jun 11 09:07:31 rain kernel: [<c01d3dff>] pnp_register_card_driver+0x4f/0xc0
Jun 11 09:07:31 rain kernel: [<c89bc00a>] alsa_card_opti9xx_init+0xa/0x25 [snd_opti92x_ad1848]
Jun 11 09:07:31 rain kernel: [<c0136947>] sys_init_module+0x157/0x1610
Jun 11 09:07:31 rain kernel: [<c01029b4>] syscall_call+0x7/0xb
- Fixed the probe behavior when no PnP is set up. Now it behaves
like the former version.

PCI drivers

- hda-intel - Add POWER_SAVE option
Added CONFIG_SND_HDA_POWER_SAVE kconfig. It's an experimental option
to achieve an aggressive power-saving. With this option, the driver
will turn on/off the power of each codec and controller chip dynamically
on demand.
The patch introduces a new module option "power_save". It specifies
the second of time-out for automatic power-down. As default, it's
10 seconds. Setting 0 means to suppress the power-saving feature.
The codec may have analog-input loopbacks, which are usually represented
by mixer elements such as "Mic Playback Switch" or "CD Playback Switch".
When these are on, we cannot turn off the mixer and the codec chip has
to be kept on. For bookkeeping these states, a new codec-callback is
introduced.
For the bus-controller side, a new callback pm_notify is introduced,
which can be used to turn on/off the contoller appropriately.
Note that this power-saving might cause slight click-noise at
power-on/off. Also, it might take some time to wake up the codec, and
might even drop some tones at the very beginning. This seems to be the
side-effect of turning off the controller chip.
This turn-off of the controller can be disabled by undefining
HDA_POWER_SAVE_RESET_CONTOLLER in hda_intel.c.
- Add workaround for pci->revision
The new change referring to pci->revision broke the build with the
kernels older than 2.6.23. A wrapper snd_pci_reivions() is added for
covering this, and the patches are made for the codes using pci->revision.
- hda-intel - Add hwdep interface
Added a hwdep interface for each codec (enabled per kconfig).
This interface can be used for reading/writing HD-audio verbs
and other purposes as future extensions.
- hda-codec - kernel config for each codec
Create kernel configs to choose the codec support codes to build.
- add cmi8788 driver
This adds a C-Media CMI8788 driver that I found somewhere on the
internet.
Completely untested.
- 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>
- git-alsa kconfig fix
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- cmipci: show actual chip name in card longname
Show the actual name of CMI8762/CMI8768/CMI8769/CMI8770 chips in the
card longname instead of just using "CMI8738" for all of them.
- 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.
- hda-intel - Fix a typo in Kconfig
Fix a typo in Kconfig help text for CONFIG_SND_HDA_HWDEP.
- cmipci: fix handling of FM/MIDI port addresses
Make sure that the MPU-401 MIDI and OPL-3 FM devices are used only on
those chips where they are supported, and that the correct port
addresses are used.

PDPlus driver

- remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync()
Set the SNDRV_PCM_INFO_SYNC_START flag and the substream's sync ID
(only) if the substream actually can be linked to another one.

PPC

- Add PS3 sound driver
The patch adds the support for the sound feature of PS3 - the digital
output of HDMI and SPDIF optical, and the analog output of AV multi.
Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>

PPC Beep

- Input: ppc-beep - switch to using input_dev->dev.parent
In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.
Also, do not access input_dev->private directly, use helpers.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
- Fix beep.patch for 2.6.22/23 kernels
The patch to 2.6.23-rc1 broke the workarounds. Reworked now.

PPC PMAC driver

- remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync()
Set the SNDRV_PCM_INFO_SYNC_START flag and the substream's sync ID
(only) if the substream actually can be linked to another one.
- pcm: add snd_pcm_rate_to_rate_bit() helper
Add a snd_pcm_rate_to_rate_bit() function to factor out common code used
by several drivers.
- [POWERPC] Fix snd-powermac refcounting bugs
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>

PPC PS3 driver

- Clean up duplicate includes in sound/ppc/
This patch cleans up duplicate includes in
sound/ppc/
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
- Add PS3 sound driver
The patch adds the support for the sound feature of PS3 - the digital
output of HDMI and SPDIF optical, and the analog output of AV multi.
Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>

PXA Mainstone driver

- linux 2.6 code sync (2007-07-19)

RME HDSP driver

- hdsp - Add support for latset RME9632 revisions
added support for the latest revision of the 9632 (and hopefully a few
following ones). The DSP matrix was not working because of wrong
identification of the card in this part of the code.
Signed-off-by: Remy Bruno <remy.bruno@trinnov.com>

RME32 driver

- pcm: add snd_pcm_rate_to_rate_bit() helper
Add a snd_pcm_rate_to_rate_bit() function to factor out common code used
by several drivers.

RME96 driver

- pcm: add snd_pcm_rate_to_rate_bit() helper
Add a snd_pcm_rate_to_rate_bit() function to factor out common code used
by several drivers.

RME9652 driver

- hdspm - Fix autosync bug
* better report of speed mode change failures
* autosync_ref control bugfix (was reporting pref_sync_ref instead)
(changed HDSPM_AES32_AUTOSYNC_FROM_NONE value to comply with array
indexing in snd_hdspm_info_autosync_ref())
* added support for master modes up to 192kHz (clock source control
value was restricted up to 96kHz)
Signed-off-by: Remy Bruno <remy.bruno@trinnov.com>
- hdspm - Coding style fixes
Fix codes to follow more to the standard kernel coding style.

SA11xx UDA1341 driver

- Get rid of dead code in sound/arm/sa11xx-uda1341.c
File /home/devel/linux-rdc/sound/arm/sa11xx-uda1341.c line 82
Unknown CONFIG option! CONFIG_H3600_HAL
File /home/devel/linux-rdc/sound/arm/sa11xx-uda1341.c line 103
Unknown CONFIG option! CONFIG_H3600_HAL
File /home/devel/linux-rdc/sound/arm/sa11xx-uda1341.c line 241
Unknown CONFIG option! CONFIG_H3600_HAL
File /home/devel/linux-rdc/sound/arm/sa11xx-uda1341.c line 310
Unknown CONFIG option! CONFIG_H3600_HAL
File /home/devel/linux-rdc/sound/arm/sa11xx-uda1341.c line 334
Unknown CONFIG option! CONFIG_H3600_HAL
File /home/devel/linux-rdc/sound/arm/sa11xx-uda1341.c line 344
File /home/devel/linux-rdc/sound/arm/sa11xx-uda1341.c line 357
Unknown CONFIG option! CONFIG_H3600_HAL
Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
- Move CONFIG_H3600_HAL codes to sa11xx-uda1341.patch
Move CONFIG_H3600_HAL codes to sa11xx-uda1341.patch out of the upstream
code.
- potential parse error in ifdef
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>

SAA7134 driver

- linux 2.6 sync (2007-07-30)
- 2.6 kernel sync (2007/10/15) - rest (outside ALSA tree)

SB drivers

- Allow shared IRQ for CS5530 device
CS5530 is a PCI device and often shares the IRQ although the SB common
routine tries to allocate it exclusively. This patch allows shared IRQ
for CS5530.

SC6000 (CompuMedia ASC-9308 + AD1848) driver

- 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>
- 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>
- 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>
- Add sc6000 driver

SPARC DBRI driver

- dbri: driver cleanup
This patch fixes white spaces, spelling and formatting
to conform closer to the coding standard of the kernel.
It contains few fixes pointed out by the checkpatch.pl script.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- Fix misspellings collected by members of KJ list.
Fix the misspellings of "propogate", "writting" and (oh, the shame
 :-) "kenrel" in the source tree.
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
- dbri - Use linux/of.h instead of asm/prom.h
The linux/of.h header should be used instead of asm/prom.h.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- dbri: more cleanups
This patch:
- removes redundant constant suffices
- removes redundant parentheses
- removes redundant curly brackets
- removes check if a spinlock is locked inside method which is
only called with the spinlock locked
- moves few functions to the __init section
- removes line which appears twice after the previous patch
- minor comments improvements
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- dbri: conversion to OpenFirmware framework
This patch converts the dbri driver to use OF framework.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>

SPARC cs4231 driver

- 2.6 kernel sync (2007/10/15) - small patches
- CS4231 SBus: Two fixes.
Remove unnecessary sbus_dma_reset function and change sbus_dma_enable
to avoid occasional system crashes when stopping recording.
Signed-off-by: Georg Chini <georg.chini@triaton-webhosting.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
- sun-cs4231: checkpatch fixes
This patch fixes white spaces and issues pointed by
the checkpatch.pl script.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- sun-cs4231 - Remove merge errors
Remove the garbage codes remaining after merging from the upstream changes.
From: Krzysztof Helt <krzysztof.h1@poczta.fm>
- sun-cs4231: code improvements
This patch does some code improvements to make
driver (both code and binary) shorter.
It also make use of card->private_data pointer to
store chip information.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- sun-cs4231: improved waiting after MCE down
This patch sync sparc driver with x86 isa cs4231 driver patches.
It fixes wrong waiting for the auto calibration bit and makes
further waiting use much finer granularity.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- Fix thinko in cs4231 mce down check
The last patches to replace with schedule_timeout() don't work as expected.
- sun-cs4231: memory management fix
The chip structure is now allocated by snd_card_new()
and it must not be released by separate kfree().
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- sun-cs4231: use cs4231-regs.h
This patch replaces cs4231 registers definitions with
common include.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>

SPI Kconfig

- Add SPI devices to ALSA Kconfig and Makefile
This patch adds SPI devices in the ALSA diretory, including the Kconfig and
Makefile.
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
- ALSA sound driver for the AT73C213 DAC using Atmel SSC driver
This patch adds support for the AT73C213 DAC using the misc Atmel SSC driver in
I2S mode. The driver also requires a SPI to setup the registers and control
volume.
It has been tested with an AT32AP7000 on the ATSTK1000 development board. The
driver should also work with any Atmel device with an SSC module supported by
the Atmel SSC driver (atmel-ssc).
The atmel-ssc driver is just submitted to the Linux kernel. Please see mail
thread http://lkml.org/lkml/2007/7/16/32
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>

SoC Audio for the Samsung S3C24XX chips

- Fix Kconfig entry for SND_S3C24XX_SOC_NEO1973_WM8753
SND_S3C24XX_SOC_NEO1973_WM8753 depends on MACH_GTA01 but the Kconfig
entry which is going to be merged is MACH_NEO1973_GTA01.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
- Make s3c24xx_i2s_set_clkdiv() change the correct bits
Make s3c24xx_i2s_set_clkdiv() change the correct bits.
Signed-off-by: Matt Reimer <mreimer@vpop.net>
- s3c24xx-pcm: fix hw_params dma handling
Since the PCM emulation can call multiple times to hw_setup(), but we
can only once allocate/request the DMA channel, we have to handle
this gracefully.
Signed-off-by: Harald Welte <laforge@openmoko.org>
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
- ASoC S3C24xx machine drivers - lm4857-h missing patch
Somewhere when dealing with the s3c24xx patches and requested changes I
managed to miss this file on re-submission.
Its a header file required for compilation of neo1973-wm8573.c and
should be a no brainer.
Signed-off-by: Graeme Gregory <gg@opensource.wolfsonmicro.com>
- sound/soc ioremap/iounmap balancing
ioremap / iounmap balancing in sound/soc tree
Signed-off-by: Scott Thompson <postfail <at> hushmail.com>

SoC Codec CS4270

- ASoC CS4270 codec device driver
This patch adds ALSA SoC support for the Cirrus Logic CS4270 codec. The
following features are suppored:
1) Stand-alone and software mode
2) Software mode via I2C only
3) Master mode, not Slave
4) No power management
Signed-off-by: Timur Tabi <timur@freescale.com>
- Fix build with cs4270.c
Added cs4270.c and fix mod-deps to handle it.
- 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>
- CS4270 driver does not compile with I2C disabled
Fix compilation errors with the CS4270 when I2C is not enabled. Updated
some comments to indicate that that stand-alone mode is not fully implemented,
because there is no mechanism for the CS4270 driver and the machine driver to
communicate the values of various input pins.
Signed-off-by: Timur Tabi <timur@freescale.com>

SoC Layer

- ASoC CS4270 codec device driver
This patch adds ALSA SoC support for the Cirrus Logic CS4270 codec. The
following features are suppored:
1) Stand-alone and software mode
2) Software mode via I2C only
3) Master mode, not Slave
4) No power management
Signed-off-by: Timur Tabi <timur@freescale.com>

SoC PXA2xx Spitz

- Clean up duplicate includes in sound/soc/
This patch cleans up duplicate includes in
sound/soc/
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>

SoC SH7760 AC97

- soc/sh: let SND_SOC_PCM_SH7760 depend on SH_DMABRG
Let SND_SOC_PCM_SH7760 depend on SH_DMABRG rather than select'ing it.
Gets rid of the Kbuild warning about SH_DMABRG being undefined on non-sh
builds.
Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>

Sound Scape driver

- Fix invalid schedule_timeout_interruptible()
Fixed the invalid use of schedule_timeout_interruptible() without
checking pending signals. Simply replaced with schedule_timeout().
Suggestions thanks to Jeff Garzik.
- 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>
- 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>
- 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>

Synth

- sound/synth/util_mem.c: remove pointless check
The Coverity checker spotted that if anyone would call this function
with "prev == NULL", he would still get an Oops a few lines below.
Signed-off-by: Adrian Bunk <bunk@stusta.de>

USB

- 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>

USB caiaq

- snd_usb_caiaq_input_free() fix
input_free_device()'s comment says:
input_free_device() should only be used if input_register_device() was
not called yet or if it failed. Once device was registered
use input_unregister_device() and memory will be freed once last
refrence to the device is dropped.
Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
- 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>
- snd-usb-caiaq: Fix compatibility with kernels < 2.6.19
Kernels before 2.6.19 used a different signature for the urb->complete
callback (an additional "struct pt_regs *regs" parameter was present),
therefore snd-usb-caiaq needs some compatibility patches in
alsa-driver, like snd-usb-audio.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>

USB generic driver

- This patch is a USB quirk to ensure the Stanton Scratchamp v1 is detected
(bugtrack #2932). The interface is two USB devices in the same physical
box. Note that this is the USB ScratchAmp v1 and not the later v2
(firewire) model.
Signed-off-by: Mark Hills <mark@pogo.org.uk>
- usb-audio - Add advanced mode support for Edirol UA-1EX
Add the quirk to support Advanced mode of Edirol UA-1EX.
- missing error check in usb sound driver
usb_set_interface() can fail, even for altsetting 0
Signed-off-by: Oliver Neukum <oneukum@suse.de>
- usb-audio - Fix AC3 with M-Audio Audiophile USB
Fixed AC3 interface in device_setup=0x00 mode thanks to Hakan
Lennestal and updated documentation
Signed-off-by: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
- fix selector unit bug affecting some USB speakerphones
Following the suggestion in this thread:
https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/26683
the correct upper bound on desc[0] is 5 + num_ins not 6 + num_ins,
because the index used later is 5+i, not 6+i.
This change makes my Vosky Chatterbox speakerphone work.
Apparently it also helps with the Minivox MV100.
Signed-off-by: Russ Cox <rsc@swtch.com>
- usbaudio - Add quirk for Roland EXR series
Added a quirk for Roland EXR series. Reported by Andre Coetzee.
- usb-audio: another Logitech camera/microphone ID match
From: George Shapovalov <george@gentoo.org>
Another case of ALSA ticket #3040: we need an explicit USB ID match for
another Logitech camera/microphone device.
Signed-off-by: Daniel Drake <dsd@gentoo.org>
- Summary:snd-usb-audio: Add basic support for E-Mu USB devices.
- usb-audio: update quirk for Rane SL 1 (aka. Serato Scratch Live)
Allow the interface's mixer to be used, and give the interface its
correct name.
Signed-off-by: Mark Hills <mark@pogo.org.uk>
- usb-audio: add Ozone Academic support
Add a quirk to detect the MIDI port on the M-Audio Ozone Academic.
- usb-audio: fix parsing of SysEx messages from CME keyboards
When CME keyboards send a SysEx message (e.g. master volume), the USB
packet uses a format different from the standard format. Parsing this
packet according to the specification corrupts the SysEx message itself
and can cause the following MIDI messages to be misinterpreted, too.
This patch adds a workaround for this case.
- usb-audio - Fix audiophile-USB quirk for little-endian
Audiophile-usb fix (corrects little-endianness in 16bit
modes, resets interfaces at device initialization, and updates the
documentation).
Signed-off-by: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
- usb-audio: allow output interrupt transfers for MIDI
Allow output interrupt transfers for some MIDI devices that require
them.
- usb-audio: allow low speed MIDI devices
Allow low speed MIDI devices because newer devices from ESI do not
support full speed.
- usb-audio: add workaround for ESI MIDI Mate/RomIO II
Force low speed USB MIDI devices like the ESI MIDI Mate and RomIO II to
use interrupt transfers because the USB core would not be happy about
low speed bulk transfers.
- usb-audio: add Roland SH-201 support
Add quirks to detect the Roland SH-201.
Signed-off-by: Carlo Beccaria <carlo@beccaria.org>
- usb-audio - Add quirk for Roland Juno-G
Added a quirk for Roland Juno-G. It's simply a copy of Fantom-X with the
IDs changed.
From: Claudio Matsuoka <cmatsuoka@gmail.com>
- USB ID for intergrated quickcam on dell xps m1210
This patch adds Logitech QuickCam USB ID for Dell's
XPS M1210 notebooks.
Signed-off-by: Ritesh Raj Sarraf <rrs@researchut.com>
- usb-audio: add quirk for Serato Scratch Live DJ Box
Add a quirk to detect the Serato Scratch Live DJ Box.

Utils

- Remove libs from toplevel driver list
Add 2 more libraries to list that gets filtered out when building
the list of cards for configure.
- pc-speaker update
- Ported to the hrtimers API
- Added the needed locking
- Made the "struct pcsp_chip" statically allocated
(you can't have more than one pc-speaker anyway)
- Removed the hackish speed detection and use loops_per_jiffy instead
- Lindented
- Replaced "if ((err = func()) < 0)"
with "err = func(); if (err < 0)"
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
- Fix the handling of Kconfig int items
Kconfig int items aren't handled properly. They are misconfigured
as cards. Now fixed as non-changeable card options.
In future, we really need to improve the configure options for
Kconfig options...
- Add CONFIG_HAS_IOMEM
Add CONFIG_HAS_IOMEM to be always true.
- Fix mod-deps to handle parenthesis with spaces and int values
Fixed mod-deps to handle parenthesis with spaces around it, and
int values correctly, which were added for Kconfig of PS3 driver.
mod-deps code is too messy. We may need to rewrite it from scratch
in near future...
- Fix build with cs4270.c
Added cs4270.c and fix mod-deps to handle it.
- add CONFIG_HAS_IOPORT check for SC6000 ISA driver
- PC-Speaker kernel patch for 2.6.22
The attached is an OPTIONAL patch for 2.6.22, which makes nothing except
disabling the old pcspkr driver in favour of the snd-pcsp.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>

VIA82xx driver

- via82xx - Add DXS quirk for Shuttle AK31v2
Shuttle AK31v2 works well with dxs_support=5 (ALSA bug#2926).
- 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>

Wavefront drivers

- Remove unreferenced header file include/sound/wavefront_fx.h
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
- fix request_firmware() calls for 2.4 kernels
Update the patches for wavefront_synth and msnd_pinnacle to use a
different third parameter for request_firmware() on 2.4 kernels.
- Fix invalid schedule_timeout_interruptible()
Fixed the invalid use of schedule_timeout_interruptible() without
checking pending signals. Simply replaced with schedule_timeout().
Suggestions thanks to Jeff Garzik.
- wavefront - Use standard firmware loader
Use the standard firmware loader for loading ICS2115 OS firmware file.
This is the last old bad guy that is still using sys_open() and sys_read()
calls, and now all should be gone.
The patch also adds the missing description of module options related
with wavefront_synth.c.
Due to this rewrite, user will have to copy or make symlink the firmware
file appropriately to the standard firmware path such as /lib/firmware.
- 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>

YMFPCI driver

- ymfpci: fix volume handling of the 44.1 kHz slot
The existing code for handling the 44.1 slot's volume has two problems:
the volume is not affected by the "Wave Playback Volume" mixer control,
and the BUF441OUTVOL register, which is used to control the per-
substream volume for this slot, uses a different scale than the gain
fields of the other slots.
This patch makes the BUF441OUTVOL register a shadow of the
NATIVEDACOUTVOL register so that the Wave volume is consistent for all
substreams.
As a consequence of this, the per-substream PCM volume control gets no
longer activated for the substream using this slot. The code for
(de)activating the mixer control is moved from the open/close to the
prepare/trigger_stop callbacks so that it is able to determine the
substream's slot.

au88x0 driver

- au88x0: mem leak fix in snd_vortex_create()
In sound/pci/au88x0/au88x0.c::snd_vortex_create() :
The Coverity checker found that if we allocate storage for 'chip'
but then leave via the regions_out: label, then we end up leaking
the storage allocated for 'chip'.
I believe simply freeing 'chip' before the "return err;" line is
all we need to fix this, but please double-check me :)
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
- au88x0: add dependency to au88x0.c
Tell make that the au88x0.c file is needed to compile au88[123]0.c.
- au88x0_synth.c bugfix
This patch fixes the code in vortex_wt_SetFrequency() to what seems to
have been intended.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- PCI: Change all drivers to use pci_device->revision
Instead of all drivers reading pci config space to get the revision
ID, they can now use the pci_device->revision member.
This exposes some issues where drivers where reading a word or a dword
for the revision number, and adding useless error-handling around the
read. Some drivers even just read it for no purpose of all.
In devices where the revision ID is being copied over and used in what
appears to be the equivalent of hotpath, I have left the copy code
and the cached copy as not to influence the driver's performance.
Compile tested with make all{yes,mod}config on x86_64 and i386.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Acked-by: Dave Jones <davej@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

ic2-id.h update

- ASoC CS4270 codec device driver
This patch adds ALSA SoC support for the Cirrus Logic CS4270 codec. The
following features are suppored:
1) Stand-alone and software mode
2) Software mode via I2C only
3) Master mode, not Slave
4) No power management
Signed-off-by: Timur Tabi <timur@freescale.com>

pci_ids.h update

- 2.6 kernel sync (2007-07-20)
- linux 2.6 sync (2007-07-30)

alsa-lib

Core

- improved python detection and added --with-pythonincdir for configure.in
- Allow empty pythonincdir option
The include path options can be empty if the python is installed in
the standard header path. So, configure shouldn't check its emptiness.
- Fix plugin directory
Fix a typo in configure script that results in a wrong plugin directory.
ALSA bug#3148
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3148
- Properly disable -Bsymbolic-functions if ld doesn't support
Disable -Bsymbolic-functions option properly if the ld on the system
doesn't support it.
- release 1.0.14a
- Fix the build of lfloat plugin
Fixed the wrong check of softfloat in configure, which resulted in
disablement of lfloat plugin.
- release 1.0.14
- Fix undefined references in namehint.c
Fixed undefined references in namehint.c when not all components are
selected via configure options.
- Create asoundlib.h dynamically according to configure options
Create asoundlib.h dynamically according to configure options.
This avoids the inclusion of unused API headers.
Also don't install unused API headers.
- Fix a typo in configure script
- Continue build even if python-config doesn't exist
It's annoying that the configure script stops with an error if
python-config doesn't exist. It's no fatal error, so the configure
should disable the python components and continue.
- mixer simple basic abstraction - added python binding
reasons:
- rapid development
- class-like code structure
- more readable code
features:
- hcontrol binding is managed from python (opportunity to create
virtual mixer without driver or join multiple cards to behave as one)
- Split mmap-emulation code from hw layer
Move out mmap-emulation code from hw layer to its own plugin.
This cleans up the mess in pcm_hw.c.
- changed python-incdir to python-includes for configure.in

Control API

- Fix undefined references in namehint.c
Fixed undefined references in namehint.c when not all components are
selected via configure options.

Mixer API

- Handle "Input Source" as a capture element
Some drivers use "Input Source" as the capture source mixer element because
mixer abstraction layer can't handle multiple "Capture Source" elements.
This patch adds a hack to handle Input Source as a capture route, and let
mixer apps know that it's a capture stuff, at least.
- mixer simple basic abstraction - added python binding
reasons:
- rapid development
- class-like code structure
- more readable code
features:
- hcontrol binding is managed from python (opportunity to create
virtual mixer without driver or join multiple cards to behave as one)

PCM API

- remove unused variables
Remove some unused variables that the compiler warned about.
- Don't set PCM pointer at error in snd_pcm_hw_open()
snd_pcm_hw_open() may set a non-NULL to pcmp even if it returns an error.
Some codes like dmix expects it's NULL, and cause the double free().
- fix mmap emulation bug of recording doesn't work
From: Roy Huang <royhuang9@gmail.com>
Record doesn't work if enabling mmap emulation and rate conversion
needed, this patch fix this bug.
- Fix wrong offset calculation in snd_pcm_{read|write}_mmap()
The offset used in snd_pcm_{read|write}_mmap() is not the linear offset
but the offset in a ring buffer. It has to be rounded.
- Add support of little-endian on i386/x86_64 dmix
i386/x86_64 alsa-lib may need to handle big-endian formats, e.g.
when running via qemu on PPC. The generic dmix code already has
both endian support, so let's use it as fallback.
- Split mmap-emulation code from hw layer
Move out mmap-emulation code from hw layer to its own plugin.
This cleans up the mess in pcm_hw.c.

/include/Makefile.am

- Create asoundlib.h dynamically according to configure options
Create asoundlib.h dynamically according to configure options.
This avoids the inclusion of unused API headers.
Also don't install unused API headers.
- Fix clean-up of header files
Use DISTCLEANFILES instead of CLEANFILES for removal of dynamic
header files.

Configuration

- Fix subdevice number to 0 for dmix/dsnoop
The dmix and dsnoop plugins need a fixed substream number instead of
the next-available one (-1) as the default number. Now it's set to 0.
- Added PS3 configuration
Added PS3 configuration.
No iec958 PCM at this stage since it doesn't support passthru yet.
- Use S16_BE as dmix format for PPC drivers
PPC drivers should use S16_BE as the base format of dmix/dsnoop.
This avoid confusion of format endianess via CPU emulation.
- Fix use after free
Fixed use after free (ALSA bug#3300).
- cmi8788: add alsa-lib config
Add a .conf file to enable dmix/dsnoop and softvol for CMI8788.
Using dmix helps mask the bug that all audio is forced to 48 kHz. :-)
- Add missing CMI8788.conf to Makefile.am
- mixer simple basic abstraction - added python binding
reasons:
- rapid development
- class-like code structure
- more readable code
features:
- hcontrol binding is managed from python (opportunity to create
virtual mixer without driver or join multiple cards to behave as one)
- PC-Speaker config update
The attached patch updates the PC-Speaker.conf for the use of softvol.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>

Documentation

- Add missing pcm_empty.c in doxygen configuration
- Add the missing include/mixer.h to doxygen.cfg
- Split mmap-emulation code from hw layer
Move out mmap-emulation code from hw layer to its own plugin.
This cleans up the mess in pcm_hw.c.

Simple Abstraction Mixer Modules

- improved python detection and added --with-pythonincdir for configure.in
- Fix a typo
$PYTHON_INCDIR itself already contains -I
- alsa simple mixer - python basic abstraction - simplified using get/setArray
- mixer simple basic abstraction - added python binding
reasons:
- rapid development
- class-like code structure
- more readable code
features:
- hcontrol binding is managed from python (opportunity to create
virtual mixer without driver or join multiple cards to behave as one)
- changed python-incdir to python-includes for configure.in

alsa-plugins

A52 Output plugin

- Add -no-undefined option to LDFLAGS
Added -no-undefined option to LDFLAGS to make linking sure.

Alsa support for Maemo SDK (n770)

- Add -no-undefined option to LDFLAGS
Added -no-undefined option to LDFLAGS to make linking sure.

Jack PCM plugin

- Add -no-undefined option to LDFLAGS
Added -no-undefined option to LDFLAGS to make linking sure.

Public Parrot Hack rate converter

- Disable direct sinc table
The direct sinc table can be noisy in some conditions (e.g. up-conversion
from 11025 to 44100Hz). Disable it as a temporary solution for now.
- Update speex rate converter code
Take speex rate converter code from speex SVN tree, which includes the
fix for the noises with simple conversion (signed / unsigned mismatch).

Rate Converter plugins

- Fix the pop noise with samplerate plugin
A (temporary) fix for the pop noise at the beginning of playback
with samplerate plugin.

alsa-utils

ALSA Control (alsactl)

- alsactl - Remove debug print
Remove an old debug print that simply annoys.

Speaker Test

- Add missing library dependency
speaker-test requires math library.

alsaconf

- alsaconf - Don't produce hwcfg file for openSUSE 10.3
hwcfg file is no longer used on openSUSE 10.3, so don't create such a file
on it.

alsamixer

- alsamixer - Handle capture enums separately
The capture enum controls should appear only in capture and all views.
This is a fix for Input Source enum controls.
- amixer/alsamixer - updated go scripts for debugging

amixer

- amixer - Fix selection of enum items
The item names with channel specifier cannot be chosen correctly
via amixer sset. For example, 'Front Mic' is handled as 'Mic' since
the channel specificier 'Front' is omitted.
The idea of channel specifier is basically non-sense for enum items,
and this also makes the code very messy.
The patch fixes the behavior of enum items and gives the code clean-up
for sset command.
- Ignore errors with -s option
Ignore non-fatal errors when stdin is parsed with -s option.
- amixer - Allow to pass enum item string for cset, too
cset accepts only integer values as indices, so far, but it's a bit
unfriendly. Now it accepts the item name as a string argument, too.
The index can be given using numbers as fallback.
- amixer/alsamixer - updated go scripts for debugging

aplay/arecord

- Remove unneeded -lasound
-lasound is unnecessary in aplay/Makefile.am.
- aplay - Fix possible endless loop with SIGBART
The signal handler may cause endless loop with SIGABRT.
- aplay - Fix VU meter
Fix spaces displayed in VU meter to match with the actual max lengh (51).
- aplay - Include missing time.h for time()
With salsa-lib,
aplay.c: In function compute_max_peak:
aplay.c:1207: warning: implicit declaration of function time

aplaymidi/arecordmidi

- arecordmidi: mention SMF type in man page
Document the SMF type (0 or 1) that will be generated by arecordmidi.

alsa-tools

Envy24 Control

- envy24control - Fix SPDIF input control
Fix SPDIF input control name that was wrongly set due to a typo in
the changeset 48406c03292e.

ac3dec (Dolby Digital Decoder)

- Add missing library dependency
ac3dec requires math library.

qlo10k1

- qlo10k1 - add --enable-qtforce32 switch (post 1.0.14 stuff)

alsa-oss

PCM Emulation

- dsp->oss_format was used before it was set correctly
spotted by running "aoss flite_time 10:00"
Signed-Off-By: Alexander E. Patrakov

alsa-firmware

AudioScience ASIHPI Firmware

- Updated ASIHPI firmware to version 3.07.13

EMU Firmware

- Summary: Add firmware for emu1616 and emu1616m PCI cards.
- Summary: Correct emu micro_dock firmware.
- Summary:emu:Correct emu1010_notebook firmware.
- emu: fix EXTRA_DIST
Fix a missing line continuation in emu/Makefile.am.
Custom Search
Personal tools
Namespaces

Variants
Actions
Navigation
wiki
Toolbox