Changes v1.0.15 v1.0.16 detail

From AlsaProject
Revision as of 08:56, 6 February 2008 by Perex (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Detailed changelog between 1.0.15 and 1.0.16 releases

alsa-driver

Sound Core

- Fix configure on misc x86_32 processors
Checking of mach-* include path was missing on somc x86_32 processors.
- add seq_file.h wrapper
Check for linux/seq_file.h when compiling on 2.2 kernels.
- sis7019: prevent build on old kernels
2.2 kernels do not have the PCI DMA mapping API used by the sis7019
driver for the silence page, so disable this driver on earlier kernels.
The actual requirement is 2.4, but mod-deps is too dumb for that.
- release 1.0.16rc1
- Added CONFIG_HAVE_INIT_UTSNAME test
- fix init_utsname() check
- release 1.0.15
- Fix the check of init_utsname again
Fixed the check of init_utsname in configure script again.
-Werror=xxx isn't supported on the older version of gcc.
So, we check the kernel version at first, then check further
heavily deformed kernels.
- Check __ffs in configure script for older kernels
- We support 2.6.23 kernel, too
- Add cs5535-audio to fix the build on RHES4/CentOS
cs5535-audio is also not good guy for RHES4/CentOS.
Add the condition up 2.6.10.
- Fix build with 2.6.24-pre kernel
The recent 2.6.24 merge broke the module build with the current
configure and make stuff in alsa-driver tree.
This is a tentative fix. Let's see whether this goes well in future,
too.
- release 1.0.16
- release 1.0.16rc2
- Fix ppc64 and sparc builds
- Fix detection of init_utsname() in configure
Use -Werror=implicit-function-declaration to check only undeclared
functions. Otherwise it hits also other harmless warnings.
- Make snd-pcsp build only on 2.6.24 or later
Due to the header change mess, snd-pcsp won't be built on older kernels.
- Fix configure check for unified x86 include directory
Fixed configure check for unified x86 include directory on 2.6.24 kernel.

ALSA Core

- Add uninitialized_var() for old kernels
Added the definition of uninitialized_var() for old kernels.
- info_oss: move prototype of snd_card_info_read_oss to info.h
info_oss: move prototype of snd_card_info_read_oss to info.h
Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>
- sis7019: add support to driver package
The sis7019 driver uses __ffs(), which first became available in kernel
2.5.2.6. This adds that compatibility function for x86 to adriver.h,
and adds a more useful error message for other platforms that try to use
it.
Signed-off-by: David Dillow <dave@thedillows.org>
- PCM interface - rename SNDRV_PCM_TSTAMP_MMAP to SNDRV_PCM_TSTAMP_ENABLE
Change semantics for SNDRV_PCM_TSTAMP_MMAP. Doing timestamping only in
the interrupt handler might cause that hw_ptr is not related to actual
timestamp. With this change, grab timestamp at every hw_ptr update to
have always valid timestamp + ring buffer position pair.
With this change, SNDRV_PCM_TSTAMP_MMAP was renamed to
SNDRV_PCM_TSTAMP_ENABLE. It's no regression (I think).
- Introduce slots option to snd module
Introduced the global "slots" option to snd module. This option provides
an alternative way to handle the order of multiple sound card instances.
It's an easier approach to avoid conflict with hotplug devices, and can
be used together with the existing "order" option of each card driver.
- PCM - added back TSTAMP ioctl for PCM (for old alsa-lib binaries)
- add uintptr_t
Add a uintptr_t definition for old, obsolete kernels like 2.6.23.
- add do_posix_clock_monotonic_gettime wrapper
Add a wrapper for do_posix_clock_monotonic_gettime() for pre-2.6 kernels.
- remove prefetch from 2.2.x list_for_each_entry() wrapper
Remove the prefetching of pos->member.next in the 2.2.x wrapper of
list_for_each_entry() because it would get optimized away and just
causes the compiler to whine.
- Added CONFIG_HAVE_INIT_UTSNAME test
- Fix build with 2.4 kernel
pci_save_state() should return int, as used in cs5535audio_pm.c.
From: marcus hall <marcus@tuells.org>
- sound: remove dead config symbol from sound code
remove dead config symbols from sound code
Signed-off-by: Jiri Olsa <olsajiri@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- fix compilation warning in GCC
'snd_shutdown_f_ops' is not a pointer so its address will never be NULL.
GCC will complain because 'fops_get' will do an unnecessary check because
'&snd_shutdown_f_ops' is always true.
Signed-off-by: Miguel Boton <mboton@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Use posix clock monotonic for PCM and timer timestamps
We need an accurate and continuous (monotonic) time sources to do
accurate synchronization among more timing sources. This patch allows
to enable monotonic timestamps for ALSA PCM devices and enables monotonic
timestamps for ALSA timer devices.
- Check __ffs in configure script for older kernels
- Update SNDRV_HWDEP_IFACE_LAST
Updated the forgotten SNDRV_HWDEP_IFACE_LAST to point the really last member.
- Define uninitialized_var() for older 2.6.x kernels
I didn't know that older 2.6.x kernels also don't have
uninitialized_var() macro...
- Remove indirect control access
This patch removes the indirect control access to the control elements.
The indirect access has never been used and is even broken on 32bit
ioctl wrapper. Let's clean it up.
The pointers still remain in snd_ctl_elem_* structs just to make sure
that the struct size won't change. Once after checking the size
consistency, we can get rid of them, too.
- Remove PCM xfer_align sw params
The xfer_align sw_params parameter has never been used in a sane manner,
and no one understands what this does exactly. The current
implementation looks also buggy because it allows write of shorter size
than xfer_align. So, if you do partial writes, the write isn't actually
aligned at all.
Removing this parameter will make some pcm_lib_* code more readable
(and less buggy).
- Add manual inclusion of adriver.h
Since sound/driver.h is removed from alsa-kernel tree, we need to include
adriver.h manually in the alsa-driver build stubs.
- fix CONFIG_HAVE_INIT_UTSNAME check
Reverse the polarity of the CONFIG_HAVE_INIT_UTSNAME check.
- fix inclusion of adriver.h
Add or move the inclusion of "adriver.h" to the proper places in some
build stubs.
- Define a dummy do_posix_clock_monotonic_gettime for early 2.6 kernels
This function isn't exported on early 2.6 kernels before 2.6.16.
- Fix build of usb-caiaq driver with older kernels
- Define BIT_* macros for 2.6.23 or older kernels
Define compatible BIT_* macros for 2.6.23 or older kernels.

SoC PXA2xx Core

- [ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code
Fix CKEN register corruption in the PXA27x cold reset code
located in sound/arm/pxa27x-ac97.c. The problem has been
introduced with a pxa_set_cken() function change in linux 2.6.23.
This patch is based on patch 4527/1 that fixes the same problem in
the ASoC PXA-AC97 driver. Additionally a definition for the CKEN
index value is added and applied to both PXA AC97 drivers.
Signed-off-by: Michael Brunner <mibru@gmx.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- soc - Preliminary ac97 drivers for Toshiba e800 PDAs
Currently only the AUX channel is used (touchscreen)
Signed-off-by: Ian Molton <spyro@f2s.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

Control Midlevel

- copy_ctl_value_from_user() warning fix
sound/core/control_compat.c: In function 'copy_ctl_value_from_user':
sound/core/control_compat.c:222: warning: 'count' may be used uninitialized in this function
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- sound/core/control.c: hard-irq-safe -> hard-irq-unsafe lock warning
The lock grabbed in snd_ctl_empty_read_queue() is hardirq-unsafe but we hold
an hardirq-safe one already, so make the &ctl->read_lock also hard-irq-safe.
Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
- Remove indirect control access
This patch removes the indirect control access to the control elements.
The indirect access has never been used and is even broken on 32bit
ioctl wrapper. Let's clean it up.
The pointers still remain in snd_ctl_elem_* structs just to make sure
that the struct size won't change. Once after checking the size
consistency, we can get rid of them, too.
- Add manual inclusion of adriver.h
Since sound/driver.h is removed from alsa-kernel tree, we need to include
adriver.h manually in the alsa-driver build stubs.

HWDEP Midlevel

- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- Add manual inclusion of adriver.h
Since sound/driver.h is removed from alsa-kernel tree, we need to include
adriver.h manually in the alsa-driver build stubs.

PCM Midlevel

- Fix old tstamp ioctl for compat_ioctl
Replaced the old SNDRV_PCM_IOCTL_TSTAMP with the new one in
PCM compat_ioctl.
- pcm_native: fix sparse warning about shadowing 'state' symbol
pcm_native: fix sparse warning about shadowing 'state' symbol
Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>
- pcm_lib: fix sparse warning about shadowing 'n' symbol
pcm_lib: fix sparse warning about shadowing 'n' symbol
Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>
- pcm_lib: fix sparse warning about different signedness
pcm_lib: fix sparse warning about different signedness
Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>
- PCM interface - rename SNDRV_PCM_TSTAMP_MMAP to SNDRV_PCM_TSTAMP_ENABLE
Change semantics for SNDRV_PCM_TSTAMP_MMAP. Doing timestamping only in
the interrupt handler might cause that hw_ptr is not related to actual
timestamp. With this change, grab timestamp at every hw_ptr update to
have always valid timestamp + ring buffer position pair.
With this change, SNDRV_PCM_TSTAMP_MMAP was renamed to
SNDRV_PCM_TSTAMP_ENABLE. It's no regression (I think).
- Fix PCM MMAP time-stamp mode
When MMAP time-stamp mode is given, it's supposed to update the time-stamp
only at period boundary. However, it currently updates at each status call
so this is just useless. The patch fixes this misbehavior.
Also it fixes the wrong check of tstamp_mode (don't use bit-and for enum).
- PCM - added back TSTAMP ioctl for PCM (for old alsa-lib binaries)
- Add SNDRV_PCM_IOCTL_TSTAMP back to compat ioctl
The replaced one should be re-added for older alsa-lib.
- Use posix clock monotonic for PCM and timer timestamps
We need an accurate and continuous (monotonic) time sources to do
accurate synchronization among more timing sources. This patch allows
to enable monotonic timestamps for ALSA PCM devices and enables monotonic
timestamps for ALSA timer devices.
- PCM - fixed SNDRV_PCM_FORMAT_U24_BE silence constant
Reported by Timur Tabi <timur@freescale.com> .
- alsa: nopage
Convert ALSA from nopage to fault.
Switch from OOM to SIGBUS if the resource is not available.
Signed-off-by: Nick Piggin <npiggin@suse.de>
- Fix patches for fault vms ops
Regenerated patches for handling nopage ops with older kernels.
- PCM core - remove SNDRV_PCM_TSTAMP_MMAP condition in snd_pcm_status()
The condition caused that the returned ring buffer position does not match
with timestamp when SNDRV_PCM_TSTAMP_MMAP mode was enabled. Removing
condition makes unified behaviour and interrupt based timestamp can be
accessed via PCM_IOCTL_SYNC_PTR or mmaped status area.
- Fix PCM write blocking
The snd_pcm_lib_write1() may block in some weird condition:
- the stream isn't started
- avail_min is big (e.g. period size)
- partial write up to buffer_size - avail_min
The patch fixes this invalid blocking problem.
- Remove PCM xfer_align sw params
The xfer_align sw_params parameter has never been used in a sane manner,
and no one understands what this does exactly. The current
implementation looks also buggy because it allows write of shorter size
than xfer_align. So, if you do partial writes, the write isn't actually
aligned at all.
Removing this parameter will make some pcm_lib_* code more readable
(and less buggy).
- PCM - clean up snd_pcm_lib_read/write
Introduce a common helper function for snd_pcm_lib_read and snd_pcm_lib_write
for cleaning up the code.
- Remove PCM sleep_min and tick
The "tick" in PCM is set (again) via sw_params. And, nobody uses
this feature at all except for a command line option of aplay.
(This is literally "nobody", as I checked alsa-lib API calls in all
programs in major distros.)
Above all, if we need finer wake-ups for the position update, it's
basically an issue that the driver should solve, not tuned by each
application.

RawMidi Midlevel

- rawmidi: let sparse know what is going on _for real_
snd_rawmidi_kernel_read1/write1 weren't annotated but used
copy_to_user/copy_from_user when one of parameters (kernel) was equal to 0
remove it and add properly annotated parameter
Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>

Timer Midlevel

- Use posix clock monotonic for PCM and timer timestamps
We need an accurate and continuous (monotonic) time sources to do
accurate synchronization among more timing sources. This patch allows
to enable monotonic timestamps for ALSA PCM devices and enables monotonic
timestamps for ALSA timer devices.

/soc/Makefile

- Add ASoC drivers for the Freescale MPC8610 SoC
Add the ASoC drivers for the Freescale MPC8610 SoC and the MPC8610 HPCD
reference board.
Signed-off-by: Timur Tabi <timur@freescale.com>

/soc/codecs/Makefile

- ASoC TLV320AIC3X codec driver
This patch adds ALSA SoC support for TI TLV320AIC3X audio codecs.
The features that are supported:
o Capture/Playback/Bypass.
o 16/20/24/32 bit audio.
o 8k - 96k sample rates.
o codec master only mode
o DAPM.
Signed-off-by: Vladimir Barinov <vbarinov@ru.mvista.com>

/soc/pxa/Makefile

- soc - Preliminary ac97 drivers for Toshiba e800 PDAs
Currently only the AUX channel is used (touchscreen)
Signed-off-by: Ian Molton <spyro@f2s.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

:"ARM/OMAP driver

- Add ALSA-related files from 2.6.24 git tree
Added ALSA-related kernel files to HG tree.

AC97 Codec

- ac97_patch: compilation warning fix
This patch kills these two compilation warnings if
power management is disabled:
sound/pci/ac97/ac97_patch.h:86: warning: 'snd_ac97_restore_status'
declared 'static' but never defined
sound/pci/ac97/ac97_patch.h:87: warning: 'snd_ac97_restore_iec958'
declared 'static' but never defined
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- pci - check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in the rest of
PCI drivers.
- Remove obsolete patches
Remove obsolete patches that still remain in the tree.

AD1816A driver

- sound/isa: kill pnp_resource_change
This removes the pnp_resource_change use from the ALSA ISAPnP drivers. In
2.4 these were useful in providing an easy path to setting the resources,
but in 2.6 they retain function as a layering violation only.
This makes for a nice cleanup (-550 lines) of ALSA but moreover, ALSA is the
only remaining user of pnp_init_resource_table(), pnp_resource_change() and
pnp_manual_config_dev() (and, in fact, of "struct pnp_resource_table") in
the tree outide of drivers/pnp itself meaning it makes for more cleanup
potential inside the PnP layer.
Thomas Renninger acked their removal from that side, you did from the ALSA
side (CC list just copied from that thread).
Against current alsa-kernel HG. Many more potential cleanups in there, but
this _only_ removes the pnp_resource_change code. Compile tested against
current alsa-kernel HG and compile- and use-tested against 2.6.23.x (few
offsets).
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Cc: Thomas Renninger <trenn@suse.de>

AD1848 driver

- include/sound/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>
- This patch removes open_mutex from the ad1848-lib as
open and close operations are called only from pcm layer
and mutexed there with pcm->open_mutex.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- ad1848 - Fix print format
Fixed the print format for debug message.
Spotted by Matthew Wilcox.

AD1889 driver

- sound: fix ad1889 section mismatch
Fix section mismatch in ad1889 by renaming the pci_driver variable to a
whitelisted variable name.
WARNING: vmlinux.o(.data+0x2e5ff0): Section mismatch: reference to .init.text:snd_ad1889_probe (between 'ad1889_pci' and 'index')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>

AK4XXX AD/DA converters

- switching rate in STAC9460 codec of Prodigy192
* support for switching rate in STAC9460 - using set_rate_val of the akm
infrastructure
* listing all STAC9460 registers in proc
* disabling mpu401 device for Prodigy192 - otherwise the currently
flawed mpu401 code hangs kernel when opening the midi device
* removing old unused commented-out code
Signed-off-by: Pavel Hofman <dustin@seznam.cz>
- ak4xxx - Check value ranges in ctl callbacks
Check the value ranges in ctl put callbacks properly in ak4xxx-adda driver.

ALS100 driver

- sound/isa: kill pnp_resource_change
This removes the pnp_resource_change use from the ALSA ISAPnP drivers. In
2.4 these were useful in providing an easy path to setting the resources,
but in 2.6 they retain function as a layering violation only.
This makes for a nice cleanup (-550 lines) of ALSA but moreover, ALSA is the
only remaining user of pnp_init_resource_table(), pnp_resource_change() and
pnp_manual_config_dev() (and, in fact, of "struct pnp_resource_table") in
the tree outide of drivers/pnp itself meaning it makes for more cleanup
potential inside the PnP layer.
Thomas Renninger acked their removal from that side, you did from the ALSA
side (CC list just copied from that thread).
Against current alsa-kernel HG. Many more potential cleanups in there, but
this _only_ removes the pnp_resource_change code. Compile tested against
current alsa-kernel HG and compile- and use-tested against 2.6.23.x (few
offsets).
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Cc: Thomas Renninger <trenn@suse.de>

ALSA sequencer

- sound/core/seq: move declarations of globally visible variables to proper headers
sound/core/seq: move declarations of globally visible variables to proper headers
Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>
- remove seq_instr.c
Remove seq_instr.c from the Makefile for old kernels.
- fix inclusion of adriver.h
Add or move the inclusion of "adriver.h" to the proper places in some
build stubs.
- Remove sequencer instrument layer
Remove sequencer instrument layer from the tree.
This mechanism hasn't been used much with the actual devices. The only
reasonable user was OPL3 loader, and now it was rewritten to use hwdep
instead. So, let's remove the rest of rotten codes.
- Remove sequencer instrument layer
Remove the alsa-driver build stub for sequencer instrument layer.
- Salvage old seq instrument layer codes
Salvate old sequencer instrument layer codes to "old" directory,
just for good and old memories.
- Fix misspellings of "system", "controller", "interrupt" and "necessary".
Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>

ALSA<-OSS emulation

- Add more fallbacks to OSS PHONEOUT mixer map
Added more fallbacks to OSS PHONEOUT mixer mapping. This corresponds
to the speaker output in general, so now "Mono" and "Speaker" are
assigned.
- Fix Oops with PCM OSS sync
The PCM OSS emulation can cause Oops at sync operation due to the wrong
data size calculation. Typically happening on Sparc64:
http://lkml.org/lkml/2008/1/24/426
- snd_mixer_oss_build_input(): fix for __you_cannot_kmalloc_that_much failure with gcc-3.2
Rework this functions so that gcc-3.2 can successfully perform
constant-folding.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Remove PCM xfer_align sw params
The xfer_align sw_params parameter has never been used in a sane manner,
and no one understands what this does exactly. The current
implementation looks also buggy because it allows write of shorter size
than xfer_align. So, if you do partial writes, the write isn't actually
aligned at all.
Removing this parameter will make some pcm_lib_* code more readable
(and less buggy).
- Remove PCM sleep_min and tick
The "tick" in PCM is set (again) via sw_params. And, nobody uses
this feature at all except for a command line option of aplay.
(This is literally "nobody", as I checked alsa-lib API calls in all
programs in major distros.)
Above all, if we need finer wake-ups for the position update, it's
basically an issue that the driver should solve, not tuned by each
application.

ARM AACI PL041 driver

- Remove sound/driver.h
This header file exists only for some hacks to adapt alsa-driver
tree. It's useless for building in the kernel. Let's move a few
lines in it to sound/core.h and remove it.
With this patch, sound/driver.h isn't removed but has just a single
compile warning to include it. This should be really killed in
future.
- Add missing newlines to some uses of dev_<level> messages
Found these while looking at printk uses.
Add missing newlines to dev_<level> uses
Add missing KERN_<level> prefixes to multiline dev_<level>s
Fixed a wierd->weird spelling typo
Added a newline to a printk
Signed-off-by: Joe Perches <joe@perches.com>

ARM PXA2XX driver

- Add missing device link
Added the missing link to struct device from the card instance.
- [ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code
Fix CKEN register corruption in the PXA27x cold reset code
located in sound/arm/pxa27x-ac97.c. The problem has been
introduced with a pxa_set_cken() function change in linux 2.6.23.
This patch is based on patch 4527/1 that fixes the same problem in
the ASoC PXA-AC97 driver. Additionally a definition for the CKEN
index value is added and applied to both PXA AC97 drivers.
Signed-off-by: Michael Brunner <mibru@gmx.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

ATIIXP driver

- sound: fix atiixp section mismatch
Fix section mismatch in atiixp by making some functions __devinit.
WARNING: vmlinux.o(.text+0xfd9304): Section mismatch: reference to .init.data:atiixp_quirks (between 'ac97_probing_bugs' and 'snd_atiixp_codec_detect')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>

AZT2320 driver

- sound/isa: kill pnp_resource_change
This removes the pnp_resource_change use from the ALSA ISAPnP drivers. In
2.4 these were useful in providing an easy path to setting the resources,
but in 2.6 they retain function as a layering violation only.
This makes for a nice cleanup (-550 lines) of ALSA but moreover, ALSA is the
only remaining user of pnp_init_resource_table(), pnp_resource_change() and
pnp_manual_config_dev() (and, in fact, of "struct pnp_resource_table") in
the tree outide of drivers/pnp itself meaning it makes for more cleanup
potential inside the PnP layer.
Thomas Renninger acked their removal from that side, you did from the ALSA
side (CC list just copied from that thread).
Against current alsa-kernel HG. Many more potential cleanups in there, but
this _only_ removes the pnp_resource_change code. Compile tested against
current alsa-kernel HG and compile- and use-tested against 2.6.23.x (few
offsets).
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Cc: Thomas Renninger <trenn@suse.de>

Apple Onboard Audio driver

- add number of periods constraint to snd-aoa
The aoa driver is not specifying constraints on number of periods, and, it
seems, it might end with a non-integer number, which it cannot deal with.
Fix by adding a proper constraint.
Signed-off-by: Heikki Lindholm <holindho@cs.helsinki.fi>
- aoa - fix compile warning
Set a proper error code in the error path of i2sbus_attach_codec().
- aoa - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in aoa drivers.
- Remove sound/driver.h
This header file exists only for some hacks to adapt alsa-driver
tree. It's useless for building in the kernel. Let's move a few
lines in it to sound/core.h and remove it.
With this patch, sound/driver.h isn't removed but has just a single
compile warning to include it. This should be really killed in
future.

Asihpi driver

- asihpi - big updates
* Merged all files relating to HPI4000 into hpi4000.[ch] (remove
hpi56301.[ch], boot4ka.h, dpi56301.h
* Removed hpicheck.h
* add hpimsginit.[ch] (no new functions)
Cosmetic changes
* Code is mostly 'checkpatch clean', though still some real work to do
around our use of volatile for structures that are updated by DMA by our
adapters
* Only 2 'sparse' warnings
* Got rid of nearly all typedefs, and most thin wrappers around kernel
functions.
* hpifunc.c now has no comments. They might return when we get around
to grinding them all down to 80 columns...
- asihpi - Remove hpi_data_compat32
Remove hpi_data_compat32 including undefined data type that prevents
build with 64bit arch.
- asihpi checkpatch clean plus control name refactor
checkpatch.pl --no-tree now reports no errors on asihpi.c
Redo control names to be strings only (not using control index)
Signed-off-by: Eliot Blennerhassett <linux@audioscience.com>
- asihpi version 3.09.09
Main changes in this set:
* Redo comment formatting so block comments are properly indented with code
(bulk of changes)
hpifunc.c:
* Remove HPI_UNUSED macro from hpifunc
* Remove error->string translation, hence strcpy
hpios_linux_kernel.*
* Remove use of slab cache for DMA memory allocation tracking
hpicmn.*:
* Rename some functions to give Hpi prefix, made others static
hpimod.c
* Replace semaphore with mutex
* Make driver cleanup more 'normal'
hpi6205.c hpi6000.c hpimsgx.c
* Pull some error handling up into hpimsgx.c
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>

Atmel AT73C213 DAC driver

- at73c213: replace spinlock in mixer functions with a mutex
This patch fixes the locking bug in the at73c213 SPI sound driver. This bug was
triggered because spinlocks were wrapped around the spi_sync call which might
sleep. The fix was to add a mutex to the sound driver and replace the spinlocks
in the mixer functions with mutex lock/unlock.
Tested on STK1000/STK1002.
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
- at73c213 - Use common callback
Use snd_ctl_boolean_mono_info callback to simplify.

BT87x driver

- snd-bt87x: Make the load_all option work correctly
If the load_all option was turned on all cards would be treated as unknown,
even those which are in the database. Of course, if the card is in the
database there is no reason to use the load_all option. It's there to force
loading when the card isn't in the database. But there are out of date wikis
that say to do this and some distros might turn this option on by default.
So, we keep the load_all option from turning known cards into unknown cards.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
- Regenerate bt87x.patch
Regenerated for the last change from pci_mach_device() to pci_match_id().
- bt87x - Fix section mismatch
const and __devinit aren't a good pair, resulting in a section
mismatch error. Let's remove const as a temporary solution.

CA0106 driver

- ca0106 - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly.
Some callbacks may access a wrong pointer depending on the value passed.
Also, fixed the access to the wrong field for enum values, and fixed
some callbacks to return the proper error code.
- sound/pci: remove line duplications in defines
Remove line duplications in defines.
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Acked-by: Thomas Sailer <sailer@ife.ee.ethz.ch>
- ca0106 - Fix write proc assignment
The driver assigns the write proc callback to read wrongly.
Fixed now.

CMI8788 (Oxygen) driver

- oxygen - Fix section mismatch
Removed invalid __devinit and __devexit that are remaining after
split to a helper module.
- oxygen: use uintptr_t in pointer casts
When we store the DMA channel number in the substream's private_data
pointer, use uintptr_t as an intermediate step when casting from/to
unsigned int to prevent the compiler from whining when the pointer size
is different.
- oxygen: add register definitions
Add more symbols for registers and register fields.
- oxygen: fix playback routing
The default playback routing must be 0xe4, not 0xe1; the front and
surround DACs were exchanged.
- oxygen: make the number of analog output configurable
Add a field to struct oxygen_model to allow model drivers for cards with
less than eight output channels.
- oxygen: more initialization
Initialize more registers of the controller and the second AC97 codec.
- add TempoTec HiFier driver
Add a driver for the MediaTek/TempoTec HiFier Fantasia sound card.
- oxygen: add channel status controls
Add mixer controls to manage the S/PDIF channel status bits.
- oxygen: add SPDIF input channel status control
Add a mixer control to read the channel status bits of the SPDIF input.
- oxygen: fix channel routing
Do not exchange the surround and back jacks except when in 7.1 mode
where the surround jack is not rear but side.
- oxygen: use an array of snd_kcontrol pointers
Use an array for the pointers to known controls so that it is easier to
add more.
- oxygen: make line-in switch exclusive
The line input cannot be mixed with the other inputs, so we have to mute
the other input switches when it is selected.
- oxygen: remove magic numbers
Replace some magic numbers with register symbols.
- oxygen: fix pause handling
Use the DMA_PAUSE register for pausing instead of stopping DMA.
- oxygen: remove MIDI autodetection
The MIDI bit in the MISC register is set by default and cannot be used
to detect the presence of a MIDI port. Instead, add a parameter to the
oxygen_pci_probe() function so that model drivers can specify this.
- oxygen: add more symbols
Add symbol definitions for the various codecs and GPIO pins.
- oxygen: allow more sample rates with WM8785
Allow to record with 32 kHz, 64 kHz, 88.2 kHz and 176.4 kHz with cards
that have a WM8785 ADC.
- oxygen: reduce SPI clock frequency for AK4396/WM8785
According to the datasheets, the SPI clock cycle must be at least 200 ns
for the AK4396 and the WM8785, so we cannot use the default 160 ns.
- oxygen: move model-specific data out of common header
Instead of having model-specific fields in the common struct oxygen, put
them into a private structure that is allocated together with the card
structure.
- oxygen: fix control filter
Actually use the template that was maybe changed by the control filter
instead of the original one.
- oxygen: fix DAC source register fields
Fix some wrong values for the definitions of the source masks for DACS 1
and 3.
- oxygen: add 192 kHz SPDIF input support
Change the oxygen_spdif_input_bits_changed() function so that clock
changes on the SPDIF input are correctly detected. This means that
sample rates greater than 96 kHz are now supported.
- oxygen: optimize snd_pcm_hardware structures
Add one more indirection to the lookup of the snd_pcm_hardware
structures so that we can save the space of the duplicate ones.
- oxygen: fix AK4396 double rate upper limit
Fix the upper sample rate limit for the double rate mode of the AK4396
to the value from the datasheet.
- oxygen: make line-in exclusive only on Xonar
Move the line input switching code to the Virtuoso driver because only
the Xonar cards bypass the analog mixer for line input.
- oxygen: use AC97 interrupt
After an AC97 register read or write, use the AC97 interrupt instead of
polling to wait for the access to be completed.
- oxygen: add front panel controls
Add mixer controls for the front panel AC97 codec.
- oxygen: add front panel capture
When a second AC97 codec is present, add a PCM device for capturing from
the front panel.
- virtuoso: monitor external power on D2X
On the Xonar D2X, monitor the GPIO pin that indicates whether external
power is present.
- virtuoso: fix build on 2.2 kernels
- cmi8788: driver rewrite
complete rewrite; still incomplete
- oxygen: show AC97 registers in proc file
Add the registers of the first AC97 codec to the cmi8788 proc file.
- oxygen: better AC97 initialization
Reset the AC97 codec before initialization, power down any unused parts
of the codec, and make the AC97 reads and writes more robust.
- oxygen: remove CH_CODEC macro
Remove the CH_CODEC macro because this mapping can be done just as well
in the codec_map array.
- oxygen: add AC97 controls
Add AC97 controls to manage routing and gain of the analog inputs.
- oxygen: fix digital output
Actually enable the SPDIF transmitter when using it, and set the channel
status bit according to the used sampling rate.
- oxygen: 32-byte alignment
Force periods and buffers to be 32-byte aligned, otherwise the interrupt
timing gets jittery.
- oxygen: use common hw_params function
Factor out the common code of the hw_params callbacks.
- oxygen - Add missing inclusion of linux/delay.h
- virtuoso: add ALT mixer control
Add a mixer switch to enable analog loopback.
- oxygen: move to kernel tree
Move the oxygen and virtuoso drivers to the kernel tree.
- add CMI8788 driver
Add the snd-oxygen driver for the C-Media CMI8788 (Oxygen) chip, used on
the Asound A-8788, AuzenTech X-Meridian, Bgears b-Enspirer,
Club3D Theatron DTS, HT-Omega Claro, Razer Barracuda AC-1,
Sondigo Inferno, and TempoTec HIFIER sound cards.
- add Asus Xonar driver
Add the snd-virtuoso driver for the Asus Virtuoso 200 chip used on the
PCI and PCI-E models of the Xonar sound card.
- oxygen: make the I2S format configurable
Add proper register bit symbols for the I2S format field, and allow card
models to configure the I2S format to be used for the DACs and ADCs.
- oxygen: fix SPDIF input rates
Fix up SPDIF input sample rates again: 32 kHz and 64 kHz are not
supported.
- oxygen: remove MIDI for generic cards
None of the reference design models have MIDI, only the X-Meridian
allows to connect a MIDI adapter.
- oxygen: rename OXYGEN_PCI_ID macro
Rename the OXYGEN_PCI_ID macro to OXYGEN_PCI_SUBID.
- oxygen: initialize WM8785
Initialize the WM8785 chip, and move the initialization code for it and
for the AK5385 into separate functions.
- oxygen: fix AK4396 initialization
Reverse the polarity of the AK4396's RSTN bit; it must be set to power
up the chip.
- oxygen: rename model_data
Rename the model_data field to ak4396_reg1 because it isn't used for
anything else.
- oxygen: reset AK4396 while setting format
Reset the AK4396 chips while setting parameters; the datasheet says
reset is needed whem the master clock changes.
- oxygen: initialize AC97 registers
Initialize the registers of the first AC97 codec so that recording may
work.
- oxygen: fix compilation with older kernels
Fixes for the build system, header files and compilers for older kernels.
- oxygen: fix digital rate when playing through the analog device
When the data from the analog playback channel is copied to the digital
output, adjust the rate of the digital output, too.
- oxygen: fix line-in recording selection
The GPIO pin 0 of the CM9780 must be set when muting the line input even
on non-Xonar cards.
- oxygen: rename PCM to Master
Rename the "PCM Playback Volume"/"Switch" mixer controls to "Master".
- oxygen: add SPDIF loopback control
Add a mixer control for the SPDIF loopback function.
- oxygen: note active streams
Add a variable to save the streams that are currently opened.
- oxygen: add a mutex
Add a mutex to protect accesses to mixer registers.
- oxygen: add more capture rates
For cards with AK5385 and CS5381 DACs, enabled all supported sample
rates.
- oxygen: initialize AK5385 DFS pins
When initializing, set the DFS pins to normal mode.
- oxygen: init AC97 interrupt mask
When initializing, clear the AC97 interrupt mask register because we
never use this interrupt.
- oxygen: fix S/PDIF capture rates
It seems the only sample rates supported by the digital input port are
44.1, 48, 88.2 and 96 kHz.
- oxygen: add S/PDIF playback switch
Add a mixer control to enable playback of the front channel data on the
digital port.
- oxygen: make AC97 codec optional
Only initialize and create mixer controls for the first AC97 codec when
one has actually been detected.
- oxygen: make SPI configuration configurable
Add a field to the model structure so that it is possible to have a card
where the SPI outputs 4 and 5 are used for an EEPROM.
- oxygen: make all DMA channels configurable
Allow the card models to specify whether each of the hardware DMA
channels is used.
- oxygen: add control filter to model struct
Allow the models to modify mixer controls before they are added to the
card.
- oxygen: make PCM limits configurable
Add a callback to the model structure to allow modification of the
hardware PCM limits.
- oxygen: revert SPI clock frequency change for AK4396/WM8785
While the AK4396 and WM8785 datasheets say that the SPI clock cycle
length must be at least 200 ns, 320 ns seems not to work reliably with
the controller, so we better use 160 ns.

CMI8788 driver

- cmi8788: driver rewrite
complete rewrite; still incomplete
- cmi8788 - Comment out superfluous struct fields
struct semaphore is very old and we don't use them really.
Let's fix and comment out until implemented.

CMIPCI driver

- cmipci: disable "Modem" control on version 39 or newer chips
On version 39 or newer chips, we better remove the "Modem" control
because this register bit now mutes the front channels of the
multichannel stream.
- cmipci: document "Modem" control version check
Add a comment that explains why the "Modem" control doesn't work with
newer chips.
- cmipci: fix FLINKON/OFF bits
Fix the definitions of the CM_FLINKON/CM_FLINKOFF register bits that
were garbled in the last "update register definitions" patch.
- cmipci - utilize ADC48K44K bit
Setting the ADC48K44K greatly improves capture quality at 48k sampling rate.
With this bit clear ADC does ZOH interpolation of every 22th sample at 48k.
At frequencies higher than 48k there ADC performs a little better with
ADC48K44K bit set.
At 44.1k ADC performs a little better with this bit clear.
At frequencies below 44.1k there is no difference.
Signed-off-by: Timofei Bondarenko <tim@ipi.ac.ru>
- cmipci - allow capture of raw spdif subframes
Enable capturing of raw 32bit IEC958_SUBFRAME.
The 24-bits PCM data can be obtained using iec958 plugin.
Known problem: captured stream may begin with either left or right
subframe. Since the iec958 plugin doesn't decode preamble it may swap
the channels sometime.
Signed-off-by: Timofei Bondarenko <tim@ipi.ac.ru>
- cmipci at 96kHz
This patch adds support for 88.2k, 96k, and 128k samplerates
on cmi8738-55 chip.
Analog playback works fine on all channels.
Analog capture works well too, though the extra samples seems
interpolated by hardware.
spdif playback and capture works fine.
Signed-off-by: Timofei Bondarenko <tim@ipi.ac.ru>

CREDITS file

- 2.6 kernel sync

CS4231 driver

- cs4231: remove one busy wait
This busy_wait is not needed after latest changes
to the cs4231-lib
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- include/sound/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>

CS46xx driver

- sound: remove dead config symbol from sound code
remove dead config symbols from sound code
Signed-off-by: Jiri Olsa <olsajiri@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- sound/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>

CS5535 driver

- cs5535audio - Fix available sample rates
The available sample rates on CS5535 depend on AC97 codec chip.
Set the additional hw params limit.
- fix cs5535 section mismatch
snd_cs5535audio_mixer() is only called by __devinit snd_cs5535audio_probe(),
so the mixer function can also be __devinit.
WARNING: vmlinux.o(.text+0xfdbba0): Section mismatch: reference to .init.data:ac97_quirks (between 'snd_cs5535audio_mixer' and 'process_bm0_irq')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>

CX88 driver

- V4L/DVB (6185): cx88-alsa: Add mute controls, change control names
Add two mute controls. One mutes everything, the other just mutes the analog
pass-through output.
Rename the existing volume control. The controls are now:
Playback Volume
Playback Switch
Capture Switch
These names might seem odd, but I believe they are more correct. The previous
"Capture Volume" control didn't actually effect the volume of the captured
audio. Instead it controls the volume of the analog pass-thought output. It
appears that pass-through controls like this are usually considered to be in
the playback direction, not capture. For example, "CAPTURE feedback Playback
Volume" is the name used for a control that appears to have the same effect in
the ca0106 driver. We only have one volume control, so we can omit the
"CAPTURE feedback" part.
If someone where to add PCM playback support to the driver, then this
would be the volume control.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
- V4L/DVB (6187): cx88-alsa: Add TLV support
Lets mixer apps display a dB range for the volume control.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
- V4L/DVB (6600): V4L: videobuf: don't chew up namespace STATE_.*, convert to VIDEOBUF_
s/STATE_NEEDS_INIT/VIDEOBUF_NEEDS_INIT/g
s/STATE_PREPARED/VIDEOBUF_PREPARED/g
s/STATE_QUEUED/VIDEOBUF_QUEUED/g
s/STATE_ACTIVE/VIDEOBUF_ACTIVE/g
s/STATE_DONE/VIDEOBUF_DONE/g
s/STATE_ERROR/VIDEOBUF_ERROR/g
s/STATE_IDLE/VIDEOBUF_IDLE/g
Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

Digigram PCXHR driver

- pci - check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in the rest of
PCI drivers.

Digigram VX Pocket driver

- vxpocket - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks in vxpocket driver.

Digigram VX core

- vxpocket - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks in vxpocket driver.

Documentation

- hda-codec - Add Conexant 5051 codec support
Added the support for Conexant 5051 audio codec.
Right now there are two preset models, laptop and hp.
The whole patch is based on the information from the base patch by
Linuxant.
- sound/isa: kill pnp_resource_change
This removes the pnp_resource_change use from the ALSA ISAPnP drivers. In
2.4 these were useful in providing an easy path to setting the resources,
but in 2.6 they retain function as a layering violation only.
This makes for a nice cleanup (-550 lines) of ALSA but moreover, ALSA is the
only remaining user of pnp_init_resource_table(), pnp_resource_change() and
pnp_manual_config_dev() (and, in fact, of "struct pnp_resource_table") in
the tree outide of drivers/pnp itself meaning it makes for more cleanup
potential inside the PnP layer.
Thomas Renninger acked their removal from that side, you did from the ALSA
side (CC list just copied from that thread).
Against current alsa-kernel HG. Many more potential cleanups in there, but
this _only_ removes the pnp_resource_change code. Compile tested against
current alsa-kernel HG and compile- and use-tested against 2.6.23.x (few
offsets).
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Cc: Thomas Renninger <trenn@suse.de>
- HDA: Add support for Samsung Q1 Ultra Vista edition
This patch adds full record and playback support for the Samsung Q1
Ultra - Vista model (different codec than the earlier Q1 Ultra models).
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- Introduce slots option to snd module
Introduced the global "slots" option to snd module. This option provides
an alternative way to handle the order of multiple sound card instances.
It's an easier approach to avoid conflict with hotplug devices, and can
be used together with the existing "order" option of each card driver.
- hda-codec - Add support of Zepto laptops
Adds support for zepto laptops with alc268 intel_hda codec.
Signed-off-by: Mirco Tischler <mt-ml@gmx.de>
- hda-intel - Support multiple devices
It turned out that there can be multiple HD-audio devices on a single
machine (e.g. on-board audio and HDMI on graphic cards), so we need to
support multiple devices with snd-hda-intel driver.
- oxygen: update ALSA-Configuration.txt
Add documentation entries for snd-oxygen and snd-virtuoso.
- oxygen: TempoTec HiFier is probably not supported
The TempoTec HiFier has a somwhat different architecture; remove it from
the list of cards that are known to be supported.
- hda: Fix 5.1 sound in Dell 6stack ALC888 HDA
This patch fixes 5.1 surround output and headphone detection in the
Dell Inspiron 530 and possibly other Dell systems using the ALC888
codec (mode 6stack-dell).
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- Update descriptions of isapnp-specific module options
Signed-off-by: Rene Herman <rene.herman@gmail.com>
- hda-codec - Initial support of the Mitac 8252D (based on ALC883)
The attached patch adds initial support of the Mitac 8252D
(http://www.mitac-mtc.com.tw/English/products/8252Dspec.htm).
Working:
- Front speakers (volume + mute)
- Center/LFE speakers (volume + mute)
- HP out (with Front Volume)
- HP individual mute switch
- HP Jack sense
- Front Mic and its volume
Not tested:
- external mic and its volume
Not working while now:
- Mic Jack sense
Questionable:
- is Mic have Jack sense?
- one or two Mic volume controls?
- CD/Line-in: presense in the mixer
Signed-off-by: Andy Shevchenko <andy@smile.org.ua>
- hda-codec - Update realtek codec support
1. Support HP rp5700
2. Fixed alc_subsystem_id function (Bug fixed and support Desktop)
3. Support ASUS EP20
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- Add missing model for HD-audio Cx5045 codec
Added the description of the model fujitsu for Cx5045 codec chip.
- hda-codec - New model for conexant 5045 codec to support benq r55e
The benq r55e laptop have 3 jacks on the front panel.
One for HP, one for Line In and one for Mic In.
This patch implemented a new model to support it.
Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
- hda-codec - Add test model for ALC268
This implements a test model for the ALC268. It depends on the feature
added by alc260-test-eapd-0.2.diff. This patch also adds a mention of
the ALC260 test model to ALSA-Configuration.txt since this seems to have
been missed.
Signed-off-by: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
- Remove PCM xfer_align sw params
The xfer_align sw_params parameter has never been used in a sane manner,
and no one understands what this does exactly. The current
implementation looks also buggy because it allows write of shorter size
than xfer_align. So, if you do partial writes, the write isn't actually
aligned at all.
Removing this parameter will make some pcm_lib_* code more readable
(and less buggy).
- Remove sound/driver.h
This header file exists only for some hacks to adapt alsa-driver
tree. It's useless for building in the kernel. Let's move a few
lines in it to sound/core.h and remove it.
With this patch, sound/driver.h isn't removed but has just a single
compile warning to include it. This should be really killed in
future.
- hda-codec - Add the support of Dell OEM laptops with ALC268
Added the support of Dell OEM laptops (Vostro 1200) with ALC268 codec.
The new model=dell is provided.
- hda-codec - Fix laptop models for Cxt5045
Change laptop models to three different models, laptop-hpsense,
laptop-micsense and laptop-hpmicsense. The first two correspond to
the old "laptop" and "fujitsu" models.
Reassigned the quirk table for the new models.
Signed-off-by: Marc Boucher <marc@linuxant.com>
- hda-codec - Add Dell T3400 support
Added the support for Dell T3400 with AD1984 codec chip.
ALSA bug#3699:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3699
Signed-off-by: Douglas Kosovic <douglask@itee.uq.edu.au>
- ice1724 - Add support of Onkyo SE-90PCI and SE-200PCI
Added the support for Onkyo SE-90PCI and SE-200PCI boards.
Signed-off-by: Shin-ya Okada <sh_okada at d4.dion.ne.jp>
- ASoC documentation updates
Update the ASoC documentation. Along with minor formatting and grammar
cleanups it moves the ASoC overview into the present tense to reflect
the fact that it has now been merged.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- hda-codec - Add model=hp-tc-t5735 for ALC262
Added the missing model string for the new support of HP TC T5735.
- typo fixes
Most of these fixes were already submitted for old kernel versions, and were
approved, but for some reason they never made it into the releases.
Because this is a consolidation of a couple old missed patches, it touches both
Kconfigs and documentation texts.
Signed-off-by: Matt LaPlante <kernel1@cyberdogtech.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
- hda-codec - Add missing eeepc-p701 model for ALC662
Added the missing model string "eeepc-p701" for ALC662 codec.
- writing-an-alsa-driver.tmpl: English style improvements
This patch brings some English style improvements throughout the
document, as well as 1 or 2 extra technical details.
Signed-off-by: Michael Opdenacker <michael@free-electrons.com>

Dreamcast AICA sound (pcm) driver

- Dreamcast AICA sound - Get rid of annoying compiler warning
This patch supresses an annoying compiler warning that the variable
err may be used uninitialised.
Signed-off by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
- protect Dreamcast PCM driver (AICA) from G2 bus effects
The G2 bus on the SEGA Dreamcast connects both the maple peripheral
bus and the AICA sound memory. DMA requests on one can cause the other
to timeout on memory operations.
This patch prevents maple interrupts from causing hiccoughs in the
AICA sound (maple bus code will land in 2.6.24).
There are other cleanups for this (AICA) code - but this is in effect
a regression fix rather than a cleanup.
Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk>

EMU10K1/EMU10K2 driver

- emu10k1 - Fix kthread handling at resume
Don't create emu1010 kthread again at resume if it's already created.
Also make the thread function static.
- emu10k1 - Don't create emu1010 controls for non-emu boards
The last change for emu1616 introduced a bug that the driver creates
emu1010-related controls even on non-emu boards. Fixed now.
- emu10k1 - Use enum for emu_model types
Use enum instead of digits for emu_model types.
- Fix emu10k1_main.c for changes to enum of emu_model types
- emu10k1 - Another EMU0404 Board ID
This is based on pseudo-random playing around with the capabilities.
With ca0102 this card gives no output atall, ca0108 appears to work
fine, so it rather looks similar to the EMU1010b/EMU1010 changes.
Some other people seem to have succeeded in using this aswell:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3496
From: Veli-Matti Valtonen <maligor@gmail.com>
- snd-emu10k1:Fix typo in E-Mu 0404 support. Card should now be recognised
correctly.
- emu10k1: Update for E-Mu 0404
- emu10k1: Add comments regarding E-Mu ins and outs.
- emu10k1: Add mixer controls parameter checking.
- emu10k1x - Add missing snd_card_set_dev call
Added the missing snd_card_set_dev() call. This will fix the incomplete
sysfs entry for this card.
- emu10k1 - Fix over-sized kmalloc for TLV
Reported by Al Viro:
In copy_tlv(), the size of kmalloc is wrongly calculated.
- emu10k1: General cleanup, add new locks, fix alsa bug#3501, kernel bug#9304.
- snd:emu10k1: E-Mu updates. Fixes to firmware loading and support for 0404.
- snd:emu10k1:Update patches due to changes in alsa-kernel.
- emu10k1 - 1616(M) cardbus improvements
This patch improves E-Mu 1616(M) cardbus support. It adds definitions of the
new Microdock and 1010 cardbus registers (thanks again for descriptions
James) and improves mixer for this card. Now you can use S/PDIF and ADAT on
Mirodock and also use headpohone output on host cardbus card as another
independent output.
Signed-off-by: Ctirad Fertr <c.fertr@gmail.com>
- emu10k1 - Check value ranges in ctl callbacks
Check value ranges in ctl callbacks properly. This fixes the unexpected
crash due to wrong value assignment.
Also, remove invalid comments in the last patch.

EMU8000 driver

- fix inclusion of adriver.h
Add or move the inclusion of "adriver.h" to the proper places in some
build stubs.

ES18xx driver

- es18xx: Enable wavetable input from ESS chips
This patch enables wavetable chips ES689/ES69X connected to
ESS ES18xx chips. The wavetable chip uses FM DAC if the clock signal
from the wavetable is active.
It has no effect if there is no ESS wavetable chip present.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- sound/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>
- Fix misspellings of "system", "controller", "interrupt" and "necessary".
Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>

ES1938 driver

- es1938 - improve capture hw pointer reads
With the Solo1 (es1938) I got a lot of xrun's during capture on my machine.
Tracing that down it seems to be comming from reading ocassionaly bad hw
pointers from the chip. This patch uses more checking to avoid that false
pointer reads.
Failed reads are giving back the last good value read instead of spinning in
a tight loop, which seems more appropriate to me in an interrupt. I think I
saw this trick used in another driver
Signed-off-by: Hermann Lauer <Hermann.Lauer@iwr.uni-heidelberg.de>

Echoaudio driver

- echoaudio - convert from semaphore to mutex
Converted from semaphore to mutex.

FM801 driver

- fm801 - Add mute support for FM-only card with FM801 PCI to tuner bridge
This is improvement of the early support of the FM-only cards where the
fm801 chip represents the PCI to tuner bridge.
The tuner initialization isn't included the mute on as well as mute support
via V4L request. Proposed patch should fix this at least for 64-PCR model.
Signed-off-by: Andy Shevchenko <andy@smile.org.ua>

GUS Library

- fix bootup crash in snd_gus_interrupt()
when simulating a storm of fake GUS interrupts (without actually owning
this venerable piece of ISA hardware) the driver falls over (crashes) in
two ways:
1) spinlocks being initialized too late:
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
[<401058ca>] show_trace_log_lvl+0x1a/0x30
[<401064b2>] show_trace+0x12/0x20
[<401064d6>] dump_stack+0x16/0x20
[<4014a72b>] __lock_acquire+0xcfb/0x1030
[<4014aac0>] lock_acquire+0x60/0x80
[<40721a68>] _spin_lock_irqsave+0x38/0x50
[<4058fc12>] snd_gf1_i_look8+0x22/0x60
[<405906fe>] snd_gus_interrupt+0x13e/0x270
[<401548e8>] handle_IRQ_event+0x28/0x60
[<40155cc1>] handle_fasteoi_irq+0x71/0xe0
[<40107238>] do_IRQ+0x48/0xa0
[<401051fe>] common_interrupt+0x2e/0x40
[<40156822>] register_handler_proc+0x92/0xf0
[<401550c2>] setup_irq+0xe2/0x190
[<40155224>] request_irq+0xb4/0xd0
[<4058f524>] snd_gus_create+0x124/0x3c0
[<40aa4087>] snd_gusclassic_probe+0x2a7/0x4b0
[<403f5eff>] isa_bus_probe+0x1f/0x30
[<403f1944>] driver_probe_device+0x84/0x190
[<403f1a58>] __device_attach+0x8/0x10
[<403f0e63>] bus_for_each_drv+0x53/0x80
[<403f1b1b>] device_attach+0x8b/0x90
[<403f0dd8>] bus_attach_device+0x48/0x80
[<403efdbd>] device_add+0x45d/0x5a0
[<403eff12>] device_register+0x12/0x20
[<403f60c3>] isa_register_driver+0xb3/0x140
[<40aa3dd2>] alsa_card_gusclassic_init+0x12/0x20
[<40a665c3>] kernel_init+0x133/0x310
[<401054a7>] kernel_thread_helper+0x7/0x10
=======================
2) callback functions not being filled in yet:
BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 00000000
Oops: 0000 [#1]
SMP DEBUG_PAGEALLOC
CPU: 0
EIP: 0060:[<00000000>] Not tainted VLI
EFLAGS: 00010002 (2.6.23 #37)
EIP is at 0x0
eax: 7fe94000 ebx: 7fe94000 ecx: 00000000 edx: 00000226
esi: 00000000 edi: 00000005 ebp: 7ff87c28 esp: 7ff87bf4
ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068
Process swapper (pid: 1, ti=7ff86000 task=7ff84000 task.ti=7ff86000)
Stack: 40590683 408424a9 408db87c 00000029 40787406 00000064 00000046 ff000000
000000ff 00000001 7faefaf0 00000000 00000005 7ff87c40 401548e8 00000000
40a52000 7faefaf0 00000005 7ff87c58 40155cc1 40a52030 00000005 00000000
Call Trace:
[<401058ca>] show_trace_log_lvl+0x1a/0x30
[<4010598b>] show_stack_log_lvl+0xab/0xd0
[<40105b7c>] show_registers+0x1cc/0x2d0
[<40105d96>] die+0x116/0x240
[<4011d7bb>] do_page_fault+0x18b/0x670
[<40721d22>] error_code+0x72/0x80
[<401548e8>] handle_IRQ_event+0x28/0x60
[<40155cc1>] handle_fasteoi_irq+0x71/0xe0
[<40107238>] do_IRQ+0x48/0xa0
[<401051fe>] common_interrupt+0x2e/0x40
[<401a344e>] proc_create+0x3e/0x120
[<401a3733>] proc_mkdir_mode+0x23/0x50
[<401a376f>] proc_mkdir+0xf/0x20
[<40156864>] register_handler_proc+0xd4/0xf0
[<401550c2>] setup_irq+0xe2/0x190
[<40155224>] request_irq+0xb4/0xd0
[<4058f524>] snd_gus_create+0x124/0x3c0
[<40aa4087>] snd_gusclassic_probe+0x2a7/0x4b0
[<403f5eff>] isa_bus_probe+0x1f/0x30
[<403f1944>] driver_probe_device+0x84/0x190
[<403f1a58>] __device_attach+0x8/0x10
[<403f0e63>] bus_for_each_drv+0x53/0x80
[<403f1b1b>] device_attach+0x8b/0x90
[<403f0dd8>] bus_attach_device+0x48/0x80
[<403efdbd>] device_add+0x45d/0x5a0
[<403eff12>] device_register+0x12/0x20
[<403f60c3>] isa_register_driver+0xb3/0x140
[<40aa3dd2>] alsa_card_gusclassic_init+0x12/0x20
[<40a665c3>] kernel_init+0x133/0x310
[<401054a7>] kernel_thread_helper+0x7/0x10
=======================
Code: Bad EIP value.
EIP: [<00000000>] 0x0 SS:ESP 0068:7ff87bf4
Kernel panic - not syncing: Fatal exception in interrupt
with these things fixed, i get the expected "no such hardware" result
from the driver initialization:
Calling initcall 0x40aa3dc0: alsa_card_gusclassic_init+0x0/0x20()
ALSA sound/isa/gus/gusclassic.c:136: [0x220] check 1 failed - 0xff
initcall 0x40aa3dc0: alsa_card_gusclassic_init+0x0/0x20() returned 0.
initcall 0x40aa3dc0 ran for 133 msecs:
alsa_card_gusclassic_init+0x0/0x20()
Signed-off-by: Ingo Molnar <mingo@elte.hu>
- Remove sequencer instrument layer
Remove sequencer instrument layer from the tree.
This mechanism hasn't been used much with the actual devices. The only
reasonable user was OPL3 loader, and now it was rewritten to use hwdep
instead. So, let's remove the rest of rotten codes.
- Remove sequencer instrument layer
Remove the alsa-driver build stub for sequencer instrument layer.

GUS drivers

- Remove sequencer instrument layer
Remove sequencer instrument layer from the tree.
This mechanism hasn't been used much with the actual devices. The only
reasonable user was OPL3 loader, and now it was rewritten to use hwdep
instead. So, let's remove the rest of rotten codes.
- Salvage old seq instrument layer codes
Salvate old sequencer instrument layer codes to "old" directory,
just for good and old memories.

Generic drivers

- sound: Use time_before, time_before_eq, etc.
The functions time_before, time_before_eq, time_after, and time_after_eq
are more robust for comparing jiffies against other values.
A simplified version of the semantic patch making this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@ change_compare_np @
expression E;
@@
(
- jiffies <= E
+ time_before_eq(jiffies,E)
|
- jiffies >= E
+ time_after_eq(jiffies,E)
|
- jiffies < E
+ time_before(jiffies,E)
|
- jiffies > E
+ time_after(jiffies,E)
)
@ include depends on change_compare_np @
@@
#include <linux/jiffies.h>
@ no_include depends on !include && change_compare_np @
@@
#include <linux/...>
+ #include <linux/jiffies.h>
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
- [ML403-AC97CR] Fix capture/periodic overrun bug
We have to do fairly accurate counting of the minimal periods, instead
of being lazy and just setting the number to zero as soon as one period
elapses.
Signed-off-by: Joachim Foerster <JOFT@gmx.de>
- Xilinx ML403 AC97 Controller Reference device driver
Add ALSA support for the opb_ac97_controller_ref_v1_00_a ip core found
in Xilinx' ML403 reference design.
Known issue: Currently this driver hits a WARN_ON_ONCE(1) statement in
kernel/irq/resend.c (line 70). According to Linus
(http://lkml.org/lkml/2007/8/5/5) this may be ignored, right? I haven't
had a look into this "problem" yet.
Signed-off-by: Joachim Foerster <JOFT@gmx.de>
- drivers - Add missing snd_card_set_dev()
Added the missing call of snd_card_set_dev() in drivers/*
- pcsp - Add missing index module option
It is impossible to put pcsp at a stable index without the trivial patch
below.
Signed-off-by: Alexander E. Patrakov <patrakov@ums.usu.ru>
- portman2x4 - Fix probe error
Reported by Ingo Molnar,
when booting an allyesconfig bzImage kernel the bootup hangs in the
portman2x4 driver (on a box that does not have this hardware), at:
Pid: 1, comm: swapper
EIP: 0060:[<c02f763c>] CPU: 0
EIP is at parport_pc_read_status+0x4/0x8
EFLAGS: 00000202 Not tainted (2.6.23-rc9 #904)
EAX: f7e57a7f EBX: 00000010 ECX: c2b808c0 EDX: 00000379
ESI: f7cb8230 EDI: 00000010 EBP: f7cb8230 DS: 007b ES: 007b FS: 0000
CR0: 8005003b CR2: fff9c000 CR3: 007ec000 CR4: 00000690
DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
DR6: ffff0ff0 DR7: 00000400
[<c04613de>] portman_flush_input+0xde/0x12c
[<c0461a24>] snd_portman_probe+0x368/0x484
[<c02fbb8c>] __device_attach+0x0/0x8
[<c02fce68>] platform_drv_probe+0xc/0x10
[<c02fba6c>] driver_probe_device+0x74/0x194
[<c0587174>] klist_next+0x38/0x70
[<c02fbb8c>] __device_attach+0x0/0x8
[<c02faea1>] bus_for_each_drv+0x35/0x68
[<c02fbc22>] device_attach+0x72/0x78
the reason is due to an inconsistent error return code of 1 or 2, while
snd_portman_probe only realizes negative error codes.
- Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly (in the rest drivers).
- Fix build of pcsp driver with latest Linus tree (pre-2.6.24)
Fixed the build of pcsp driver with the latest Linus tree (pre-2.6.24).
The header file was renamed to i8253.h.
Also, fixed warnings in printk for 64bit archs.
- sound/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>
- sound: fix mts64 section mismatches
Fix section mismatches in mts64 by making a static variable __devinitdata.
WARNING: vmlinux.o(.data+0x2e33f0): Section mismatch: reference to .init.data:mts64_ctl_smpte_switch (between 'control.19929' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2e33f8): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_hours (between 'control.19929' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2e3400): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_minutes (between 'control.19929' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2e3408): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_seconds (between 'control.19929' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2e3410): Section mismatch: reference to .init.data:mts64_ctl_smpte_time_frames (between 'control.19929' and 'snd_mts64_rawmidi_output_ops')
WARNING: vmlinux.o(.data+0x2e3418): Section mismatch: reference to .init.data:mts64_ctl_smpte_fps (between 'control.19929' and 'snd_mts64_rawmidi_output_ops')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- [PARPORT] Remove unused 'irq' argument from parport irq functions
None of the drivers with a struct pardevice's ->irq_func() hook ever
used the 'irq' argument passed to it, so remove it.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
- Update patches for removal of irq argument
Update patches due to removal of irq argument in the parport irq handler
since 2.6.24-rc1.

HDA Codec driver

- hda: 92HD73 DMIC Amps
Changed hardware gain mixers for the digital mic's from HDA_OUTPUT to
HDA_INPUT.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda: Added more 92HD71 codecs
Added more codecs to the 92HD71 family, as well as support for several
that don't have an analog mixer.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda: Add new STAC9205 PCI_QUIRK
Added a new STAC 9205 quirk for Vostro 1500.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - print control name in error messages
Print the name of the defect controls in error messages in amp info
callback. This will make debugging easier.
- hda-codec - Don't build boost controls for digital mics
The ALC auto-probe creates mic boost controls automatically for the
probed pins, but it assumes that they are analog mics. The digital
mics have no boost controls and must be skipped.
- hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
- hda-codec - Add Conexant 5051 codec support
Added the support for Conexant 5051 audio codec.
Right now there are two preset models, laptop and hp.
The whole patch is based on the information from the base patch by
Linuxant.
- hda-codec - Add model for Acer Aspire 5310
Simplify usage of the Acer Aspire 5310 laptop with the ALC268 based codec
sound card via add correct PCI SSID.
Signed-off-by: Andy Shevchenko <andy@smile.org.ua>
- hda-codec - Add missing slave for AD1884 master switch
The Speaker switch is missing in the slave list.
- hda: STAC92xx Line In/Mic as output check
This patch checks to see the Line In/Mic port have the ability
to do output before creating the the control switches.
The 92hd71bxx series of codecs has this issue with the port 0xe,
which only allows input.
Signed-off-by: Matthew Ranostay <mranostay@embededalley.com>
- HDA-Intel - Add support for RV6xx HDMI audio
This patch is to add R6xx HDMI audio support. Meanwhile, the device ID
in the previous patch is changed.
I have checked the patch from Herton Ronaldo Krzesinski, it's right as
our spec said. :)
Signed-off-by: Wolke Liu <Wolke.Liu@amd.com>
Signed-off-by: Andrea Zhang <Andrea.Zhang@amd.com>
- hda-intel - Show more volume-knob attributes
Show more attributs of volume-knob widgets.
Also don't put empty lines when no connection list is found.
- hda-codec - Fix Conexant 5045 volumes
Fixed the init verbs and added the missing volume controls so that
the driver works again with Conexant 5045 codec chip.
- hda-codec - Fix build without CONFIG_SND_HDA_GENERIC
Fixed the build error from patch_sigmatel.c when built without
CONFIG_SND_HDA_GENERIC by defining a dummy function to return error.
Also, clean up hda_codec.c by removing unneeded ifdefs (the compiler
will optimize out).
- hda: Add dmux to STAC 9228
Added a dmux to the STAC9228 cards with DMIC support. And added a
STAC_DIGITAL_INPUT_SOURCE macro for repeating mixer code.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Disable shared stream on AD1986A
AD1986A has a hardware problem that it cannot share a stream with
multiple pins properly. The problem occurs e.g. when a volume is changed
during playback.
So far, hda-intel driver unconditionally assigns the stream to multiple
output pins in copy-front mode, and this should be avoided for AD1986A
codec.
The original fix patch was by zhejiang <zhe.jiang@intel.com>.
- HDA: Add support for Samsung Q1 Ultra Vista edition
This patch adds full record and playback support for the Samsung Q1
Ultra - Vista model (different codec than the earlier Q1 Ultra models).
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-codec - Fix typo in the ALC883 initial code
The attached patch should fix typo in auto initialization verbs for ALC883
codec.
Signed-off-by: Andy Shevchenko <andy@smile.org.ua>
- hda-codec - Fix definition of AC_KNBCAP_DELTA to match spec
AC_KNBCAP_DELTA is incorrectly defined as (1<<8). According to the Intel
HDA spec, this is bit 7 after AC_KNBCAP_NUM_STEPS which is a 0x7f mask.
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
- hda: STAC927x DMIC Cleanup
Cleaned up STAC927x and added several subsystem id's for more laptops.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Avoid overload of PCM volume on Cx5045 codec
The PCM volume of Cx5045 codec has overload that isn't useful but
rather harmful. Add a hack to override the amp info to set the max
level 0 dB.
- hda-codec - sort pci quirk list
Sort pci quirk list in the order of PCI SSID.
This makes easier to find out the buggy duplicated entries.
Thanks to Andy Shevchenko for providing the sort script.
- hda-codec - Sort ad1986a cfg table
Sort the ad1986a config table by PCI SSID (the last toshiba entry was
added wrongly).
- hda-codec - Fix SPDIF output on Conexant 5045 codec
Fixed the SPDIF output on Conexant Cx5045 codec. Added the missing
pin output setting and fixed the wrong NID for digital audio-out widget.
- hda-codec - Allow multiple SPDIF devices
The current code doesn't allow multiple SPDIF devices, and causes
errors when multiple SPDIF devices are found (e.g. SPDIF out and HDMI).
This patch allows multiple SPDIF devices by incrementing the index
automatically.
- hda-codec - Add SI HDMI codec support
Added the support of SI HDMI codec, found in ASUS machines.
ALSA bug#3654
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3654
- hda-codec - Add support of Zepto laptops
Adds support for zepto laptops with alc268 intel_hda codec.
Signed-off-by: Mirco Tischler <mt-ml@gmx.de>
- hda: STAC927x VREF fix
Some laptops incorrectly assume the front input jack as a line in
instead of a microphone in. Which in turn disables the voltage
reference, in which non-amplified input is not possible. This patch
enables VREF80 for the input jack.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add IEC958 digital out support for Lenovo Thinkpads T61/X61
This patch adds IEC958 digital out support for the AD1984 sound card.
This card can be found in Lenovo Thinkapds T61/X61. The digital out is
not located on the Thinkpad, but optional docking station (it's coxial
digital out). I've add this support as it is done the exact same way
for the AD1983 & AD1884.
I have tested this patch with my Lenovo Thinkpad T61 hooked up to a
docking station (that has the digital coxial) and then run to my home
theater reciever. Works like a charm :-)
Signed-off-by: Jerone Young <jerone@gmail.com>
- hda-codec - Add model for Gigabyte P35 DS3R
Signed-off-by: Jiang zhe <zhe.jiang@intel.com>
- hda-codec - Add SPDIF output support to AD1986a laptop-eapd model
The SPDIF output on AD1986A laptop-eapd model is disabled although
some Samsung laptops have SPDIF output. Enable it after checking the
pin default config.
- hda-codec - Rename non-standard "iSpeaker"
Renamed the non-standard mixer elements "iSpeaker" to "Speaker"
in Realtek codecs.
- hda-codec - Fix mixer controls with ALC262 HP T5735 model
The PCM mixer elements in HP T5735 model of ALC262 codec conflict
with Speaker and Headphone volumes. They should be removed.
Ditto for LineOut that is identical with Speaker.
Also, fixed/cleaned up the auto-mute callback to use the amp cache
correctly.
- hda-codec - Fix ALC262 HP-RP5700 model
Removed the PCM mixer elements conflicting with others.
Also renamed Master control to Headphone, which isn't a real master.
(The Master control is still created as a virtual master even after
this rename.)
- hda-codec - Add speaker automute to ALC260 HP models
Added the speaker-automute function to ALC260 HP models.
- hda-codec - Add speaker automute to ALC262 HP models
Added the speaker-automute function to ALC262 HP models.
Also, "Mono" mixer elements are renamed as more intuitive "Speaker".
- HDA: Add Asus VX1 support
Simple patch to add the Asus VX1 laptop to the Analog Devices pci quirk list.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda: STAC9228 DMIC
Added support for the dmics and enabled EAPD for several laptops with
STAC9228 cards.
Signed-off-by: Matthew Ranostay <mranostay@gmail.com>
- hda-codec - Update dell-m82 model pin config
Updated dell-m82 model pin config table. The old config doesn't work
with Dell 1210 and co.
Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
- hda-codec - Add workaround for multiple HPs
Dell laptops have multiple HP jacks that can be used for multi-channel
outputs. The current auto pincfg handles the speaker as the primary
output and thus cannot handle the multi-channel configuration for such
cases. This patch adds a workaround to fix this issue by swapping the
HP and speaker during multi-channel setup routines.
Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
- hda-codec - Avoid wrong speaker-auto mute via mic jack
When a mic jack is set up as the multiple I/O, it may issue the automute
function wrongly. This patch fixes the wrong automute detection.
Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
- hda-codec - Revert volume knob controls in STAC codecs
Volume knob controls with STAC codecs seem to cause problems with some
devices. Volumes change very slowly or silent suddenly. It's likely
due to conflict between the software and the hardware volume knob
setup.
Since we'll have a virtual master control in future, it's safer to
remove this control completely right now.
- hda: STAC9228 updated DMUX nid
Changed the dmux for STAC9228 from ADC1MUX to ADC0MUX to avoid confusion.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add model for Fujitsu V5505
Added model=laptop for Fujitsu V5505 with Cxt5405 codec.
- hda-codec - Fix possible array overflow
dac_nids arrays in each codec support code may have up to 5 items
when assigned from the auto-configurator. Some codec codes have
less numbers than the possible max. This patch defines the constant
and fixes the array definitions.
- hda-codec - Add SPDIF controls as slave on AD codecs
The AD codecs have hardware SPDIF volume/switch controls but they
are not assigned to the slave list for virtual master controls.
- hda_intel - Add model quirk for Albatron KI690-AM2 motherboard
This adds a quirk to the Realtek ALC883 table for the Albatron KI690-AM2
motherboard to use the 6stack-dig model.
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
- HDA - Add support for the OQO Model 2
This patch adds support for the OQO Model 2 Ultra Mobile PC.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda: Fix 5.1 sound in Dell 6stack ALC888 HDA
This patch fixes 5.1 surround output and headphone detection in the
Dell Inspiron 530 and possibly other Dell systems using the ALC888
codec (mode 6stack-dell).
Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
- hda-codec - Remove obsolete FIXME's
Removed "FIXME" comments that have been already fixed.
- hda-codec - Device ID for MSI L745
Added the model targa-2ch-dig for MSL L745 (ALSA bug#3641).
- hda-codec - Add support for VIA VT1708B HD audio codec
This patch adds support for VIA new HD audio codec, VT1708B.
Signed-off-by: Josepch Chan <josephchan@via.com.tw>
- hda-codec - Add ALC889/ALC267/ALC269 support
Added the support of new Realtek codecs:
1. New ALC889 Support
2. New ALC267 Support
3. New ALC269 Support
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Initial support of the Mitac 8252D (based on ALC883)
The attached patch adds initial support of the Mitac 8252D
(http://www.mitac-mtc.com.tw/English/products/8252Dspec.htm).
Working:
- Front speakers (volume + mute)
- Center/LFE speakers (volume + mute)
- HP out (with Front Volume)
- HP individual mute switch
- HP Jack sense
- Front Mic and its volume
Not tested:
- external mic and its volume
Not working while now:
- Mic Jack sense
Questionable:
- is Mic have Jack sense?
- one or two Mic volume controls?
- CD/Line-in: presense in the mixer
Signed-off-by: Andy Shevchenko <andy@smile.org.ua>
- hda: Added STAC92HD73 support
Added support for new STAC92HD73 family of codecs. Additionally added
features for multiple analog loopbacks, and multiple dmux mixers.
Regression testing for the analog loopback changes for STAC9205 and
STAC9274D completed with any issues, as well for the dmux changes.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-intel: Enable Analog CD Input from internal ATAPI connector on Asus M2N-SLI
Enable Analog CD Input from internal ATAPI connector on Asus M2N-SLI.
Signed-off-by: Johannes Stezenbach <js@sig21.net>
- hda-codec - Device ID for Toshiba laptop which uses AD1986A
The model laptop-eapd get rid of the high-pitched noise.
(ALSA bug#3662)
Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
- hda-codec - alc268 input_mux should be a selector instead of mixer
According to the [0003659], the node 0x23,0x24 is a selector.
I checked the alc268 spec on the REALTEK website and it showed that they
were selectors indeed.
However, current code implement the alc268 input_mux in a mixer way.
Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
- hda-codec - Update realtek codec support
1. Support HP rp5700
2. Fixed alc_subsystem_id function (Bug fixed and support Desktop)
3. Support ASUS EP20
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Device ID for Macbook sound card
Please refer to the [0003680] on ALSA bugtracking system.
The user found that "model=mbp3" works and provided the ID.
From: Jiang zhe <zhe.jiang@intel.com>
- hda: STAC9228 VT fixes
Moved 2 systems PCI_QUIRK values to STAC_DELL_BIOS. Also the second
front HP jack is incorrect defined in the BIOS VT's for some laptops,
this patch corrects this.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add virtual master controls
Add master controls using vmaster to codecs that have no real hardware
master volume registers.
- hda: 92HD7XXX power management support
Added support for advanced power management support for output ports on
92HD7xxx family of codecs. Inactive output ports are powered down when
the pin sense doesn't detect a connection, and powered back up when a
connection is sensed.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - New model for conexant 5045 codec to support benq r55e
The benq r55e laptop have 3 jacks on the front panel.
One for HP, one for Line In and one for Mic In.
This patch implemented a new model to support it.
Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
- hda-codec - Fix capture source for Cx5045 codec
For codec conexant 5045, I found that the name of "Capture Source Items"
is different from the name of mixer.
The mixer is:
HDA_CODEC_VOLUME("Ext Mic Playback Volume", 0x17, 0x2, HDA_INPUT),
HDA_CODEC_MUTE("Ext Mic Playback Switch", 0x17, 0x2, HDA_INPUT),
But the capture source item is :
static struct hda_input_mux cxt5045_capture_source = {
.num_items = 2,
.items = {
{ "IntMic", 0x1 },
{ "LineIn", 0x2 },
}
};
I think that it's better to change the name of capture_source to avoid
misunderstanding.
Signed-off-by: Jiang zhe <zhe.jiang@intel.com>
- hda: Added mono_out_pin to autoconfig
Added a mono_out_pin field to autocfg struct, and code to parse
for the mono_out_line.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda: Add dynamic mono mixer support for STAC92xx codecs
Allows for dynamically creating mono out mixer controls and well
as mono mux controls.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Fix handling of multiple capture streams
Fixed the bug that multiple capture streams conflict on Realtek codec
routines.
Also, this adds a framework to enable the alternative playback stream,
e.g. for VoIP. It's not fully implemented yet, though.
- hda: STAC9205 GPIO line fix
Fixed issue that the incorrect GPIO line was being pulled high
for some STAC9205 based laptops.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add model for Acer Aspire 5315
Simplify usage of the Acer Aspire 5315 laptop with the ALC268 based codec
sound card via add correct PCI SSID.
Signed-off-by: Andy Shevchenko <andy@smile.org.ua>
- hda-codec - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly so that
invalid values won't be stored or written to registers.
- hda-codec - Fix conflict of Master volume in STAC92xx codec
The addition of volume knob as Master volume resulted in conflict with
the existing one by stac92xx_auto_create_hp_ctls().
This patch fixes the conflict, and still keeps the Master control for
codecs without volume knob as much as possible.
- hda-codec - Add STAC9228 DMIC support
Added the missing STAC9228 DMIC support.
Also added a new vendor id tag for IDT.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Fix invalid access to non-existing dmux on STAC
The digital mux on STAC codecs doesn't always exist although the
driver builds dmux enum mixer elements unconditionally.
Now the driver creates 'digital input source' mixer elements only
when dmux is available.
Also, the patch adds the missing dmux definition for STAC925x.
- hda: Dynamically create digital gain mixers
Dynamically create digital gain mixers for dmics that have out-amp
support. Also some 92HD73xx's codecs don't have DMIC gains, so this also
prevents creating dead mixers.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add EAPD controls for ALC260 test model
This implements a switch control for the EAPD signal output by the ALC26x
chips. Since some laptops may utilise this to activate useful things it
is handy to have a control for this in the ALC26x test models. The patch
includes the control in the ALC260 test model.
Signed-off-by: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
- hda-codec - Add test model for ALC268
This implements a test model for the ALC268. It depends on the feature
added by alc260-test-eapd-0.2.diff. This patch also adds a mention of
the ALC260 test model to ALSA-Configuration.txt since this seems to have
been missed.
Signed-off-by: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
- hda-codec - Add model=laptop for HP 350 laptop
Added the proper model=laptop for HP 350 laptop with Cxt5045 codec.
- hda-code - Clean up STAC GPIO enablement code
There are two similar GPIO-enablement codes in patch_sigmatel.c.
Let's clean up.
- hda-codec - Disable PCBEEP mixer element in test model
It turned out that the PCBEEP element (0x1d) is disabled on some hardwares
although it's defined in the datasheet. Because of the error at info of
this element, the mixer gets totally unusable.
Since the PCBEEP isn't that important feature, it's safer to disable this.
- hda-codec - Add the support of Dell OEM laptops with ALC268
Added the support of Dell OEM laptops (Vostro 1200) with ALC268 codec.
The new model=dell is provided.
- hda-codec - Enable VIA SPDIF input pin
Enable the SPDIF input-pin on VIA codecs when SPDIF-input is enabled
by BIOS. Also, including a bit code clean up.
- hda: Mono mux mixer support
Add support for the mono mux on several 92HD7xxx codecs.
Creates a dynamic mixer for the mux selection.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Fix laptop models for Cxt5045
Change laptop models to three different models, laptop-hpsense,
laptop-micsense and laptop-hpmicsense. The first two correspond to
the old "laptop" and "fujitsu" models.
Reassigned the quirk table for the new models.
Signed-off-by: Marc Boucher <marc@linuxant.com>
- hda-codec - Add missing input controls for Cxt5047 test model
The input volume/switch elements are missing in Cxt5047 test model.
Also the patch includes some code clean ups.
Signed-off-by: Marc Boucher <marc@linuxant.com>
- hda-codec - Add a delay after power state change
Added a delay after the power state change as a partial workaround
for "hda_intel: azx_get_response timeout" problem on Cxt codecs.
Signed-off-by: Marc Boucher <marc@linuxant.com>
- hda-codec - Add afg and mfg preset mask
Added afg and mfg preset masks for more finer codec-preset selection.
Signed-off-by: Marc Boucher <marc@linuxant.com>
- hda-codec - Optimize snd_hda_pser_pin_def_config()
Don't read the widget list again as we already have it at the beginning.
- hda-codec - Control SPDIF as slave
Add SPDIF playback switch to the slave element list so that it
can be toggled via the master control as well.
- hda-codec - Add model for HP DV9553EG laptop
Added the proper model for HP DV9553EG laptop with Cxt5045.
ALSA bug#3534
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3534
- hda-codec - Add Dell T3400 support
Added the support for Dell T3400 with AD1984 codec chip.
ALSA bug#3699:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3699
Signed-off-by: Douglas Kosovic <douglask@itee.uq.edu.au>
- hda: Add GPIO mute support to STAC9205
Support added for detecting HP jack presence via GPIO on several laptop docks.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda: Added new IDT codec family
Added initial support for the STAC92HD71BXX family of codecs.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Fix STAC922x volume knob control
Reported by zhejiang <zhe.jiang@intel.com>
"I found that STAC_VOLKNOB hardwired the KNOB nid to 0x24.
It is okay for stac9205 and stac927x.
But the VolumeKnob nid of stac9220-9221 is 0x16."
- hda-codec - Add array terminator for dmic in STAC codec
Reported by Jan-Marek Glogowski.
The dmic array is passed to snd_hda_parse_pin_def_config() and
should be zero-terminated.
- Support ASUS P701 eeepc [0x1043 0x82a1] support
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Fix SKU ID function for realtek codecs
Fixed SKU ID function for realtek codecs. It's used by the automatic
BIOS configuration mode. Now it supports the correct jack-detection
mechanism, too.
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- duplicate initializer in sound/pci/hda/patch_realtek.c
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- hda-codec - Add missing #defines (and 1 rename) in hda_codec.h
Added AC_VERB_GET_DIGI_CONVERT_2 and renamed AC_VERB_GET_DIGI_CONVERT to
AC_VERB_GET_DIGI_CONVERT_1 to stay consistent with the SET variants. Added
AC_VERB_GET_GPIO_UNSOLICITED_RSP_MASK, AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK,
and AC_PINCAP_LR_SWAP. The missing fields were listed in the ALC883 datasheet
rev 1.3.
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
- hda-codec - Fix capture mixers of ALC662 models
The commit that added support for ASUS P701 eeepc also changed the
mixers of other ALC662 models, duplicating entries for the Capture
items, making them to not work anymore. This fixes it by removing
duplicated entries using where possible the common alc662_capture_mixer.
Also alc662_capture_mixer should use alc662* functions and not alc882
(I checked /proc/asound/card0/codec* on an eepc model and it's ok).
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com>
- hda: 92HD71BXX Mono Mute Support
Added a mono output mute mixer for the 92hd71bxx family of codecs, this
also removes the need for the mono out node to explicitly unmuted in the
core init.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-intel - Add workarounds for STAC codecs
Some machines with STAC codecs seem to have problems (e.g. no audible
playback) when the delay in codec-read routine is too short.
I still don't figure out which command sequence causes this problem
(due to lack of test hardware), but it's known that increasing the
delay fixes. So, added a stupid workaround here temporarily...
- hda-codec - remove 11c1:1040 from patch_si3054.c id list
Codec with id 11c1:1040 sitting on hda bus isn't si3054-compatible.
It should be removed from patch_si3054.c id list.
The detailed information
http://archives.linmodems.org/26457
From: Vasily Khoruzhick <anarsoul@gmail.com>
- hda: fix Mic in as output
Some laptop has an internal analog microphone that is 'fixed'.
This patch prevents creating a 'Mic In as Output' switch for
ports that can't be outputs.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda: STAC92HD71 codec mixer
Added analog loopback support and missing ADC capture mixer for the
STAC92HD71 codec family.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - new PCI SSID for HP machines
Added new PCI SSIDs for HP machines with ALC262 codec.
- hda: STAC9228 Subsystem update
Added more laptops subsystem id's that have STAC9228 DMIC support.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Add support of HP Thin Client T5735
Added the support of HP Thin Client T5735 [0x103c 0x302f] with ALC262 codec.
Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
- hda-codec - Add model=hp-tc-t5735 for ALC262
Added the missing model string for the new support of HP TC T5735.
- hda-codec - Check PINCAP only for PIN widgets
The recent addition of checking PINCAP for EAPD seems to break some
systems due to unexpected response from the codec chip. We shouldn't
issue GET_PINCAP verb to non-PIN widgets. Now checks the widget type
before checking EAPD bit.
- hda-codec - Fix AD1986A Lenovo auto-mute
The jack detection bit on AD1986A Lenovo N100 seems inverse from
the standard definition. Now fixed the detection properly.
- hda-codec - Add missing eeepc-p701 model for ALC662
Added the missing model string "eeepc-p701" for ALC662 codec.
- hda-codec - Improve the auto-configuration
Some small improvements on autocfg stuff:
- sort HP pins by sequence number, too
- move sole mic pin to AUTO_PIN_MIC instead of AUTO_PIN_FRONT_MIC
- ditto for line-in pin

HDA Intel driver

- hda-intel - Make azx_get_response() a bit more robust
In azx_[rirb_]get_response(), the timeout is checked at the end of the loop.
It's better to be checked just after the check of the RIRB index to avoid
a bogus error with a too long msleep().
- HDA-Intel - Add support for RV6xx HDMI audio
This patch is to add R6xx HDMI audio support. Meanwhile, the device ID
in the previous patch is changed.
I have checked the patch from Herton Ronaldo Krzesinski, it's right as
our spec said. :)
Signed-off-by: Wolke Liu <Wolke.Liu@amd.com>
Signed-off-by: Andrea Zhang <Andrea.Zhang@amd.com>
- snd hda suspend latency: shorten codec read
not sleeping for every codec read/write but doing a short udelay and
a conditional reschedule has cut suspend+resume latency by about 1
second on my T60.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
- hda-intel - Support multiple devices
It turned out that there can be multiple HD-audio devices on a single
machine (e.g. on-board audio and HDMI on graphic cards), so we need to
support multiple devices with snd-hda-intel driver.
- HDA-Intel - Add support for RV610/RV630 HDMI audio
The Audio interface on HD2400/HD2600 cards isn't currently detected by
snd-hda-intel. I added missing pci device ids for RV610 and RV630, but
I only had a HD2400 pro card to test, where now the audio interface is
detected (and no need to change patch_atihdmi.c, as the codec vendor id
remains 0x1002aa01 for which we already have an entry there). I also
couldn't test if sound pass-trough is ok (and I don't know how to), but
at least now the device is detected.
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
- HDA - enable snoop on SCH
This patch enables snoop on Intel SCH chipset, eliminating static during
playback.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda_intel: Fix multiple device support by incrementing device count
Fixes multiple device support by incrementing the static device counter
at the end of the azx_probe() call. Without this, subsequent probes would
always use the index specified for the first card.
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
- HDA: Enable chipset gcap usage
This patch removes hardcoded values for the number of streams supported
by the southbridge in most chipsets, and reads these values from the
chipset directly. Most systems are hardwired for 4 streams in each
direction, but newer chipsets change that capability.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
- hda-intel - Add ratelimit to timeout messages
Signed-off-by: Marc Boucher <marc@linuxant.com>
- hda_intel: ALSA HD Audio patch for Intel ICH10 DeviceID's
This patch adds the Intel ICH10 HD Audio Controller DeviceID's.
Signed-off-by: Jason Gaston <jason.d.gaston@intel.com>
- hda-intel - Add workarounds for STAC codecs
Some machines with STAC codecs seem to have problems (e.g. no audible
playback) when the delay in codec-read routine is too short.
I still don't figure out which command sequence causes this problem
(due to lack of test hardware), but it's known that increasing the
delay fixes. So, added a stupid workaround here temporarily...
- HDA-Intel - Add support for Intel SCH
This patch adds support for Intel's SCH mobile chipset.
Signed-off-by: Tobin Davis <tdavis@dsl-only.net>

HDA generic driver

- hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
- hda-intel - Show more volume-knob attributes
Show more attributs of volume-knob widgets.
Also don't put empty lines when no connection list is found.
- hda-codec - Fix build without CONFIG_SND_HDA_GENERIC
Fixed the build error from patch_sigmatel.c when built without
CONFIG_SND_HDA_GENERIC by defining a dummy function to return error.
Also, clean up hda_codec.c by removing unneeded ifdefs (the compiler
will optimize out).
- hda-codec - Disable shared stream on AD1986A
AD1986A has a hardware problem that it cannot share a stream with
multiple pins properly. The problem occurs e.g. when a volume is changed
during playback.
So far, hda-intel driver unconditionally assigns the stream to multiple
output pins in copy-front mode, and this should be avoided for AD1986A
codec.
The original fix patch was by zhejiang <zhe.jiang@intel.com>.
- hda-codec - Show more information in proc file
Show the current EAPD status and volume-knob status in proc file.
- hda-codec - Fix possible array overflow
dac_nids arrays in each codec support code may have up to 5 items
when assigned from the auto-configurator. Some codec codes have
less numbers than the possible max. This patch defines the constant
and fixes the array definitions.
- Add virtual master control helpers
Added helper functions to implement virtual master volume controls.
The virtual master control is a control element that has multiple
slave controls. The value of master element is equally added to
slave elements.
The functions are written for general purpose, but it's put in the
HD-audio directory as now, since HD-audio driver is the only user.
It should be moved to the common place once after other drivers use
vmaster.
- hda-codec - Add virtual master controls
Add master controls using vmaster to codecs that have no real hardware
master volume registers.
- Add vmaster build stub
- hda: Added mono_out_pin to autoconfig
Added a mono_out_pin field to autocfg struct, and code to parse
for the mono_out_line.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda: Add dynamic mono mixer support for STAC92xx codecs
Allows for dynamically creating mono out mixer controls and well
as mono mux controls.
Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
- hda-codec - Don't query widget parameter for invalid NID
Don't query a widget parameter for an invalid NID in get_wcaps() but
rather returns zero (i.e. no attribute).
The read to an non-existing widget may result in a fatal codec
communication error.

HPE timer driver

- Add manual inclusion of adriver.h
Since sound/driver.h is removed from alsa-kernel tree, we need to include
adriver.h manually in the alsa-driver build stubs.

ICE1712 driver

- ice1712, ice1724 - Code clean up
Clean up ice1712/ice1724 codes. The board-specific data is allocated
locally in each code instead of having an ungly union in struct ice1712.
Also, fix coding issues in prodigy_hifi.c.
- switching rate in STAC9460 codec of Prodigy192
* support for switching rate in STAC9460 - using set_rate_val of the akm
infrastructure
* listing all STAC9460 registers in proc
* disabling mpu401 device for Prodigy192 - otherwise the currently
flawed mpu401 code hangs kernel when opening the midi device
* removing old unused commented-out code
Signed-off-by: Pavel Hofman <dustin@seznam.cz>
- ice1724 - Add missing prodigy_hifi.h
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Konstantin Kletschke <konsti@ku-gbr.de>
- ice1724 - Check value ranges in ctl callbacks
Check the value ranges in ctl put callbacks properly.
Also fixed the wrong access type to enum elements in aureon.c.
- ice1724 - Clean up ctl callbacks in se.c
Clean up ctl callbacks of SE-200PCI driver. Also make sure to check
the value ranges.
- ice1712 - Fix word clock status control on Delta 1010LT
The "Word Clock Status" control on Delta 1010LT checks the CS8427
error register too strictly and almost always returns 1 (unlocked).
It should check only the lock status bit.
- ice1724 - Add support of Onkyo SE-90PCI and SE-200PCI
Added the support for Onkyo SE-90PCI and SE-200PCI boards.
Signed-off-by: Shin-ya Okada <sh_okada at d4.dion.ne.jp>
- Add se.c skelton file for snd-ice1724 driver
- ICE1724: Added support for Audiotrak Prodigy 7.1 HiFi & HD2, Hercules Fortissimo IV
See ALSA bug#2384 for more details.
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Konstantin Kletschke <konsti@ku-gbr.de>
- Added pci/ice1712/prodigy_hifi.c for recent alsa-kernel change
- ice1712 - fixed midi input for Hoontech C-Ports
See ALSA bug#1846 for more details.

ICE1724 driver

- ice1712, ice1724 - Code clean up
Clean up ice1712/ice1724 codes. The board-specific data is allocated
locally in each code instead of having an ungly union in struct ice1712.
Also, fix coding issues in prodigy_hifi.c.
- I2C fix for ice1724
adding i2c busy wait before sending device address to prevent reading
bogus data.
Signed-off-by: Pavel Hofman <dustin@seznam.cz>
- ice1724 - Enable AK4114 support for Audiophile192
Fixed and enabled the support of AK4114 chip on Audiophile192.
- ice1724 - Add ADC setup in set_rate callback for Audiophile192
Added the missing GPIO setup for the AK5385A ADC codec on Audiophile192.
- ice1724 - Add support of Onkyo SE-90PCI and SE-200PCI
Added the support for Onkyo SE-90PCI and SE-200PCI boards.
Signed-off-by: Shin-ya Okada <sh_okada at d4.dion.ne.jp>
- ICE1724: Added support for Audiotrak Prodigy 7.1 HiFi & HD2, Hercules Fortissimo IV
See ALSA bug#2384 for more details.
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Konstantin Kletschke <konsti@ku-gbr.de>

IOCTL32 emulation

- Fix build with older kernels
Replaced the old SNDRV_PCM_IOCTL_TSTAMP with the new SNDRV_PCM_IOCTL_TTSTAMP.
- Add SNDRV_PCM_IOCTL_TSTAMP back
Re-add the replaced ioctl for older alsa-lib.
- Fix a typo of adriver.h

ISA DMA

- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz

Instrument layer

- Remove sequencer instrument layer
Remove sequencer instrument layer from the tree.
This mechanism hasn't been used much with the actual devices. The only
reasonable user was OPL3 loader, and now it was rewritten to use hwdep
instead. So, let's remove the rest of rotten codes.
- Remove sequencer instrument layer
Remove the alsa-driver build stub for sequencer instrument layer.

Intel8x0 driver

- intel8x0 - Add quirk for Acer Travelmate 2310
Added ac97_quirk=hp-only for Acer Travelmate 2310.
ALSA bug#3656
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3656
- sound/pci: Drop unnecessary continue
Continue is not needed at the bottom of a loop.
The semantic patch implementing this change is as follows:
@@
@@
for (...;...;...) {
...
if (...) {
...
- continue;
}
}
Signed-off-by: Julia Lawall <julia@diku.dk>

KORG1212 driver

- sound/pci: remove duplicated defines
Remove duplicated defines.
(From their use it looks like 'midiDataOutx are written to
rather than read from.)
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
- pci - check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in the rest of
PCI drivers.

MAINTAINERS file

- Update MAINTAINERS for ALSA SoC
Add myself as a point of contact for the ALSA SoC subsystem and add a
reference to the development GIT tree.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
- 2.6 kernel sync

MIPS AU1x00 driver

- Fix misspellings of "system", "controller", "interrupt" and "necessary".
Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>

MIXART driver

- mixart - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly.
Also fixed some coding style issues around that.

MPU401 UART

- mpu401: fix recursive locking in timer
When the output and input ports are used at the same time, the timer can
be interrupted by the hardware interrupt, so we have to disable
interrupts when we take a lock in the timer.

Maestro3 driver

- sound/pci: remove line duplications in defines
Remove line duplications in defines.
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Acked-by: Thomas Sailer <sailer@ife.ee.ethz.ch>

Memalloc module

- fix SND_MEM_PROC_FILE on 2.2 kernels
The SND_MEM_PROC_FILE symbol does not exist on 2.2 kernels, so we have
to protect the remove_proc_entry() call, too.
- Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
- Disable memalloc proc file for older kernels
... otherwise we get build errors.
- sound/core/memalloc.c: Add missing pci_dev_put
There should be a pci_dev_put when breaking out of a loop that iterates
over calls to pci_get_device and similar functions.
In this case, the return under the initial if needs a pci_dev_put in the
same way that the return under the subsequent for loop has a pci_dev_put.
This was fixed using the following semantic patch.
// <smpl>
@@
type T;
identifier d;
expression e;
@@
T *d;
...
while ((d = \(pci_get_device\|pci_get_device_reverse\|pci_get_subsys\|pci_get_class\)(..., d)) != NULL)
{... when != pci_dev_put(d)
when != e = d
(
return d;
|
+ pci_dev_put(d);
 ? return ...;
)
...}
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

OLD headers

- Salvage old seq instrument layer codes
Salvate old sequencer instrument layer codes to "old" directory,
just for good and old memories.

OPL3

- opl3 - Fix compilation without sequencer support
Add proper ifdef's to the patch loading code moved from the old instr
layer so that opl3 driver can be compiled without the sequencer support.
- opl3 - Use hwdep for patch loading
Use the hwdep device for loading OPL2/3 patch data instead of the
messy sequencer instrument layer.
Due to this change, the sbiload program should be updated, too.
- opl3 - simplify exclusive access lock
Use the exclusive access lock in hwdep instead of the own one.
- opl3 - Fix build errors
I applied a wrong patch for 'opl3 - simplify exclusive access lock'.
Fixed now.
- Fix misspellings of "system", "controller", "interrupt" and "necessary".
Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>

Opti9xx drivers

- Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly (in the rest drivers).
- This patch adds support for a wavetable chip on
the BTC 1817DW board.
The QS1000 is connected through the digital input
to the Opti931 chip.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
- fix opti9xx/miro section mismatch
snd_opti93x_mixer() is only called by __devinit snd_opti93x_probe(),
so the former can also be __devinit.
snd_miro_mixer() is only called by __devinit snd_miro_probe(),
so the former can also be __devinit.
sound/isa/opti9xx/opti92x-ad1848.c:
WARNING: vmlinux.o(.text+0xf91cd7): Section mismatch: reference to .init.data:snd_opti93x_controls (between 'snd_opti93x_mixer' and 'snd_card_opti9xx_free')
WARNING: vmlinux.o(.text+0xf91d66): Section mismatch: reference to .init.data:snd_miro_controls (between 'snd_opti93x_mixer' and 'snd_card_opti9xx_free')
opti9xx/miro.c:
WARNING: vmlinux.o(.text+0xf926c2): Section mismatch: reference to .init.data:snd_miro_controls (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf926e5): Section mismatch: reference to .init.data:snd_miro_eq_controls (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf926f9): Section mismatch: reference to .init.data:snd_miro_line_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf92716): Section mismatch: reference to .init.data:snd_miro_amp_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf9273e): Section mismatch: reference to .init.data:snd_miro_preamp_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf92764): Section mismatch: reference to .init.data:snd_miro_capture_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf92783): Section mismatch: reference to .init.data:snd_miro_radio_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf9279a): Section mismatch: reference to .init.data:snd_miro_eq_controls (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
WARNING: vmlinux.o(.text+0xf927b9): Section mismatch: reference to .init.data:snd_miro_radio_control (between 'snd_miro_mixer' and 'snd_legacy_find_free_ioport')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>

PCI drivers

- sis7019: support the SiS 7019 Audio Accelerator
Basic audio support for the SiS 7019 Audio Accelerator as found in the
SiS 55x SoC. There is currently no synth support at the moment, but
audio playback and capture with two periods per buffer has seen
extensive use. Arbitrary period and buffer sizes (with multiple periods
per buffer) have seen light testing, but are believed to be production
ready.
Signed-off-by: David Dillow <dave@thedillows.org>
- oxygen: TempoTec HiFier is probably not supported
The TempoTec HiFier has a somwhat different architecture; remove it from
the list of cards that are known to be supported.
- virtuoso: fix build on 2.2 kernels
- cmi8788: driver rewrite
complete rewrite; still incomplete
- oxygen: move to kernel tree
Move the oxygen and virtuoso drivers to the kernel tree.
- add CMI8788 driver
Add the snd-oxygen driver for the C-Media CMI8788 (Oxygen) chip, used on
the Asound A-8788, AuzenTech X-Meridian, Bgears b-Enspirer,
Club3D Theatron DTS, HT-Omega Claro, Razer Barracuda AC-1,
Sondigo Inferno, and TempoTec HIFIER sound cards.
- add Asus Xonar driver
Add the snd-virtuoso driver for the Asus Virtuoso 200 chip used on the
PCI and PCI-E models of the Xonar sound card.

PDAudioCF driver

- Add missing device link
Added the missing link to struct device from the card instance.
- Remove obsolete patches
Remove obsolete patches that still remain in the tree.

PDPlus driver

- pdplus - Avoid conflict of BIT_MASK macro
2.6.24 kernel has a system-defined BIT_MASK macro.

PPC AWACS driver

- powermac - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in snd-powermac
driver.

PPC Beep

- powermac - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in snd-powermac
driver.
- get rid of input BIT* duplicate defines
get rid of input BIT* duplicate defines
use newly global defined macros for input layer. Also remove includes of
input.h from non-input sources only for BIT macro definiton. Define the
macro temporarily in local manner, all those local definitons will be
removed further in this patchset (to not break bisecting).
BIT macro will be globally defined (1<<x)
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>

PPC Burgundy driver

- powermac - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in snd-powermac
driver.

PPC DACA driver

- powermac - Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in snd-powermac
driver.

PPC Keywest driver

- i2c: Kill rogue driver IDs
I2C driver IDs are optional, so if you don't need one, just omit it.
Signed-off-by: Jean Delvare <khali@linux-fr.org>

PPC PMAC driver

- snd-powermac: handle dead DMA transfers
This patch provides the snd-powermac sound driver with the ability to handle
dead DMA transfers. If a dead DMA transfer is detected, the driver now sets
up a new DMA transfer to continue with the sound output at the point where the
old transfer died.
This dead DMA transfer handling has become necessary with recent kernels on
certain G4 PowerMacs. Please refer to the following URLs for more information:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3126
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/87652
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=436723
The patch is based on the dead DMA transfer handling code from the old dmasound
driver which can be found in the file sound/oss/dmasound/dmasound_awacs.c in
the Linux source code.
Signed-off-by: T. H. Huth

PPC PS3 driver

- Add missing device link
Added the missing link to struct device from the card instance.

PPC Tumbler driver

- powermac - Fix typos
The kernel build fails, with following error
CC sound/ppc/tumbler.o
sound/ppc/tumbler.c: In function ‘snapper_get_capture_source’:
sound/ppc/tumbler.c:812: error: ‘union <anonymous>’ has no member named ‘value’
sound/ppc/tumbler.c: In function ‘snapper_put_capture_source’:
sound/ppc/tumbler.c:824: error: ‘union <anonymous>’ has no member named ‘enueme\
rated’
make[2]: *** [sound/ppc/tumbler.o] Error 1
make[1]: *** [sound/ppc] Error 2
make: *** [sound] Error 2
Signed-off-by: Kamalesh Babulal <kamalesh@linx.vnet.ibm.com>

PXA Mainstone driver

- 2.6 kernel sync (rest)

RME HDSP driver

- hdsp - Fix section mismatch
Removed invalid __devinit from hdsp_request_fw_loader() and
snd_hwdep_create_hwdep() that aren't always init functions.
- sound/pci: remove duplicated defines
Remove duplicated defines.
(From their use it looks like 'midiDataOutx are written to
rather than read from.)
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
- hdsp - Fix zero division
Fix zero-division bug in the calculation dds offset.
- sound: fix rme9652 section mismatch
Fix section mismatch in hdsp: snd_hdsp_proc_init() can be called from
an ioctl at any time.
WARNING: vmlinux.o(.text+0x1089bc2): Section mismatch: reference to .init.text: (between 'snd_hdsp_create_alsa_devices' and 'snd_hdsp_free')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- hdsp: make Multiface II work again
This device has io_type == 1 (Multiface) and firmware_rev > 0xa
(fixes regression from changeset 5326)
Signed-off-by: Andreas Degert <ad@papyrus-gmbh.de>

RME96 driver

- pci - check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly in the rest of
PCI drivers.

Raw OPL FM

- opl3 - Use hwdep for patch loading
Use the hwdep device for loading OPL2/3 patch data instead of the
messy sequencer instrument layer.
Due to this change, the sbiload program should be updated, too.

SAA7134 driver

- V4L/DVB (6666): saa7134-alsa: fix period handling
The period handling in saa7134-alsa is broken in two ways. First, the
minimum number of periods of two does not work, because the dma is setup
two periods ahead in the irq handler. Fix the minimum to four periods.
Second, the code assumes that the number of periods is divisible by two,
which isn't always the case on ALSA. Fix by adding a constraint.
Signed-off-by: Heikki Lindholm <holindho@cs.helsinki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
- V4L/DVB (6690): saa7134: fix ignored interrupts
The saa7134 video driver starts dropping frames when used together with the
saa7134-alsa driver. Frames are dropped because when an audio event is waiting
the driver simply ignores the interrupt and passes it on to the saa7134-alsa
interrupt handler. The alsa interrupt handler in turn acknowledges all types
of events thus clearing the pending video events as well. Fix by only masking
out the audio event in the video interrupt handler and by only acknowledging
the audio event in the alsa driver.
Signed-off-by: Heikki Lindholm <holindho@cs.helsinki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
- V4L/DVB (6623): remove saa7134-oss
The saa7134-oss is deprecated for quite some time, it's the only remaining OSS
user outside of sound/oss/, and considering how few and what kind of
soundcards are left supported by OSS I hardly see any use cases left.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
- 2.6 kernel sync (rest)

SB16/AWE driver

- sb16 - Suppress compile warning
sound/isa/sb/sb16_csp.c: In function ‘snd_sb_csp_new’:
sound/isa/sb/sb16_csp.c:121: warning: ‘version’ may be used uninitialized in this function

SC6000 (CompuMedia ASC-9308 + AD1848) driver

- sound/isa: Add missing "space"
Signed-off-by: Joe Perches <joe@perches.com>

SIS7019 driver

- sis7019: support the SiS 7019 Audio Accelerator
Basic audio support for the SiS 7019 Audio Accelerator as found in the
SiS 55x SoC. There is currently no synth support at the moment, but
audio playback and capture with two periods per buffer has seen
extensive use. Arbitrary period and buffer sizes (with multiple periods
per buffer) have seen light testing, but are believed to be production
ready.
Signed-off-by: David Dillow <dave@thedillows.org>
- sis7019: add support to driver package
The sis7019 driver uses __ffs(), which first became available in kernel
2.5.2.6. This adds that compatibility function for x86 to adriver.h,
and adds a more useful error message for other platforms that try to use
it.
Signed-off-by: David Dillow <dave@thedillows.org>

SPARC DBRI driver

- dbri - Fix broken change for value range checks
The last patch for value range checks included a broken merge result.
Now fixed properly.

SPARC cs4231 driver

- This simplifies and fixes waiting loops of the mce_down()
function after Trent Piepho's patch for AD1848.
It also makes busy_wait() function call not atomic.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>

Serial BUS drivers

- Check value range in ctl callbacks
Check the value ranges in ctl put callbacks properly (in the rest drivers).
- Update tea575x-tuner patch
Since 2.6.24-rc1, hardware field is removed.

SoC Audio for the Samsung S3C24XX chips

- add s3c2412 build stub
- s3c2443-ac97: compilation fix
The Samsung S3C24xx uses new architecture file layout in the post 2.6.23
kernel. This patch fixes include path for the s3c2443-ac97.c.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- soc - ln2440sbc ac97 support
This patch adds ac97 support for ln2440sbc board from LittleChips.
This board is based on s3c2440 SoC + AC97 Realtek ALC650 codec.
Existing s3c2443 implementation is slightly modified because s3c2440
and s3c2443 have different AC97 interrupts.
Signed-off-by: Ivan Kuten <ivan.kuten@promwad.com>
- Add stub for the new ln2440sbc_alc6550 driver
- sound: Use time_before, time_before_eq, etc.
The functions time_before, time_before_eq, time_after, and time_after_eq
are more robust for comparing jiffies against other values.
A simplified version of the semantic patch making this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@ change_compare_np @
expression E;
@@
(
- jiffies <= E
+ time_before_eq(jiffies,E)
|
- jiffies >= E
+ time_after_eq(jiffies,E)
|
- jiffies < E
+ time_before(jiffies,E)
|
- jiffies > E
+ time_after(jiffies,E)
)
@ include depends on change_compare_np @
@@
#include <linux/jiffies.h>
@ no_include depends on !include && change_compare_np @
@@
#include <linux/...>
+ #include <linux/jiffies.h>
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
- soc - Reinitialise DMA on every resume
This one changes the DMA initialisation as it turns out the DMA driver
in s3c24xx doesnt store registers between suspend/resume so you have
to re-initialise the channels on every resume.
Signed-off-by: Graeme Gregory <graeme@openmoko.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- soc - Support suspend and resume of the I2S interface on s3c24xx
Signed-off-by: Graeme Gregory <graeme@openmoko.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- ASoC: S3C2412 IIS driver
S3C2412 SoC IIS support for ALSA/ASoC
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- S3C2412: suspend and resume support
Support for suspend/resume for the S3C2412 ASoC IIS
core driver.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- neo1973: ASoC include pathname fix
Fix s3c24xx include file path changes in asoc driver
Signed-off-by: Harald Welte <laforge@openmoko.org>
- i2c: normal_i2c can be made const (remaining drivers)
Signed-off-by: Jean Delvare <khali@linux-fr.org>

SoC Codec CS4270

- cs4270: wrong sample rate when CONFIG_SND_SOC_CS4270_VD33_ERRATA is set
When CONFIG_SND_SOC_CS4270_VD33_ERRATA is set, there was a mismatch between
the mclk_ratios[] and cs4270_mode_ratios[] arrays. The two arrays have been
merged and code has been shuffled. One side effect is that the
cs4270_set_dai_sysclk() and cs4270_set_dai_fmt() functions are available only
if I2C has been enabled.
Signed-off-by: Timur Tabi <timur@freescale.com>
- i2c: normal_i2c can be made const (remaining drivers)
Signed-off-by: Jean Delvare <khali@linux-fr.org>
- fix private data pointer calculation in CS4270 driver
Fix the calculation of the private_data pointer in the CS4270 driver.
Signed-off-by: Timur Tabi <timur@freescale.com>

SoC Codec TLV320AIC3X

- Add missing build stub tlv320aic3x.c
- ASoC TLV320AIC3X codec driver
This patch adds ALSA SoC support for TI TLV320AIC3X audio codecs.
The features that are supported:
o Capture/Playback/Bypass.
o 16/20/24/32 bit audio.
o 8k - 96k sample rates.
o codec master only mode
o DAPM.
Signed-off-by: Vladimir Barinov <vbarinov@ru.mvista.com>

SoC Codec WM8731

- soc/wm8731: Fix stereo mixer controls
Disable the simultaneous load feature for the line in and headphone
out volume registers. This allows left and right volume levels to
be controlled separately.
Signed-off-by: Ville Syrjala <syrjala@sci.fi>

SoC Codec WM8750

- use convenient treble scale on WM8750
On Zaurus SL-C3200 (terrier/spitz) based on WM8750, treble scale is
inconveniently reverted (increase level = decrease treble), in opposite
to bass scale, which uses convenient scale.
Fix ALSA WM8750 mixer treble to use convenient treble scale (increase =
increase treble level)
From: Stanislav Brabec <utx@penguin.cz>

SoC Codec WM8753

- soc - Mono voice playback volume for WM8753
Voice playback volume is in register bits 0:2, not 4:6.
From: Mike Montour <mail@mmontour.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Werner Almesberger <werner@openmoko.org>
- soc - Initial WM8753 TLV support for capture mixer
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

SoC Codec WM9712

- soc - Add "Mono Playback Switch" to WM9712 codec driver
The following patch adds "Mono Playback Switch" control to WM9712 codec
SoC driver.
Also, it fixes Treble, Bass and Mono playback volume inversion bits.
Signed-off-by: Mike Rapoport <mike@compulab.co.il>
- Fix inverted Phone volume WM9712 mixer control
Signed-off-by: Joe Sauer <jsauer@vernier.com>
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

SoC Dynamic Audio Power Management

- soc - Add device level DAPM event
Added a device level dapm event so that both the machine and codec are informed
when dapm events occur.
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- ASoC TLV support
Add TLV support to ASoC.
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
- soc - Fix power switching support for DAPM_SWITCH widgets
Signed-off-by: Milan plzik <milan.plzik@gmail.com>
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
- soc - Clean up tabs
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
- soc - Add support for passing kcontrols with events
Signed-off-by: Laim Girdwood <lg@opensource.wolfsonmicro.com>
- soc - Don't lock the codec list in snd_soc_dapm_new_widgets()
snd_soc_dapm_new_widgets() takes the codec lock when adding new widgets,
causing lockdep warnings when applications later call down through ALSA
to adjust controls. Since widgets are only added during probe this lock
should be unneeded so don't take it.
Thanks to Dmitry Baryshkov <dbaryshkov@gmail.com> for reporting this issue.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Dmitry Baryshkov <dbaryshkov@gmail.com>
- include/sound/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>

SoC Freescale

- Add ASoC drivers for the Freescale MPC8610 SoC
Add the ASoC drivers for the Freescale MPC8610 SoC and the MPC8610 HPCD
reference board.
Signed-off-by: Timur Tabi <timur@freescale.com>
- Add soc/fsl entry
- mpc8610: Add mmap support
Enable mmap support in the MPC8610 ASoC driver. The driver can use ALSA's
default mmap functionality, it was just not enabled previously.
Signed-off-by: Timur Tabi <timur@freescale.com>

SoC Layer

- Add ASoC drivers for the Freescale MPC8610 SoC
Add the ASoC drivers for the Freescale MPC8610 SoC and the MPC8610 HPCD
reference board.
Signed-off-by: Timur Tabi <timur@freescale.com>
- Fix lockdep warning in ASoC machine probe
Don't take the codec mutex during machine probe until we have registered
with ALSA, fixing a lockdep warning reported by Dmitry Baryshkov.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Dmitry Baryshkov <dbaryshkov@gmail.com>
- soc - Add device level DAPM event
Added a device level dapm event so that both the machine and codec are informed
when dapm events occur.
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- ASoC TLV support
Add TLV support to ASoC.
Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
- soc - Add D1 power event to power down event sequence
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
- soc - Ensure PCMs are suspended
This fixes a bug whereby PCMs were not being suspended when the rest of the
audio subsystem was suspended.
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
- Bump ASoC core version number
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- ASoC TLV320AIC3X codec driver
This patch adds ALSA SoC support for TI TLV320AIC3X audio codecs.
The features that are supported:
o Capture/Playback/Bypass.
o 16/20/24/32 bit audio.
o 8k - 96k sample rates.
o codec master only mode
o DAPM.
Signed-off-by: Vladimir Barinov <vbarinov@ru.mvista.com>

SoC PXA2xx E800/WM9712

- soc - Preliminary ac97 drivers for Toshiba e800 PDAs
Currently only the AUX channel is used (touchscreen)
Signed-off-by: Ian Molton <spyro@f2s.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

SoC SH7760 AC97

- Add SUPERH depends to sound/soc/sh/Kconfig
Currently you will see an empty "SoC Audio support for SuperH" menu
when building for other archs (example pxa).
This patch adds "depends on SUPERH" to remove that empty menu.
Signed-off-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
- ASoC: sh: improve generated code for HAC module (AC97)
Change loops in ac97_read/write functions to count down to zero
rather than up. Gcc will then use the 'dt' (decrement-and-test) op
instead of an increment/compare op-pair.
Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>

TEA575x tuner

- fm801 - Add mute support for FM-only card with FM801 PCI to tuner bridge
This is improvement of the early support of the FM-only cards where the
fm801 chip represents the PCI to tuner bridge.
The tuner initialization isn't included the mute on as well as mute support
via V4L request. Proposed patch should fix this at least for 64-PCR model.
Signed-off-by: Andy Shevchenko <andy@smile.org.ua>
- V4L/DVB (6320): v4l core: remove the unused .hardware V4L1 field
struct video_device used to define a .hardware field. While
initialized on severl drivers, this field is never used inside V4L.
However, drivers using it need to include the old V4L1 header.
This seems to cause compilation troubles with some random configs.
Better just to remove it from all drivers.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

Trident driver

- Remove sequencer instrument layer
Remove sequencer instrument layer from the tree.
This mechanism hasn't been used much with the actual devices. The only
reasonable user was OPL3 loader, and now it was rewritten to use hwdep
instead. So, let's remove the rest of rotten codes.
- Remove sequencer instrument layer
Remove the alsa-driver build stub for sequencer instrument layer.
- Salvage old seq instrument layer codes
Salvate old sequencer instrument layer codes to "old" directory,
just for good and old memories.

USB

- usb-caiaq - add support for Kore controller 2
Added support for Native Instrument's Kore controller 2. This device has
no audio but MIDI, input devices and ALSA controllers only.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
- caiaq - add control API and more input features
- added support for all input controllers on Native Instrument's "Kore
controller".
- added ALSA controls to switch LEDs on "RigKontrol 2", "RigKontrol3",
"Audio Kontrol 1" and "Kore controller".
- added ALSA controls to switch input mode, software lock and ground
lift features on "Audio 8 DJ".
Signed-off-by: Daniel Mack <daniel@caiaq.de>
- caiaq - Fix indent in Kconfig
Fix indent of caiaq in Kconfig to the same level as others.
Just a tidy up.
- caiaq - input device support must depend on CONFIG_INPUT
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

USB MIDI Gadget driver

- Add ALSA-related files from 2.6.24 git tree
Added ALSA-related kernel files to HG tree.

USB USX2Y

- alsa: usx2y nopage
Convert alsa usx2y driver from nopage to fault.
Signed-off-by: Nick Piggin <npiggin@suse.de>
- Fix patches for fault vms ops
Regenerated patches for handling nopage ops with older kernels.

USB caiaq

- caiaq - Fix section mismatch
Removed invalid __devinit* causing section mismatch errors.
- usb-caiaq - add support for Kore controller 2
Added support for Native Instrument's Kore controller 2. This device has
no audio but MIDI, input devices and ALSA controllers only.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
- usb/caiaq: decrease period_bytes_min
This patch decreases the snd_pcm_hardware->period_bytes_min field in the
caiaq/usb audio driver. The hardware can actually handle as few as 128
bytes, depending on the system. So it makes no sense to keep
applications from actually using such values.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
- caiaq - add control API and more input features
- added support for all input controllers on Native Instrument's "Kore
controller".
- added ALSA controls to switch LEDs on "RigKontrol 2", "RigKontrol3",
"Audio Kontrol 1" and "Kore controller".
- added ALSA controls to switch input mode, software lock and ground
lift features on "Audio 8 DJ".
Signed-off-by: Daniel Mack <daniel@caiaq.de>
- Add caiaq-control.c stub to build
- caiaq - remove ifdef
Remove ifdef and fix Makefile for conditional builds.
- Fix build of usb-caiaq driver with older kernels
- sound: fix caiaq section mismatches
Fix section mismatch in caiaq: these __devinit functions can be
called at any time so they should not be __devinit.
WARNING: vmlinux.o(.text+0x10a8dae): Section mismatch: reference to .init.text:snd_usb_caiaq_audio_init (between 'setup_card' and 'create_card')
WARNING: vmlinux.o(.text+0x10a8dd6): Section mismatch: reference to .init.text:snd_usb_caiaq_midi_init (between 'setup_card' and 'create_card')
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
- get rid of input BIT* duplicate defines
get rid of input BIT* duplicate defines
use newly global defined macros for input layer. Also remove includes of
input.h from non-input sources only for BIT macro definiton. Define the
macro temporarily in local manner, all those local definitons will be
removed further in this patchset (to not break bisecting).
BIT macro will be globally defined (1<<x)
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
- caiaq - misc input handling fixes
- link input device with its parent so that it placed in proper spot
in sysfs hierarchy
- drivers that allow changing their keymaps should use private copy
of the keymap so that one instance of a device does not affect
another instance
- it is preferred for drivers to properly set up input_dev->phys to
help userspace locate devices
- drivers should use usb_to_input_id(), or perform endianess conversion,
themselves, otherwise ID is not correct on big-endian boxes
- whitespace and formatting cleanup
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Daniel Mack <daniel@caiaq.de>

USB generic driver

- usb audio suspend support
This patch implements suspend/resume support for USB audio devices.
It works with the microphone in my camera.
Signed-off-by: Oliver Neukum <oneukum@suse.de>
- Regenerate usbaudio.patch for suspend support
- race between disconnect and error handling in usbmidi
The driver resubmits URBs from an error handler and schedules the error
handler from the URBs' completion handlers. To reliably kill the cycle
a flag must be used.
Signed-off-by: Oliver Neukum <oneukum@suse.de>
- sound/usb/usbaudio.c: fix build with CONFIG_PM=n
sound/usb/usbaudio.c: In function 'usb_audio_suspend':
sound/usb/usbaudio.c:3674: error: implicit declaration of function 'snd_pcm_sus\pend_all'
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- regenerate usbaudio.patch
Adjust usbaudio.patch for OLD_USB kernels.
- usb-audio: Another USB mic quirk for Logitech Communicator webcam
The patch adds the USB microphone quirk for Logitech Communicator
(046d:08f5 Logitech, Inc.) webcam.
Signed-off-by: Dawid Wrobel <dawid@klej.net>
- Summary: Update patch file to stop it failing.
- usb-audio - Fix double comment
Remove superfluous comment line (maybe a merge failure).
- usb-audio - SB Live24-External better handling
This patch improves support for 'SB Live 24-bit Extarnal' USB card.
1) This card can go into muted state when a headphones connected or
disconnected. So notify mixer about changes in headphone jack.
2) Add LED controls and procfs support just as in similar Audigy 2 NX card.
3) Rename 'PCM Capture' conrol to 'Mic Capture' to reflect reality:
the card may adjust microphone input level only.
Signed-off-by: Timofei Bondarenko <tim@ipi.ac.ru>
- usb-audio: add UR-80 PCM quirk
Add a quirk entry to handle Edirol UR-80 audio I/O.

USB1400 touchscreen driver

- 2.6 kernel sync (rest)

Utils

- add s3c2412 build stub
- Add stub for the new ln2440sbc_alc6550 driver
- cmi8788: driver rewrite
complete rewrite; still incomplete
- Mark SND_SOC_TLV320AIC3X as non-card driver in mod-deps
- Accept XXX=YYY style dependency (somehow)
A minimal hack to accept XXX=YYY style dependency, simply supposing that
it's equivalent with XXX=m. If not, we'll really need a better parser.

VIA82xx driver

- via82xx: minor optimization in snd_via82xx_free
via82xx: minor optimization in snd_via82xx_free
don't check X, when we just checked !X before goto
Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>
- via82xx - Fix quirk for Shuttle AK32VN
Fix quirk for Shuttle AK32VN. It works better with DXS_SRC, and needs
HP_ONLY ac97 quirk.

au88x0 driver

- sound/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>
- Fix misspellings of "system", "controller", "interrupt" and "necessary".
Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>

pci_ids.h update

- 2.6 kernel sync

alsa-lib

Core

- Make local functions really local
Rename the local functions to snd1_* so that they won't be exported
out of alsa-lib.
Some functions are still kept because aserver requires them. Sigh.
- Clean up Versions file
The entries in the current Versions file don't work as expected.
Since the first ALSA_0.9 has already snd_* global definitions, all
the rest are simply ignored. Some symbols (e.g. snd_hw_params_*)
indeed work because they have explicit symver definitions, but
ALSA_0.9.6 and later are all superfluous.
This patch clean up these useless entries. Also, the patch restricts
the matching patterns for _snd_* and __snd_* entries to reduce the
unneeded export symbols.
- Fix wrong exported functions
The internal functions (as alias of 0.9.0rc4 variants) must be
exported but they were wrongly listed in Versions file.
Fixed the function names now.
- Remove obsolete instr check in configure
- Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
- Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.
- Re-add assert.h to asoundlib.h
Looks like many apps rely on implicit inclusion of assert.h in asoundlib.h.
Take it back again to make them happy.
- Add support for monotonic timestamps
- Fix exported symbols for hooks and functions
The functions dynamically loaded via plugin aren't fully listed
in the exported functions in Versions file. This caused errors at
opening devices with such plugins.
- Change assert condition in error message handler
Activating assert() in the default error message handler isn't always
good for producitve systems. Make this optional and enable only when
a special configure option is given (i.e. for explicit debugging).
- Export dB conversion helper functions
Export helper functions to convert dB level and range.
snd_tlv_*dB*() are to convert dB level or range directly from TLV data.
snd_ctl_*dB*() are to get dB level or range from a control element.

Control API

- Make local functions really local
Rename the local functions to snd1_* so that they won't be exported
out of alsa-lib.
Some functions are still kept because aserver requires them. Sigh.
- Fix build with --disable-hwdep and co
control.h has function declarations with hwdep or rawmidi types
that aren't included when built without the corresponding supports.
Add ifdef appropriately to fix this.
- fix error code when controlC0 device has no enough permissions
See alsa bug#3600
- Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
- Remove indirect control access
The indirect control access is removed from the kernel.
This patch cleans the corresponding alsa-lib part.
- Export dB conversion helper functions
Export helper functions to convert dB level and range.
snd_tlv_*dB*() are to convert dB level or range directly from TLV data.
snd_ctl_*dB*() are to get dB level or range from a control element.

HWDEP API

- Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.

Instrument API

- Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
- Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.
- Remove obsolete instr directory

Mixer API

- Make local functions really local
Rename the local functions to snd1_* so that they won't be exported
out of alsa-lib.
Some functions are still kept because aserver requires them. Sigh.
- simple mixer: fix calculation of control range
When calculating the value range of a control, the variables cannot be
initialized with zero because this would prevent the minimum from having
a value above zero or the maximum from having a value below zero.
- Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
- Export dB conversion helper functions
Export helper functions to convert dB level and range.
snd_tlv_*dB*() are to convert dB level or range directly from TLV data.
snd_ctl_*dB*() are to get dB level or range from a control element.

PCM API

- revert revision 2264:23c4c0f5de40
The rounding done when converting to smaller sample widths fails for
saturated positive samples; in this case, the sample value overflows and
becomes negative. We are better off without rounding, even if we then
have quantization noise (of at most half the resolution of the least
significant bit).
ALSA bug#3360; Debian #437827; GNOME #436192; LP #116990; Mandriva #33908
- Add snd_pcm_ioplug_set_state() function
Added an exported function snd_pcm_ioplug_set_state() to change
the PCM state of ioplug from the plugin side (e.g. from another
thread).
- Add deprecated attribute to obsolete functions
Added __attribute__((deprecated)) to declarations of obsolete functions.
- SND_PCM_TSTAMP_MMAP -> SND_PCM_TSTAMP_ENABLE change
- Added possibility to disable also channel and format conversions + softvol.
Unified disable option using mode bits in snd_pcm_open().
- dmix - Enable auto format detection as default
The direct plugins have the automatic format-detection feature but it
wasn't enabled properly in the interface. Now you can pass the format
"unchanged" to make the plugin detect a proper format.
This will change the default format of some drivers, such as, HD-audio.
- Fix a memory leak in PCM hook plugin
- Fix wrong return values in direct plugins
Fixed the codes returning error values that are not set properly
via errno.
- Fix mmap with multi plugin
The mmap of multi plugin seems broken (for a long time!) due to its
creation of local buffer via snd_pcm_mmap(). Since the multi plugin
just needs to shadow the mmap buffer of each slave, it now has
mmap_shadow=1 and its own mmap/unmap method to do shadowing.
- Make local functions really local
Rename the local functions to snd1_* so that they won't be exported
out of alsa-lib.
Some functions are still kept because aserver requires them. Sigh.
- dmix: rename mix_areas*
Rename all mix_areas* symbols so that they contain the sample width
instead of some meaningless number.
- dmix: simplify mix_areas()
The code for the three supported sample widths is almost the same, so it
makes sense to merge the three cases.
- dmix: add U8 support
Add support for direct mixing of U8 samples (for devices like some USB
headsets or the Tux Droid).
- Added SNDRV_PCM_IOCTL_TTSTAMP and updated PCM API version to 2.0.9
- pcm plug plugin: remove duplicated expression
Remove a needlessly duplicated expression.
- pcm hw plugin: fix TTSTAMP version check
Fix the version check that determines the availability of the TTSTAMP
ioctl.
- pcm hw plugin: use TSTAMP only with old drivers
There is no need to call the TSTAMP ioctl with newer driver versions.
- check availability of CLOCK_MONOTONIC
Use monotonic timestamps only after checking that CLOCK_MONOTONIC is
actually supported by the C library.
- pcm dmix plugin: fix generic direct remixing
In the case of the sum buffer being uninitialized, the source sample
must be negated not only when writing to the sum but also when writing
to the destination.
- Add SND_PCM_TSTAMP_MMAP back
SND_PCM_TSTAMP_MMAP is used (blidnly) by portaudio, unfortunately.
Re-added it not to break API.
- Add missing remix_areas_* for x86-64
The remix_areas_* were missing the dmix x86-64 code. Added now.
- ioplug - Fix the refinement of period_* after periods
When changing only PERIODS after BUFFER_*, ioplug doesn't update
the corresponding PERIOD_* parameters properly. This should fix
ALSA bug#2601.
- Remove ugly hack in rate plugin poll_descriptors callback
The rate plugin has ugly hacks in poll_descriptors callback to adjust
avail_min when partial read/write occurs. This causes often unexpected
problems like XRUNs, especially with two-period cases.
Let's remove that beast, it's rather harmful than useful.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
- Set PCM name properly in empty and asym plugins
The PCM name isn't set properly on empty and asym plugins due to its call
of snd_pcm_open_slave(). Now a new function snd_pcm_open_named_slave()
is created and make snd_pcm_open_slave() an inline function calling the
new one with name=NULL.
- Fix segfault with strdup(NULL) in softvol
The last change to fix the slave name may cause a segfault when
name=NULL is passed. Fixed now.
- Implemented snd_pcm_rewind() for the dmix plugin
- snd_pcm_dmix_close: raise semaphore if unable to discard
This patch causes snd_pcm_dmix_close() to up a semaphore after downing it
if it is unable to discard it. It prevents some deadlock that I am
getting when a couple of applications interact and one of them closes the
device and later re-opens it.
From: Mike Gorse <mgorse@mgorse.dhs.org>
- Fix gcc compile warnings
Fix gcc compile warnings with nasty const cast. Let's use simply macros
instead of inline functions. It's just an array access after all...
- Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.
- Remove PCM xfer_align
The PCM xfer_align is a removed feature from the kernel.
This patch cleans up the corresponding part in alsa-lib.
- Remove sleep_min and tick
The sleep_min and tick are removed features from the kernel.
This patch cleans the corresponding part in alsa-lib.
- Allow pcm slave string references for direct plugins (bug#2893).
- Implement missing htimestamp callbacks
Implemented the missing htimestamp callbacks for ioplug, rate and null
plugins.
- pcm - Limit the avail_min minimum size
Fix avail_min if it's less than period_size. The too small avail_min
is simply useless and the cause of CPU hog with rate plugin.
- Fix function declarations with old PCM API
The functions that are obsoleted in the last patches conflict with the
old PCM API. Fixed with ifdef.
- Add support for monotonic timestamps
- Impemented snd_pcm_htimestamp() function.
- Avoid (null) in printf
Show '[builtin]' when the library name is NULL in error messages.
- Don't use deprecated functions inside
Use the new functions in snd_pcm_sw_params_dump().
- Allow auto-config for dsnoop and dshare plugins
- Fix timestamp in status in PCM direct plugins
PCM direct plugins didn't update the timestamp properly.
Now it always starts the slave PCM with MMAP tstamp_mode so that the
timestamp will be being updated. When a client is set up as MMAP
tstamp_mode as well, simply copy this slave timestamp. Otherwise
status callback calculates the current timestamp as usual.
- Clean up using gettimestamp()
Introduce a new local function gettimestamp() to get the current timestamp.
- softvol - add missing name
softvol can be also a pass-thru when the given control already exists
as a hardware control, and the name isn't set properly because of
slave creation. This patch fixes it.

Rawmidi API

- Remove assert from header files
Putting assert in the public macros isn't good idea at all.
Let's get rid of them.
Also, clean up snd*_alloca() functions to use a helper macro
instead of copy and paste.

Sequencer API

- Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.

/include/Makefile.am

- Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.

Configuration

- Add the missing card alias for Prodigy71Hifi
See ALSA bug#3735
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3735
- dmix - Enable auto format detection as default
The direct plugins have the automatic format-detection feature but it
wasn't enabled properly in the interface. Now you can pass the format
"unchanged" to make the plugin detect a proper format.
This will change the default format of some drivers, such as, HD-audio.
- oxygen: remove softvol plugin
Remove the softvol plugin from all other CMI8788 devices.
- fix memory leak in snd_config_update_r error path
Do not forget to free the memory for the file name when a file to be
read by snd_config_update_r() cannot be accessed.
- alsa.conf: cosmetic change
Add a whitespace to make the ctl.hw definition better readable.
- oxygen: enhance configuration
Remove the now superfluous softvol plugin from the CMI8788
configuration, use 24-bit samples for dmix, and add an alias for the
AV200 driver.
- fix error path in snd_config_hook_load_for_all_cards()
- conf: show path of any missing configuration file
In all cases where a configuration file is not found, show an error
message with its full path.

Documentation

- Remove sequencer instrument layer
Remove obsoleted sequencer instrument layer from alsa-lib.
The old symbols are compiled in as default as dummy functions
(unless --disable-old-symbols is given to configure) so that
the old binaries can still work more or less.
- Remove obsolete instr directory
- Change assert condition in error message handler
Activating assert() in the default error message handler isn't always
good for producitve systems. Make this optional and enable only when
a special configure option is given (i.e. for explicit debugging).

Error handler

- Change assert condition in error message handler
Activating assert() in the default error message handler isn't always
good for producitve systems. Make this optional and enable only when
a special configure option is given (i.e. for explicit debugging).

External PCM I/O Plugin SDK

- Add snd_pcm_ioplug_set_state() function
Added an exported function snd_pcm_ioplug_set_state() to change
the PCM state of ioplug from the plugin side (e.g. from another
thread).
- Add support for monotonic timestamps

Kernel Headers

- SND_PCM_TSTAMP_MMAP -> SND_PCM_TSTAMP_ENABLE change
- Added SNDRV_PCM_IOCTL_TTSTAMP and updated PCM API version to 2.0.9
- Remove indirect control access
The indirect control access is removed from the kernel.
This patch cleans the corresponding alsa-lib part.
- Update asound_fm.h for patch loading over hwdep
Update asound_fm.h to add the new struct and ioctl for patch loading
over hwdep.

Simple Abstraction Mixer Modules

- fix write in simple mixer API - python backends

Test/Example code

- Remove obsolete seq event entries in seq-decoder
Removed obsolete seq-devent entries in seq-decoder.
- midiloop: use blocking mode
Busy waiting is evil - use blocking mode when reading the actual test data.
- Remove PCM xfer_align
The PCM xfer_align is a removed feature from the kernel.
This patch cleans up the corresponding part in alsa-lib.
- Remove sleep_min and tick
The sleep_min and tick are removed features from the kernel.
This patch cleans the corresponding part in alsa-lib.

alsa-plugins

PulseAudio -> ALSA plugin

- PulseAudio plugin: report XRUN state back to application
From: Lennart Poettering <mznyfn@0pointer.de>
It adds support to report back XRUN to the application if one
happens. This is required to make some applications work on top of the
pulse plugin. One being XMMS, which checks if a song finished to play
by waiting for an XRUN (yes, I don't argue that XMMS shouldn't do
that, but nonetheless it is a good thing if XRUNs are reported
properly.)
- Fix wrong assert in pulse plugin
assert(!pcm->stream) shouldn't be checked when the PCM state is
SETUP, too (ALSA bug#3470).
The original patch by Mike Gorse <mgorse@mgorse.dhs.org>
- Use different buffer metrics in the PulseAudio plugin
It increases the "pre-buffering level" (i.e. start threshold) to the
full buffer size minus one period. This makes PA work a little bit
more like normal audio devices, and makes a few drop outs go away for
software which uses very small period sizes.
It also increases the initial maximum buffer size, which allows a
small overcommit. That's not really an issue, but cleaner nonetheless
so I smuggled it into this patch.
Also reported in the ALSA BTS:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3578
From: Lennart Poettering <mznyfn@0pointer.de>
- Fix unexpected assert with pulse plugin
This patch fixes the unexpected assert call at calling snd_pcm_hw_params
in PREPARED state. Since multiple hw_params calls are allowed, the pulse
plugin shouldn't call assert.
Handled in ALSA bug#3470.
From: Sean McNamara <smcnam@gmail.com>
- pulse - Add minmax condition for period_bytes and periods
Added the minmax conditions for period_bytes and periods to pulse plugin.
This fixes ALSA bug#2601.
Patch from Mike Gorse <mgorse@mgorse.dhs.org>

alsa-utils

Core

- alsactl - restore dB level
When alsactl saved state has dB level information and an attribute
of a control element is changed after save (e.g. volume range is
changed), try to restore the values to keep the same dB level.
This change requires the new alsa-lib functions for TLV dB
conversion, so we check it in configure (until AM_PATH_ALSA(1.0.16)
works).

ALSA Control (alsactl)

- alsactl - Fix wrong restore
Fix a bug in alsactl that restores wrong values for elements with
multiple channels (counts).
- alsactl: skip inactive controls
When using alsactl to save or restore the card settings, it currently
skips over controls that don't have the appropriate read/write
permissions. It should also skip over inactive controls, otherwise it
will get an error when it tries to access that control, and will fail to
save the card state (or fully restore it.)
From: Dave Dillow <dave@thedillows.org>
- alsactl - fix double entry of comment.tlv
The entry comment.tlv can be doubly written via alsactl store, and this
results in an error. I forgot to remove the old code...
- alsactl - Set -F option as default
Set -F option as default for restore. There are still too many systems
that are too lazy to set -F option...
Added the new -P option to back to the old behavior.
- Make alsactl restore a bit more robust
Make "alsactl restore" a bit more robust. Now it tries to parse the
compound items in the case that the number of channels was changed.
The former mono-value is expanded to all channels.
- alsactl - restore dB level
When alsactl saved state has dB level information and an attribute
of a control element is changed after save (e.g. volume range is
changed), try to restore the values to keep the same dB level.
This change requires the new alsa-lib functions for TLV dB
conversion, so we check it in configure (until AM_PATH_ALSA(1.0.16)
works).

Speaker Test

- speaker-test - Fix number of periods to play
The number of periods to play in pink and sine modes could be calculated
as zero, which results in just silence. Make the minimal value 1.
- speaker-test - Put errors to stderr
Error messages should be shown in stderr.
- Remove xfer_align
The xfer_align is the obsolete feature now. Remove it from aplay
and speaker-test to avoid deprecated calls.

alsamixer

- alsamixer: add 8-channel support
Add support for playback volume controls with 8 channels.
This allows controlling the side channels on 7.1 devices.

aplay/arecord

- aplay - Reset non-blocking flag before snd_pcm_drain()
snd_pcm_drain() doesn't block when running with O_NONBLOCK.
Reset the non-blocking mode before calling snd_pcm_drain() properly
(and restore again for any further operations).
- Remove sleep_min from aplay
The sleep_min is the obsolete feature now. Remove it from aplay.
- Remove xfer_align
The xfer_align is the obsolete feature now. Remove it from aplay
and speaker-test to avoid deprecated calls.

aseqnet

- Add missing inclusion of assert.h

iecset

- iecset: fix card index check
Allow card indices up to 31.
- iecset - Add -n option
Added -n option to iecset to specify the index number of the control
element. This is needed for handling multiple SPDIF devices.

alsa-tools

ac3dec (Dolby Digital Decoder)

- support for dynamic 2.0/5.1 AC3 changes - bug#3441

hdspconf

- Fix a small memleak
Added the forgotten free. ALSA bug#3687
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3687

hdspmixer

- hdspmixer - Fix compilation with gcc4.3
Fixed the doubled parameter 'w'. Yeah, gcc 4.3 is picky.
- hdspmixer - small memory leak fix
ALSA bug#3687
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3687
the hdspmixer application leaks one memory block, a c-style string
which is obtained by snd_card_get_longname, but never freed ...
- hdspmixer - Automatic initialization of secondary cards
From debian bug#450805:
We are using Hammerfall DSP cards. After booting, their audio output
remains silent until hdspmixer is started. No interaction in the GUI
of hdspmixer is necessary to unmute the first HDSP card; however,
further cards are only unmuted when activating the respective GUI
page ("2", "3"). Apparently, hdspmixer does some automatic
initialization of the card when activating the page.
Since we'd like to have a fully automatic startup, the following
patch activates the page for each existing card on startup, thereby
initializing them. There are surely more elegant solutions, but this
patch is tested and solves the problem for us.

sbiload

- sbiload - Rewritten to use hwdep device
Major rewritten to use hwdep device instead of instrument layer.
Also, more options (-c, -2, -q, -D) and better guess work for
patch types now.

alsa-firmware

AudioScience ASIHPI Firmware

- asihpi - update firmwares for asihpi30905
dsp6413.bin is replaced by dsp6400.bin, dsp8713 by dsp8700.
The irrelevant dsp2400 is removed, too.
Also removed all dsp*.txt that are not needed.
- asihpi firmware update for verion 3.09.09
- add record format check for supported format.
- ASI6500/6500 - fix issue arising from back-to-back- adapter sample rate
changes.
- ASI6000 - fix rare MP3 decode bug.
- ASI6585 - add support for clock source Livewire.
- ASI6416 - re-order control creation.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>

Emagic EMI 2|6 Audio Interface Firmware

- emi26: complete license.txt
Add a paragraph from linux/drivers/usb/misc/emi26_fw.h that was missing
in license.txt.

alsa-python

Core

- pyalsa.alsaseq API added
Signed-off-by: Aldrin Martoq <amartoq@dcc.uchile.cl>

Python utilities

- fixed print in remove-user-ctl.py
- pyalsa.alsaseq API added
Signed-off-by: Aldrin Martoq <amartoq@dcc.uchile.cl>

Test python scripts

- pyalsa.alsaseq API added
Signed-off-by: Aldrin Martoq <amartoq@dcc.uchile.cl>

pyalsa.alsahcontrol module

- allow thread when calling handle events for mixer and hcontrol interface
- fix alsahcontrol.Element initializer and remove compilation warnings for gcc 4.2.1
- alsahcontrol - fix doc - elementType -> ElementType

pyalsa.alsamixer module

- allow thread when calling handle events for mixer and hcontrol interface

pyalsa.alsaseq module

- pyalsa.alsaseq API added
Signed-off-by: Aldrin Martoq <amartoq@dcc.uchile.cl>
Custom Search
Personal tools
Namespaces

Variants
Actions
Navigation
wiki
Toolbox