Difference between revisions of "Changes v1.0.22 v1.0.23"

From AlsaProject
Jump to: navigation, search
 
m (1 revision(s))

Revision as of 17:57, 16 April 2010

Contents

Changelog between 1.0.20 and 1.0.23 releases

alsa-firmware

Core

Release v1.0.23

AudioScience ASIHPI Firmware

asihpi: Remove dsp4300.bin from distdir
Updated asihpi firmware files to version 40313
Update firmware files for asihpi to version 40304

Changelog between 1.0.22 and 1.0.23 releases

alsa-driver

Sound Core

Release v1.0.23
add some linux-2.4 related stuff (pgprot_noncached & linux/gfp.h)
configure.in: More informative kernel/ALSA kernel tree directory checks
Refresh build-stub for usb mixer refactoring
handle more nicely new location for autoconf.h (generated/autoconf.h)
More fixes for build errors after usb v2.0 merge
Fix usb v2.0 builds
configure.in: fix gcc version check
linux/include/generated directory related changes for 2.6.33
Release v1.0.22.1
Add gcd() wrapper
Fix pack target and improve newalsakernel target
fix typo in $(ALSAKERNELFILE) target
Change alsa-kernel/sound_core.c to ALSAKERNELFILE and add this dep to pack target
Remove whole alsa-kernel tree before creating of symlinks
introduce --with-alsakernel option for ./configure

ALSA Core

Add no_llseek and nonseekable_open() wrappers for older kernels
Refresh info.patch for BKL removal changes
Add missing inclusion of linux/slab.h for early wrappers
add some linux-2.4 related stuff (pgprot_noncached & linux/gfp.h)
Add blocking_notifier_*() wrappers for older kernels
Refresh build-stub for usb mixer refactoring
Add missing inclusion of adriver.h in info.patch
handle more nicely new location for autoconf.h (generated/autoconf.h)
Fix usb v2.0 builds
Add a wrapper for usb_interrupt_msg()
compilation fix: double #endif in adriver.h
Add strict_strtol() and strict_strtoll() wrappers for old kernels
Fix WARN_ONCE() macro
Redefine WARN_ON() and WARN_ONCE() for older distro kernels
Define WARN_ONCE() for older kernels
Add DEFINE_PCI_DEVICE_TABLE() wrapper
Fix for previous commit (RHEL 5.4 support)
RHEL 5.4 compilation changes
linux/include/generated directory related changes for 2.6.33
Add wrapper of subsys_initcall()
Fix acore/misc.patch for new snd_pci_quirk_lookup_id()
Don't define gcd() when already exists
Fix acore/Makefile for pcm_memory.patch
Handle __GFP_ZERO for older kernels
Add missing EXPORT_SYMBOL() for gcd wrapper
Add gcd() wrapper
Add skip_spaces() wrapper
ALSA: info - Implement common llseek for binary mode
ALSA: info - Check file position validity in common layer
ALSA: info - Use standard types for info callbacks
ALSA: Remove BKL from open multiplexer
ALSA: info - Remove BKL
ALSA: timer - pass real event in snd_timer_notify1() to instance callback
ALSA: Remove warning message for invalid OSS minor ranges
ALSA: use subsys_initcall for sound core instead of module_init
ALSA: Add snd_pci_quirk_lookup_id()
ALSA: sound/core/pcm_timer.c: use lib/gcd.c

SoC PXA2xx Core

ALSA: alsa-kmirror tree & linux-2.6 tree sync 2010-04-16 (merging issues)
ASoC: Zipit Z2 WM8750 ASoC driver
[ARM] pxa: introduce PXA_SSP_LEGACY for legacy SSP API
ASoC: Remove legacy SSP API usage from pxa-ssp.c
ASoC: fix PXA SSP port resume

Control Midlevel

Refresh patches for addition of no_llseek calls
ALSA: core - Define llseek fops
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
sound: control: fix minimum TLV length
sound: control: actually allow TLV command access

Jack Input Event Midlevel

ALSA: Add support for key reporting via the jack interface
ALSA: Rename jack switch table in preparation for button support

PCM Midlevel

Refresh patches for addition of no_llseek calls
Refresh pcm_native.patch
Handle __GFP_ZERO for older kernels
ALSA: core - Define llseek fops
ALSA: pcm - Remove BKL from async callback
ALSA: pcm_lib - fix xrun functionality
ALSA: provide a more useful get_unmapped_area handler for pcm
ALSA: pcm core - fix fifo_size channels interval check
ALSA: pcm_native - fix runtime->boundary calculation
ALSA: pcm_lib - return back hw_ptr_interrupt
ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
ALSA: pcm - Remove unneeded ifdef pgprot_noncached
ALSA: pcm_core: Fix wake_up() optimization
ALSA: pcm_lib - fix wrong delta print for jiffies check
ALSA: pcm_lib: fix "something must be really wrong" condition
ALSA: pcm_lib - optimize wake_up() calls for PCM I/O
ALSA: pcm_lib - cleanup & merge hw_ptr update functions
ALSA: pcm_lib - add possibility to log last 10 DMA ring buffer positions
ALSA: pcm_lib.c - convert second xrun_debug() parameter to use defines
ALSA: Fix indentation in pcm_native.c
ALSA: sound/core/pcm_timer.c: use lib/gcd.c
ALSA: refine rate selection in snd_interval_ratnum()
ALSA: pcm - Add missing inclusion of linux/vmalloc.h
ALSA: fix incorrect rounding direction in snd_interval_ratnum()
sound: pcm: add vmalloc buffer helper functions

RawMidi Midlevel

Refresh patches for addition of no_llseek calls
ALSA: core - Define llseek fops

Timer Midlevel

ALSA: timer - pass real event in snd_timer_notify1() to instance callback

/include/Makefile

headers: handle include/linux/usb in mrproper target

/isa/Makefile

Remove obsolete dt019x.c again
introduce --with-alsakernel option for ./configure

/soc/codecs/Makefile

ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9
ASoC: TWL6040: Add twl6040 codec driver
ASoC: DaVinci: CQ93VC Voice Codec
ASoC: Add WM2000 driver
ASoC: Add WM8994 CODEC driver
ASoC: add a WM8978 codec driver
ASoC: Add initial WM8955 CODEC driver
ASoC: Fix sorting of codecs Makefile entries
ASoC: Add DA7210 codec device support for ALSA
ASoC: Initial WM8904 CODEC driver

/soc/pxa/Makefile

ASoC: Zipit Z2 WM8750 ASoC driver

/usb/misc/Makefile

Regenerate patches and build-stubs for usb refactoring
ALSA: usb-audio: move ua101 driver

AC97 Codec

ALSA: ac97: Add Toshiba P500 to ac97 jack sense blacklist
ALSA: ac97: Add IBM ThinkPad R40e to Headphone/Line Jack Sense blacklist
ALSA: ac97: add AC97 STMicroelectronics' codecs
ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense blacklist
ALSA: ac97_codec: merge WM9703 and WM9705 ops

AD1889 driver

sound: use DEFINE_PCI_DEVICE_TABLE

AK4113 receiver

ALSA: i2c: cleanup: change parameter to pointer

ALI5451 driver

sound: use DEFINE_PCI_DEVICE_TABLE

ALSA Version

ALSA: Release v1.0.23
ALSA: Release v1.0.22.1
ALSA: Release v1.0.22

ALSA sequencer

ALSA: trivial: sound seq ioctl dbg: print hexadecimal value padded with 0s
sound: seq_timer: simplify snd_seq_timer_set_tick_resolution() parameters

ALSA<-OSS emulation

Refresh patches for addition of no_llseek calls
ALSA: core - Define llseek fops
ALSA: pcm_lib - return back hw_ptr_interrupt
ALSA: pcm_lib - cleanup & merge hw_ptr update functions

ARM AACI PL041 driver

ALSA: aaci - Fix alignment faults on ARM Cortex introduced by commit 29a4f2d3
ALSA: sound/arm: Fix build failure caused by missing struct aaci definition
ALSA: AACI: switch to per-pcm locking
ALSA: AACI: add double-rate support
ALSA: AACI: factor common hw_params logic into aaci_pcm_hw_params
ALSA: AACI: cleanup aaci_pcm_hw_params
ALSA: AACI: simplify codec rate information
ALSA: aaci - Fix a typo

ARM PXA2XX driver

include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
ASoC: pxa-pcm-lib: initialize DMA channel to -1
[ARM] pxa: remove now unnecessary pxa_gpio_mode() calls in ac97
[ARM] pxa: introduce processor specific pxa27x_assert_ac97reset()
[ARM] pxa: remove the unnecessary restoring of MFP registers
const: constify remaining dev_pm_ops

ATIIXP driver

ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2

Apple Onboard Audio driver

include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
of: unify phandle name in struct device_node

Asihpi driver

ALSA: asihpi - Transform names towards linux style.
snd-asihpi: Support mic control caching. Move an enum out of public api.
snd-asihpi: Keep HPI buffer pointers in sync with ALSA after rewrite.
snd-asihpi: Use adapter properties for stream buffer constraints.
snd-asihpi: Bump lib version due to added and removed APIs
snd-asihpi: Reinit response size for every msg/response transaction. Minor fix const ptr
snd-asihpi: add const plus a few new defs
asihpi - Remove obsolete comment
asihpi - Allow mux to have up to 256 sources
Make firmware vs driver major version mismatch an error.
Sync with AudioScience current CVS at version 4.03.04

Atmel on-chip Audio Bitstream DAC (ABDAC)

ALSA: AC97: add full duplex support for atmel AT91 and AVR.
ALSA: AC97: add AC97 support for AT91.

Au12x0/Au1550 PSC ASoC

MIPS/SOUND: Alchemy: DB1200 AC97+I2S audio support.
MIPS: Alchemy: change dbdma to accept physical memory addresses
MIPS: Alchemy: remove dbdma compat macros

Avance Logic ALS300/300+ driver

sound: use DEFINE_PCI_DEVICE_TABLE

CMI8788 (Oxygen) driver

ALSA: oxygen: change || to &&
sound: virtuoso: add Xonar DS support

CMIPCI driver

ALSA: cmipci: work around invalid PCM pointer

CS4281 driver

ALSA: info - Check file position validity in common layer
ALSA: info - Use standard types for info callbacks

CS46xx driver

ALSA: info - Check file position validity in common layer
ALSA: info - Use standard types for info callbacks
ALSA: cs46xx - fix some typos
ALSA: cs46xx - Do test writes to register AC97_REC_GAIN in
ALSA: cs46xx: Fix cpu idling with resume
ALSA: cs46xx - Fix suspend/resume with new DSP

CS5535 driver

ALSA: cs5535audio: free OLPC quirks from reliance on MGEODE_LX cpu optimization

Compatibility header files

include/sound/pcm.patch - add back hw_ptr_interrupt variable
pcm.patch - update to recent runtime->tsleep & runtime->twake changes
Updated include/sound/pcm.patch according latest alsa-kmirror tree

Conexant Riptide driver

ALSA: riptide: clean up while loop
ALSA: test off by one in setsamplerate()

Creative Sound Blaster X-Fi (20K1/20K2)

Fix pci/ctxfi/ctatc.patch for new snd_pci_quirk_lookup_id()
ALSA: ctxfi - fix PTP address initialization
ALSA: ctxfi - Add subsystem option

DT019x driver

Remove obsolete dt019x.c again
introduce --with-alsakernel option for ./configure

Digigram VX core

handle more nicely new location for autoconf.h (generated/autoconf.h)
linux/include/generated directory related changes for 2.6.33
ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
sound: vx: use vmalloc buffer helper functions

Documentation

ALSA: hda - Update document about MSI and interrupts
ALSA: hda-intel - remove model=hwio from documentation
ALSA: hda-intel - remove model=hwio , use probe_only=3 instead
ALSA: hda-intel - add special 'hwio' model to bypass initialization
ALSA: ua101: add Edirol UA-1000 support
ALSA: hda - Add missing description in HD-Audio-Models.txt
ALSA: hda - Add Macmini 3,1 support
ALSA: hda - Add support for Lenovo IdeaPad U150
ALSA: hda - Allow override more fields via patch loader
ALSA: hda - Add support for Toshiba Satellite M300
ALSA: hda - Minor fixes for Compaq Presario F700 quirk
sound: virtuoso: add Xonar DS support
ALSA: ctxfi - Add subsystem option
ALSA: Fix a typo in Procfile.txt
ALSA: jazz16: refine dma and irq selection
ALSA: hda - Add support for the new 27 inch IMacs

EMU8000 driver

sound: sbawe: fix memory detection part 2
ALSA: sbawe: fix memory detection

Echoaudio driver

Echoaudio - add suspend/resume support
ALSA: echoaudio - Eliminate use after free
ALSA: Echoaudio, fix Guru Meditation #00000005.48454C50
ALSA: Echoaudio - Add suspend support #2
ALSA: Echoaudio - Add suspend support #1
ALSA: Echoaudio - Add firmware cache #2
ALSA: Echoaudio - Add firmware cache #1

GUS Library

ALSA: info - Implement common llseek for binary mode
ALSA: info - Check file position validity in common layer
ALSA: info - Use standard types for info callbacks

Generic drivers

ALSA: dummy driver - add model parameter

HDA Codec driver

ALSA: hda - Add initial support for Thinkpad T410s HDA codec
ALSA: hda - add a quirk for Clevo M570U laptop
ALSA: hda - Avoid invalid "Independent HP" control for VIA codecs
ALSA: hda - Fix control element allocations in VIA codec parser
ALSA: hda - Add fix-up for Sony VAIO with ALC269
ALSA: hda - Enhance fix-up table for Realtek codecs
ALSA: hda - Fix initial capture source connections of ALC880/260
ALSA: hda - Fix setup for ALC269vb amic and dmic models
ALSA: hda - Fix auto-parser of ALC269vb for HP pin NID 0x21
ALSA: hda: Add support for Medion WIM2160
ALSA: hda - Remove left-over debug printk in patch_realtek.c
ALSA: hda - Fix ALC882 DAC connections in auto mode
ALSA: hda - Fix a wrong array range check in patch_realtek.c
ALSA: hda - Enable amplifiers on Acer Inspire 6530G
ALSA: hda: Fix 0 dB offset for Lenovo Thinkpad models using AD1981
ALSA: hda - introduce snd_hda_codec_update_cache()
ALSA: hda - Add mute LED support for HP laptop with ALC269
ALSA: hda - Add missing printk argument in previous patch
ALSA: hda - Fix ADC/MUX assignment of ALC269 codec
ALSA: hda - Report errors when invalid values are passed to snd_hda_amp_*()
ALSA: hda - Fix invalid bit values passed to snd_hda_codec_amp_stereo()
ALSA: hda-intel - remove model=hwio , use probe_only=3 instead
ALSA: hda - Don't set invalid connection index in Realtek initialiaiton
ALSA: hda-intel - AD1984 thinkpad - add analog beep input control
ALSA: hda-intel - add special 'hwio' model to bypass initialization
ALSA: hdmi - show debug message on changing audio infoframe
ALSA: hda - Fix uninitialized variable warning in alc_auto_parse_customize_define()
ALSA: hda - Fix access-after-free in patch_realtek.c
ALSA: hda - Sort codec entry list of Nvidia HDMI
ALSA: hda - Add support of Nvidia GT220 HDMI
ALSA: hda: Fix 0 dB offset for HP laptops using CX20551 (Waikiki)
ALSA: hda - Add PCI quirk for HP dv6-1110ax.
ALSA: hda - Add alc_codec_rename() helper
ALSA: hda - Add parse customize define function for Realtek codecs
ALSA: hda - Take internal mic as Front Mic
ALSA: hda: Use LPIB and 6stack-dig for eMachines T5212
ALSA: hda - Add PCI quirks for MSI NetOn AP1900 and Wind Top AE2220
ALSA: hda - Fix secondary ADC of ALC260 basic model
ALSA: hda - Add an error message for invalid mapping NID
ALSA: hda - Fix input source elements of secondary ADCs on Realtek
ALSA: hda - Fix wrong model range check for ALC268
ALSA: hdmi - merge common code for intelhdmi and nvhdmi
ALSA: hda: uninitialized variable fix
ALSA: hda - Support NVIDIA MCP89 and GT21x hdmi audio
ALSA: sound/pci/hda/hda_codec.c: various coding style fixes
ALSA: hda - Add missing hp_pins definitions for ALC269 quirks
ALSA: hda: Use 3stack quirk for Toshiba Satellite L40-10Q
ALSA: hda - Add/fix ALC269 FSC and Quanta models
ALSA: hda - Add ALC670 codec support
ALSA: hda - remove unnecessary msleep on power state transitions
ALSA: add support for Macbook Air 2,1 internal speaker
ALSA: hda - Remove identical definitions for macmini3 model
ALSA: hda - Clean up Intel Mac unsol codes
ALSA: hda - Add Macmini 3,1 support
ALSA: hda - Add support for Lenovo IdeaPad U150
ALSA: hda - Fix default polarity of mute-LED GPIO on 92HD83x/88x codecs
ALSA: hda - Remove static gpio_led setup via model
ALSA: hda - Merge HP mute-LED status callback on both IDT 92HD7x and 8x codecs
ALSA: hda - Detect HP mute-LED GPIO setup from GPIO counts
ALSA: hda - Add support of ALC665
ALSA: hda - Add ALC269VB support
ALSA: hda - Remove superfluous init verb entries for ALC88[235]
ALSA: hda - Fix docking output for IDT 92HD8xx codecs
ALSA: hda - Adding support for another IDT 92HD83XXX codec
ALSA: hda - Turn on EAPD only if available for Realtek codecs #2
ALSA: hda - Add support for IDT 92HD88 family codecs
ALSA: hda - Add mute LED check for HP laptops with IDT 92HD83xxx codec
ALSA: hda - Fix index of HP Compaq F700 mic amp
ALSA: hda - Define max number of PCM devices in hda_codec.h
ALSA: hda - Turn on EAPD only if available for Realtek codecs
ALSA: hda - Remove the COEF setup for ALC267/ALC268
ALSA: hda - Remove coef output in Realtek proc files
ALSA: hda - Change headphone pin control with master volume on cx5051
ALSA: hda - Fix SPDIF output widget for Cxt5051 codec
ALSA: hda - initialize mic port on cxt5051 codec dynamically
ALSA: hda - Merge playback controls for Cx5051 codec models
ALSA: hda - Add support for Toshiba Satellite M300
ALSA: hda - Fix HP dv6736 capture mixer name
ALSA: hda - Minor fixes for Compaq Presario F700 quirk
ALSA: hda - add possibility to choose speakers configuration for 4930g
ALSA: hda - Fix HP T5735 automute
ALSA: hda - Fix parsing pin node 0x21 on ALC259
ALSA: hda - AD1988 codec - fix SPDIF-input mixer initialization (unmute)
ALSA: hda - Fix capture on Sony VAIO with single input
ALSA: hda - Fix mute led GPIO on HP dv-series notebooks
ALSA: hda - Fix missing capture mixer for ALC861/660 codecs
ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support
ALSA: hda - Fix Toshiba NB20x quirk entry
ALSA: hda - Fix ALC861-VD capture source mixer
ALSA: hda - support OLPC XO-1.5 DC input
ALSA: hda - Configure XO-1.5 microphones at capture time
ALSA: hda - conexant - Fixed microphone mixer for HP Compaq Presario F700
ALSA: hda: Refactor powerdown for Realtek HDA codecs
ALSA: hda: Add powerdown for Analog Devices HDA codecs
ALSA: hda - Use strict_strtoul()
ALSA: hda - Add sanity check for storing the user-defined pin configs
ALSA: hda - Fix click noises at suspend/free with Realtek codecs
ALSA: hda - Add snd_hda_shutup_pins() helper function
ALSA: hda - Add more hints for GPIO setup of IDT/STAC codecs
ALSA: hda - use snd_hda_jack_detect() again in patch_sigmatel.c
ALSA: hda - Disable tigger at pin-sensing on AD codecs
ALSA: hda - Add STAC9205 PCI_QUIRK for Dell Vostro 1700
ALSA: hda - Set mixer name after codec patch
ALSA: hda - Fix NID association for capture mixers
ALSA: hda - Add Bass Speaker switch for HP dv7
ALSA: hda - Add support for the new 27 inch IMacs
ALSA: hda - Fix NULL dereference with enable_beep=0 option
ALSA: HDA: add powersaving hook for Realtek
ALSA: HDA: remove useless mixers on Aspire 8930G
ALSA: HDA: simplify Aspire 8930G verb array
ALSA: hda: Set Front Mic to input vref 50% for Lenovo 3000 Y410
ALSA: hda/realtek: Remove extra .capsrc_nids initialization for ALC889_INTEL
ALSA: Use kzalloc for allocating only one thing
ALSA: hda - Fix quirk for Maxdata obook4-1
ALSA: hda - Fix NULL dereference in kctl-NID mapping in patch_realtek.c
ALSA: hda - Fix missing capsrc_nids for ALC88x
ALSA: hda - Make use of beep device found in Dell Vostro 1015n
ALSA: hda - Fixed internal mic initialization for Dell Vostro 1015
ALSA: hda - More ALC663 fixes and support of compatible chips

HDA Intel driver

ALSA: hda - Add position_fix quirk for Biostar mobo
ALSA: hda - Add MSI blacklist for Aopen MZ915-M
ALSA: hda: Use LPIB for ga-ma770-ud3 board
ALSA: hda-intel - probe_only module option is int type now
ALSA: hda-intel - remove model=hwio , use probe_only=3 instead
ALSA: hda-intel - add special 'hwio' model to bypass initialization
ALSA: hda: Use LPIB and 6stack-dig for eMachines T5212
ALSA: hda - Disable MSI for Nvidia controller
ALSA: hda - New Intel HDA controller
ALSA: hda - Sound MSI fallout on a Asus mobo NVIDIA MCP55
ALSA: hda - Add ASRock mobo to MSI blacklist
ALSA: hda: Use LPIB for a Biostar Microtech board
ALSA: hda: Use LPIB for Dell Latitude 131L
ALSA: hda - Support max codecs to 8 for nvidia hda controller
ALSA: hda - enable snoop for Intel Cougar Point
ALSA: hda-intel: Add position_fix quirk for ASUS M2V-MX SE.
ALSA: Typo. s/distrubs/disturbs/
ALSA: hda - Correct ASUA blacklist for MSI brokenness
ALSA: hda - use WARN_ON_ONCE() for zero-division detection
ALSA: hda-intel: Avoid divide by zero crash
ALSA: cosmetic: make hda intel interrupt name consistent with others
ALSA: hda - Delay switching to polling mode if an interrupt was missing
ALSA: hda - Define max number of PCM devices in hda_codec.h
ALSA: hda - Change the AZX_MAX_PCMS to 10
ALSA: hda - Add an ASUS mobo to MSI blacklist
ALSA: hda - Add support for more the 8 streams
ALSA: hda_intel: ALSA HD Audio patch for Intel Cougar Point DeviceIDs
ALSA: hda - HDMI sticky stream tag support
ALSA: hda - Add MSI blacklist
ALSA: hda - Check class to identify Nvidia controller chips

HDA generic driver

Regenerate hda_intel.patch
Fix hda_intel.patch
ALSA: hda - Build hda_eld into snd-hda-codec module
ALSA: hda - Support NVIDIA MCP89 and GT21x hdmi audio
ALSA: hda - Allow override more fields via patch loader
ALSA: hda - Use strict_strtoul()
ALSA: hda - Fix Oops at reloading beep devices
ALSA: hda - Don't cache beep controls
ALSA: hda - Fix NID association for capture mixers
tree-wide: convert open calls to remove spaces to skip_spaces() lib function

I2C lib core

ALSA: i2c: Fixed 8 checkpatch errors

ICE1712 driver

ALSA: aureon - Patch for suspend/resume for Terratec Aureon cards.
ALSA: ice1712: fix: lock samplerate when samplerate locking is enabled
ALSA: ice1724 - aureon - fix wm8770 volume offset

ISA

ALSA: jazz16: Add support for Media Vision Jazz16 chipset

MIXART driver

ALSA: info - Implement common llseek for binary mode
ALSA: mixart: range checking proc file

MSND driver

ALSA: Use kzalloc for allocating only one thing

Memalloc module

handle more nicely new location for autoconf.h (generated/autoconf.h)
linux/include/generated directory related changes for 2.6.33

OPL4

ALSA: info - Implement common llseek for binary mode
ALSA: info - Check file position validity in common layer
ALSA: info - Use standard types for info callbacks

OSS device core

ALSA: use subsys_initcall for sound core instead of module_init

Opti9xx drivers

sound: fix opti92x-ad1848 build
ALSA: opti92x: use PnP data to select Master Control port

PCI drivers

sound: virtuoso: add Xonar DS support

PDAudioCF driver

ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
sound: pdaudiocf: use vmalloc buffer helper functions
sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
pcmcia: remove unused IRQ_FIRST_SHARED

PPC AWACS driver

of: add 'of_' prefix to machine_is_compatible()

PPC Burgundy driver

of: add 'of_' prefix to machine_is_compatible()

PPC PMAC driver

of: add 'of_' prefix to machine_is_compatible()

PPC Tumbler driver

ALSA: powermac - Fix obsoleted machine_is_compatible()
ALSA: powermac - Add debug log
ALSA: powermac - Lineout detection on G4 DA
ALSA: powermac - Reverse HP detection on G4 DA

RME9652 driver

tree-wide: Assorted spelling fixes

SB drivers

Add isa/sb/jazz16 build stub
ALSA: fix jazz16 compile (udelay)
ALSA: jazz16: refine dma and irq selection
ALSA: jazz16: Add support for Media Vision Jazz16 chipset

SB8 driver

ALSA: jazz16: refine dma and irq selection
ALSA: jazz16: Add support for Media Vision Jazz16 chipset

SGI O2 Audio

ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
sound: sgio2audio: use vmalloc buffer helper functions
sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer

SoC Audio for Freecale i.MX1x i.MX2x CPUs

ALSA: alsa-kmirror tree & linux-2.6 tree sync 2010-04-16 (merging issues)
ASoC: Move WM8350 microphone detection bias managment out of driver
ASoC: Hook up microphone jack detection on 1133-EV1 board
ASoC: Correct typoed Mic2 connections on 1133-EV1 board
ASoC: Remove BROKEN from i.MX audio after dependencies merged
ASoC: Wolfson Microelectronics 1133-EV1 audio support
ASoC: Check progress when reporting periods from i.MX FIQ handler
ASoC: Remove a unused variables from i.MX FIQ runtime data
ASoC: Typo. s/Freecale/Freescale/
ASoC: add phycore-ac97 sound support
ASoC: Remove old i.MX driver code
ASoC: i.MX SSI driver does not yet support master mode
ASoC: Convert new i.MX SSI driver to use static DAI array
ASoC: Mark new i.MX drivers as BROKEN until arch/arm merged
ASoC: Fix i.MX audio build for i.MX3x
ASoC: Add a new imx-ssi sound driver
ASoC: add missing parameter to mx27vis_hifi_hw_free()

SoC Audio for the Atmel AT32/AT91 System-on-Chip

ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream
ASoC: Change how suspend and resume obtain the PCM runtime
ASoC: Pass dai_link as argument to platform suspend and resume

SoC Audio for the Samsung S3C24XX chips

ASoC: S3C: I2Sv2: Segregate hw_params callback
ASoC: S3C64XX: I2S: Make BCLK independent of sample size
ASoC: S3C: I2Sv2: Reject immidiate register value
ASoC: S3C64XX: I2S: Move RATE and FMT defines to header
ASoC: s3c64xx-i2s remove unncessary headers
ASoC: s3c-i2s-v2 remove unnecessary headers
ASoC: S3C: I2Sv2: Unify clock source IDs
ASoC: S3C: I2Sv2: Add missing semicolon
ASoC: Add delay information for Samsung IISv2 DAIs
ASoC: Fix S3C64xx IIS driver for Samsung header reorg
ASoC: Fix continuation line formats
ASoC: AC97: SMDK-WM9713: Convert notes from cset to sset
ASoC: Note jumper settings for smdk_wm9713 driver on SMDK6410
ASoC: AC97: S3C2443: Remove unused driver
ASoC: AC97: LN2440SBC: Switch to s3c-ac97.c
ASoC: AC97: SMDK2443: Switch to s3c-ac97.c
ASoC: AC97: SMDK: Add wm9713 machine driver
ASoC: AC97: S3C: Add controller driver
ASoC: S3C64XX: Compress and generalize the CPU driver
ASoC: S3C64XX: Remove unnecessary header includes
const: constify remaining dev_pm_ops

SoC Blackfin

ASoC: change bf5xx-ad1938 machine driver to bf5xx-ad193x machine driver
ASoC: bf5xx-sport: use common SPORT code for MMR info
ASoC: Fix continuation line formats

SoC Codec AC97

ASoC: Fix passing platform_data to ac97 bus users and fix a leak
ASoC: fixup oops in generic AC97 codec glue

SoC Codec AD1836

ASoC: ad1836: use soc-cache framework for codec registers access
ASoC: ad1836: reset and restore clock control mode in suspend/resume entry
sound: Revert "ASoC: ad1836: reset and restore clock control mode in suspend/resume entry"
ASoC: ad1836: reset and restore clock control mode in suspend/resume entry

SoC Codec AD1938

ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9
ASoC: ad1938: use soc-cache framework for codec registers access
ASoC: ad1938: let soc-core dapm handle PLL power
ASoC: ad1938: fix typo, rename mask to rx_mask for ad1938_set_tdm_slot

SoC Codec AD193X

ASoC: update for removeal of slab.h from percpu.h
ASoC: ad193x: move codec register/unregister to bus probe/remove
ASoC: Unexport AD193x bus probe/remove functions
ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9

SoC Codec AK4104

ASoC: fix ak4104 register array access
ASoC: ak4104: allow more sample rates

SoC Codec AK4642

ASoC: ak4642: Add enhanced sampling rate
ASoC: ak4642: Add set_fmt function for snd_soc_dai_ops
ASoC: ak4642: Add pll select support
ASoC: ak4642: Add default return value in ak4642_modinit

SoC Codec CQ0093 Voice

ASoC: update gfp/slab.h includes
ASoC: DaVinci: CQ93VC Voice Codec

SoC Codec CS4270

ASoC: cs4270: enable regulators at probe time
ASoC: cs4270: allow passing freq=0 in set_dai_sysclk()
ASoC: Add regulator support to CS4270 codec driver

SoC Codec DA7210

ASoC: da7210: Add 11025/22050/44100/88200 rate support
ASoC: da7210: Add 8/12/16/24/32/48/96 kHz rate support
ASoC: Add missing __devexit and __devinit annotations
ASoC: Fix build of DA7210
ASoC: Add DA7210 codec device support for ALSA

SoC Codec Philips UDA1380

bitops: rename for_each_bit() to for_each_set_bit()

SoC Codec SSM2602

ASoC: SSM2602: add SND control for mic boost2 and default it to off

SoC Codec STAC9766

ASoC: Fix disable of SPDIF on STAC9766 codec

SoC Codec TLV320AIC23

ASoC: AIC23: Fixing writes to non-existing registers in resume function

SoC Codec TLV320AIC3X

ASoC: Fix variable shadowing warning in TLV320AIC3x
ASoC: PLL computation in TLV320AIC3x SoC driver

SoC Codec TLV320DAC33

ASoC: tlv320dac33: Internal clocking changes
ASoC: tlv320dac33: Fix DSP modes
ASoC: tlv320dac33: Add option for keeping the BCLK running
ASoC: tlv320dac33: Start/stop sequence change
ASoC: tlv320dac33: Correct the OSCSET calculation
ASoC: tlv320dac33: Clearing FIFOFLUSH flag before playback
ASoC: tlv320dac33: Burst mode BCLK divider configuration
ASoC: tlv320dac33: BCLK divider fix
ASoC: tlv320dac33: Correct the prefill number of samples
ASoC: Add missing __devexit and __devinit annotations
ASoC: tlv320dac33: Safety check for codec slave mode
ASoC: tlv320dac33: Add new FIFO mode: mode 7
ASoC: tlv320dac33: Clean up the hardware configuration code
ASoC: tlv320dac33: Introduce prefill and playback state handlers
ASoC: tlv320dac33: Change nsample switch to FIFO mode enum
ASoC: tlv320dac33: Add support for regulator framework

SoC Codec TPA6130A2

ASoC: Add missing __devexit and __devinit annotations
ASoC: tpa6130a2: Support for tpa6140's regulators
ASoc: tpa6130a2: Remove unnecessary variable
ASoC: tpa6130a2: Add support for regulator framework

SoC Codec TWL4030

ASoC: TWL4030: PM fix for output amplifiers
ASoC: TWL4030: Use codec defaults for Headset initial configuration
ASoC: TWL4030: Add supply for audio serial interface control
ASoC: TWL4030: Module unloading fix
ASoC: TWL4030: Modify codec default settings
ASoC: TWL4030: Fix typo in comment in header file
ASoC: TWL4030: Replace comma with semicolon in probe function
mfd: Rename all twl4030_i2c*
mfd: Rename twl4030* driver files to enable re-use

SoC Codec TWL6040

ASoC: Fix file permission of soc/codecs/twl6040.c
ASoC: TWL6040: use of kzalloc/kfree requires the include of slab.h
ASoC: TWL6040: Add twl6040 codec driver

SoC Codec WM2000

ASoC: Add WM2000 driver

SoC Codec WM8350

ASoC: Allow disabling of WM835x jack detection
ASoC: Move WM8350 microphone detection bias managment out of driver
ASoC: Implement WM835x microphone jack detection support
mfd: Update WM8350 drivers for changed interrupt numbers
mfd: Add a data argument to the WM8350 IRQ free function
ASoC: Fix WM8350 DSP mode B configuration
mfd: Mask and unmask wm8350 IRQs on request and free
mfd: Convert wm8350 IRQ handlers to irq_handler_t

SoC Codec WM8510

ASoC: fix params_rate() macro use in several codecs

SoC Codec WM8727

ASoC: Register the CODEC in WM8727

SoC Codec WM8731

ASoC: Use SNDRV_PCM_RATE_8000_96000 macro for WM8731
ASoC: Only restore non-default registers for WM8731

SoC Codec WM8750

ASoC: WM8750: Convert to new API
ASoC: Refresh WM8750 bias management
ASoC: Remove version display from WM8750

SoC Codec WM8753

ASoC: Remove unneeded suspend checks from CODEC drivers

SoC Codec WM8776

ASoC: Only restore non-default registers for WM8776

SoC Codec WM8900

ASoC: Correct code taking the size of a pointer

SoC Codec WM8903

ASoC: Allow WM8903 mic detect disable and don't force bias on
ASoC: Implement interrupt driven microphone detection for WM8903
ASoC: Add WM8903 interrupt support
ASoC: Initial WM8903 microphone bias and short detection
ASoC: Add GPIO configuration support for WM8903
ASoC: fix a memory-leak in wm8903

SoC Codec WM8904

ASoC: Support GPIO based microphone detection for WM8904
ASoC: Allow configuration of WM8904 GPIO pin functions
ASoC: Add WM8912 DAC support
ASoC: Optimise WM8904 output stage power control
ASoC: Add support for BIAS_OFF when idle to WM8904
ASoC: Host clock2 read up in WM8904 FLL configuration
ASoC: Set AIF word length for WM8904
ASoC: Initial WM8904 CODEC driver

SoC Codec WM8940

ASoC: fix params_rate() macro use in several codecs

SoC Codec WM8955

ASoC: Add initial WM8955 CODEC driver

SoC Codec WM8960

ASoC: Add support for WM8960 capless mode
ASoC: Move WM8960 platform data into include/sound
ASoC: Prettify wm8960 logging

SoC Codec WM8961

ASoC: Only restore non-default registers for WM8961

SoC Codec WM8974

ASoC: clean up wm8974 and wm8978 clock divider handling
ASoC: fix params_rate() macro use in several codecs
ASoC: wm8974: fix a wrong bit definition

SoC Codec WM8978

ASoC: improve MCLKDIV calculation in wm8978, when OPCLK is not used
ASoC: clean up wm8974 and wm8978 clock divider handling
ASoC: remove bogus SLEEP mode from wm8978 driver
ASoC: add a WM8978 codec driver

SoC Codec WM8990

tree-wide: Assorted spelling fixes
ASoC: Remove unneeded suspend checks from CODEC drivers

SoC Codec WM8993/4

ASoC: Don't use DCS_DATAPATH_BUSY for WM hubs devices
ASoC: Don't do runtime wm_hubs DC servo updates if using offset correction
ASoC: Support second DC servo readback method for wm_hubs
ASoC: Avoid wraparound in wm_hubs DC servo correction
ASoC: Bail out of wm_hubs DC servo if calibration fails
ASoC: Disable WM8993 regulators when turning bias off
ASoC: Initial WM8993 regulator API hookup
ASoC: Convert WM8993 to use shared cache I/O code
ASoC: Activate DCS correction for WM8993
ASoC: Improved wm_hubs headphone handling
ASoC: Use BIAS_OFF when idle for wm_hubs devices
ASoC: Implement suspend and resume for WM8993

SoC Codec WM8994

Add soc/codecs/wm8994.c build stub
ASoC: Implement interrupt based WM8994 microphone detection
ASoC: Only do WM8994 bias off transition from standby
ASoC: Support second DC servo readback method for wm_hubs
ASoC: wm8994: playback => capture
ASoC: Implement WM8994 DAI tristate support
ASoC: Fix BCLK calculation of WM8994
ASoC: Add WM8994 CODEC driver

SoC Codec WM9712

ASoC: Do not write to invalid registers on the wm9712.

SoC Codec WM9713

ASoC: Add TLV information and additional volumes to WM9713
ASoC: Remove version display from WM9713

SoC DaVinci

ASoC: update gfp/slab.h includes
ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream
sound: DaVinci: DM365: Voice Codec support for the DM365 EVM
ASoC: DaVinci: Voice Codec Interface
ASoC: DaVinci: Add hw_param callback for S/PDIF DIT link
ASoC: DaVinci: Fix stream restart error
ASoC: DaVinci: Update suspend/resume support for McASP driver

SoC Dynamic Audio Power Management

ASoC: Allow force enabled pins to be disabled
ASoC: Remove current PGA control handling
ASoC: Allow pins to be force enabled
ASoC: Remove unused 'muted' flag from DAPM widgets
ASoC: Improve DAPM pop_wait delays
ASoC: Remove unused pmdown_time flag
ASoC: add simplified versions of widget macros
ASoC: Support turning off bias when the CODEC is idle
ASoC: Remove console DAPM debug code
ASoC: Sort DAPM sequences by CODEC as well
ASoC: Push registers out of mixer power decision
ASoC: Display the power register in DAPM widget debugfs

SoC Freescale

of: add 'of_' prefix to machine_is_compatible()

SoC Layer

Fix soc/soc-core.patch
ALSA: alsa-kmirror tree & linux-2.6 tree sync 2010-04-16 (merging issues)
ASoC: Fix passing platform_data to ac97 bus users and fix a leak
ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream
ASoC: Add a notifier for jack status changes
ASoC: remove a card from the list, if instantiation failed
ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9
ASoC: TWL6040: Add twl6040 codec driver
ASoC: soc-cache: let reg be AND'ed by 0xff instead of data buffer for 8_8 mode
ASoC: soc-cache: add i2c read entry for 8_8 mode
ASoC: DaVinci: CQ93VC Voice Codec
ASoC: PCM_RATE: Check for KNOT and CONTINUOUS flags
ASoC: Add 16/16 registers to soc-cache
ASoC: core: Add delay operation to snd_soc_dai_ops
ASoC: core: soc level wrapper for pcm_pointer callback
ASoC: core: fix tailing whitespace in soc_pcm_apply_symmetry
ASoC: Allow mulitple usage count of codec and cpu dai
ASoC: Remove runtime field from DAI
ASoC: Pass dai_link as argument to platform suspend and resume
ASoC: soc_pcm_open: Add missing bailout tag
ASoC: core: On resume also check the soc device state
ASoC: Make pmdown_time a long
ASoC: Make pmdown_time runtime configurable
ASoC: Make pmdown_time a per-card setting
ASoC: Add WM2000 driver
ASoC: Add a cache_sync bit to the CODEC structure
ASoC: Allow CODECs to ask soc-cache to suppress physical writes
ASoC: Fix WM8994 dependency
ASoC: Add WM8994 CODEC driver
ASoC: ad1836: use soc-cache framework for codec registers access
ASoC: Set codec->dev for AC97 devices
ASoC: add a WM8978 codec driver
ASoC: ad1938: use soc-cache framework for codec registers access
ASoC: add helper macros to declare struct soc_enum instances
ASoC: Support turning off bias when the CODEC is idle
ASoC: fix compile breakage - add a missing header include
ASoC: Use snprintf() when generating stream names
ASoC: soc-cache: cleanup training whitespace and coding style
ASoC: Add initial WM8955 CODEC driver
ASoC: Add DA7210 codec device support for ALSA
ASoC: Initial WM8904 CODEC driver
ASoC: Export snd_soc_update_bits_unlocked()
const: constify remaining dev_pm_ops

SoC PXA2xx Aeronix Zipit Z2

ASoC: Zipit Z2 WM8750 ASoC driver

SoC PXA2xx Spitz

ASoC: WM8750: Convert to new API

SoC SH7760 AC97

ASoC: fsi: Add FSI2 device support
ASoC: fsi: Add FIFO size calculate
ASoC: fsi: IRQ related process had be united
ASoC: fsi: ensures process inside master lock
ASoC: ak4642: Add set_fmt function for snd_soc_dai_ops
ASoC: ak4642: Add pll select support
ASoC: SIU driver shall select FW_LOADER
dmaengine: shdma: separate DMA headers.
ASoC: fsi: Modify over/under run error settlement
ASoC: fix compile breakage if CONFIG_SH_DMA_API=y && CONFIG_SND_SIU_MIGOR!=n
ASoC: fix compilation breakage in sound/soc/sh/fsi.c
ASoC: clean up wm8974 and wm8978 clock divider handling
ASoC: add support for the sh7722 Migo-R board
ASoC: fsi: Add spin lock operation for accessing shared area
ASoC: add DAI and platform / DMA drivers for SH SIU
ASoC: fsi: Add over/under run error settlement
ASoC: fsi: Add fsi_get_dai to get snd_soc_dai
ASoC: fsi: Add over_period flag to prevent the misunderstanding
ASoC: fsi-ak4642: Remove ak4642_add_i2c_device
ASoC: sh: FSI:: don't check platform_get_irq's return value against zero
ASoC: Add FSI-DA7210 sound support for SuperH
ASoC: sh_fsi: avoid using global variable

SoC Texas Instruments OMAP

ASoC: OMAP: Fix capture pointer handling for OMAP1510 to work correctly with recent ALSA PCM code
ASoC: omap-mcbsp: Add support for Left Justified format
ASoC: McPDM: Use tabs for indentation
ASoC: OMAP3: Report delay caused by the internal FIFO
ASoC: OMAP-McBSP: ASoC interface for McBSP sidetone
omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3
omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2
ASoC: OMAP4: Add support for McPDM
ASoC: OMAP4: Add McPDM platform driver
ASoC: OMAP: data_type and sync_mode configurable in audio dma
sound: Add ASoC support for Devkit8000
ASoC: pandora: Add DAC regulator support
ASoC: pandora: Add APLL supply to fix audio output
ASoC: AM3517: ASoC driver not getting compiled
mfd: twl: fix twl4030 rename for remaining driver, board files

Soc PXA2xx Raumfeld

ASoC: support more sample rates on raumfeld devices

TEA575x tuner

handle more nicely new location for autoconf.h (generated/autoconf.h)

USB

Refresh build-stub for usb mixer refactoring
Regenerate patches and build-stubs for usb refactoring
ALSA: usbmixer: rename usbmixer.[ch] -> mixer.[ch]
ALSA: usb-mixer: factor out quirks
ALSA: usb-audio: refactor code
ALSA: usb-audio: header file cleanups
ALSA: usb-audio: move ua101 driver
ALSA: ua101: remove experimental status
ALSA: usb/caiaq: Add support for Traktor Kontrol X1
ALSA: ua101: add Edirol UA-1000 support

USB Edirol UA101 driver

ALSA: usb-audio: refactor code
ALSA: usb-audio: header file cleanups
ALSA: usb-audio: move ua101 driver
ALSA: ua101: add Edirol UA-1000 support
sound: ua101: use vmalloc buffer helper functions

USB USX2Y

ALSA: usb-audio: refactor code
ALSA: usb-audio: header file cleanups
ALSA: usbaudio: consolidate header files

USB caiaq

usc/caiaq/input.patch: Fix missing change in the previous commit
usb/caiaq/input.patch: Fix builds with older 2.6.x kernels
Refreshed usb/caiaq/input.patch
ALSA: usb - update gfp/slab.h includes
ALSA: usb/caiaq: Add support for Traktor Kontrol X1
ALSA: sound/usb/caiaq/midi.h: Checkpatch cleanup

USB generic driver

usb/card.c - build fix for Linux 2.4 kernels
Refresh build-stub for usb mixer refactoring
Regenerate patches and build-stubs for usb refactoring
Refreshed usbaudio.patch
Fix the build with kernels older than 2.6.23
More fixes for build errors after usb v2.0 merge
Fix usb v2.0 builds
Fix for previous commit (RHEL 5.4 support)
RHEL 5.4 compilation changes
ALSA: usb/mixer - use get_iface_desc() rather than direct structure
ALSA: usb - Fix Oops after usb-midi disconnection
ALSA: usb - update gfp/slab.h includes
ALSA: usb pcm: use of kmalloc requires the include of slab.h
ALSA: usb - use of kmalloc/kfree requires the include of slab.h
ALSA: usbaudio: Add basic support for M-Audio Fast Track Ultra series
ALSA: usb-mixer: Add support for Audio Class v2.0
ALSA: usb-mixer: parse descriptors with structs
ALSA: usbmixer: rename usbmixer.[ch] -> mixer.[ch]
ALSA: usb-mixer: use defines from audio.h
ALSA: usb: fix usb build error when PM is not enabled
sound: linux/usb/audio.h: split header
ALSA: usb-audio: add support for samplerate setting on v2 devices
ALSA: usb-audio: support multiple formats with audio class v2 devices
ALSA: usb-audio: use a format bitmask per alternate setting
ALSA: usb-audio: rename substream format field to altset_idx
ALSA: usb-mixer: factor out quirks
ALSA: usb-audio: refactor code
ALSA: usb-audio: header file cleanups
ALSA: ua101: add Edirol UA-1000 support
ALSA: usbaudio: Fix wrong bitrate for Creative Creative VF0470 Live Cam
ALSA: usbaudio - remove debug "SAMPLE BYTES" printk line
ALSA: usbaudio: consolidate header files
ALSA: usbmixer: bail out early when parsing audio class v2 descriptors
ALSA: usbaudio: implement basic set of class v2.0 parser
ALSA: usbaudio: introduce new types for audio class v2
ALSA: usbaudio: parse USB descriptors with structs
ALSA: usbaudio Mbox support, output only
ALSA: usbmixer - use MAX_ID_ELEMS where possible
ALSA: usbmixer - add usb_id value to usbmixer proc file
ALSA: usbmixer - introduce /proc/asound/card#/usbmixer file
ALSA: USB MIDI support for Access Music VirusTI
ALSA: usb-audio: reduce MIDI packet size to work around broken firmware
ALSA: usbmixer - add possibility to remap dB values
ALSA: usb-audio: use usbquirk.h for detection of HVR-950Q/850
ALSA: usb-audio: relax urb data align. restriction HVR-950Q and HVR-850 only
ALSA: usb-audio: make buffer pointer based on bytes instead on frames
ALSA: usb-audio - Added functionality for E-mu 0404USB/0202USB/TrackerPre
ALSA: usb-audio - Avoid Oops after disconnect
sound: usb-audio: use vmalloc buffer helper functions
sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer

Utils

alsa-compile.sh: add moprobe soundcore for --kmodules
alsa-compile.sh: Check for aclocal and install if missing
alsa-compile.sh: Don't rely on yum exit code
alsa-compile.sh: fix path for /sbin utilities
alsa-compile.sh: fix --kmodclean commmand
alsa-compile.sh: add handling of kernel module parameters, fix --clean
Add choice/endchoice pair to mod-deps
alsa-compile.sh: update version number to 0.1.3
alsa-compile.sh: Fix --clean command
alsa-compile.sh: more tree variable cleanups, fixes for --run
alsa-compile.sh: use local variables
alsa-compile.sh: Remove duplicate and different packagedir assignment
alsa-compiler.sh: Move cleaning out of command line parsing
alsa-compile.sh: handle ac97_bus module in current_modules
alsa-compile.sh: Fix code logic for kmod cmds when source tree does not exists
alsa-compile.sh: version 0.1.2
alsa-compile.sh: Various cleanup
alsa-compile.sh: Fix some minor issues
alsa-compile.sh: remove debugging code
alsa-compile.sh: set version to 0.1.1
alsa-compile.sh: add --kmodclean option, use updates/alsa tree for kmods
alsa-compile.sh: Use packagedir variable consistently
alsa-compile.sh: Support building on Fedora PAE kernels where kernel-PAE-devel is used
alsa-compile.sh: Check package installation - don't rely on yum exit code
alsa-compile.sh: Use bash for bash script
alsa-compile.sh: added --patch and --kmodmesg options
alsa-compile.sh: Fix dst variable usage in parse_modules()
remove 'insert' and 'remove' scripts - the alsa-compile.sh obsoletes them
alsa-compile.sh: added --kmodremove command
alsa-compile.sh: add --examples and file: protocol support
alsa-info.sh: added --run parameter
alsa-info.sh: fix some issues (parsing package)
alsa-compile.sh: added --kmodlist option and support for more ALSA packages
alsa-compile.sh: add git support, cache environment state
introduce alsa-compile.sh script - not finished
gitcompile - add more error checks, update utils/insert script
alsa-info.sh: Add usbmixer proc file to output
remove cvscompile script - we use git now
Add gcd() wrapper

VIA82xx driver

ALSA: via82xx: add quirk for D1289 motherboard

cvscompile script

remove cvscompile script - we use git now

gitcompile script

gitcompile - add more error checks, update utils/insert script

alsa-lib

Core

Release v1.0.23
add atomic operations for Blackfin parts

Control API

modem.conf Off-hook improve behavior

PCM API

pcm_share plugin: fix pcm->monotonic setup in open() function
pcm_hw - show errno codes
pcm direct plugins: drain() call might be blocked when threads are used
pcm_dmix: add support for S24_LE format
Fix snd_pcm_sw_params_set_period_event() implementation
pcm: fix read_areas and write_areas
pcm: Fix the sound distortions for S24_3LE stream in pcm_softvol plugin
pcm: Close event timer in pcm_hw plugin

alsa-utils

Core

Release v1.0.23

ALSA Control (alsactl)

alsactl: update debug prints in state.c
alsactl: add more debug prints to state.c
alsactl: improve -d to get warnings and store exitcode to runstate file
alsactl: Fix return code

ALSA RawMidi Utility (amidi)

amidi: fix port listing

Speaker Test

speaker-test: add fflush(stdout) to write_loop

aconnect

aconnect -x: Do not update index after removal of connection.

alsamixer

alsamixer: handle out-of-range volume values
alsamixer: fix division by zero

amixer

amixer: add support for TLV dB minmax types
amixer: fix display of unreadable control elements

aplay/arecord

aplay -- update the man file
aplay -- add features for audio surveilance
aplay - add option --process-id-file
aplay: Dump PCM state on xrun when verbose mode is active

alsa-tools

Core

Release v1.0.23
add hwmixvolume

hwmixvolume

hwmixvolume: add hwmixvolume to EXTRA_DIST
Fix hwmixvolume gitcompile script (missing files)
hwmixvolume: make scripts executable
add hwmixvolume

alsa-plugins

Core

Release v1.0.23

USB stream plugin

usb_stream: Allow user-set period-size and rate
usb_stream: Check for NULL-ness before dereferencing

Detailed changelog between 1.0.20 and 1.0.23 releases

alsa-firmware

Core

- Release v1.0.23

AudioScience ASIHPI Firmware

- asihpi: Remove dsp4300.bin from distdir
- Updated asihpi firmware files to version 40313
- Update firmware files for asihpi to version 40304

Detailed changelog between 1.0.22 and 1.0.23 releases

alsa-driver

Sound Core

- Release v1.0.23
- add some linux-2.4 related stuff (pgprot_noncached & linux/gfp.h)
Singed-off-by: Jaroslav Kysela <perex@perex.cz>
- configure.in: More informative kernel/ALSA kernel tree directory checks
- Refresh build-stub for usb mixer refactoring
- handle more nicely new location for autoconf.h (generated/autoconf.h)
- More fixes for build errors after usb v2.0 merge
- Fix usb v2.0 builds
- configure.in: fix gcc version check
checking for kernel version... 2.6.28-17-generic
checking for GCC version... ./configure: eval: line 5540: syntax error
near unexpected token `)'
./configure: eval: line 5540: `my_compiler_version=4.3.3-5ubuntu4)'
Kernel compiler: Used compiler: gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3
gcc --version gives (yes, it is ugly!):
gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
- linux/include/generated directory related changes for 2.6.33
- Release v1.0.22.1
- Add gcd() wrapper
- Fix pack target and improve newalsakernel target
- fix typo in $(ALSAKERNELFILE) target
- Change alsa-kernel/sound_core.c to ALSAKERNELFILE and add this dep to pack target
- Remove whole alsa-kernel tree before creating of symlinks
- introduce --with-alsakernel option for ./configure
This patch allows to choose the ALSA kernel tree. It adds support to
specify own path for the standard Linux 2.6 kernel tree.
The alsa-kmirror mode was untouched.
Also, missing isa/dt019x.c is added.

ALSA Core

- Add no_llseek and nonseekable_open() wrappers for older kernels
- Refresh info.patch for BKL removal changes
- Add missing inclusion of linux/slab.h for early wrappers
- add some linux-2.4 related stuff (pgprot_noncached & linux/gfp.h)
Singed-off-by: Jaroslav Kysela <perex@perex.cz>
- Add blocking_notifier_*() wrappers for older kernels
- Refresh build-stub for usb mixer refactoring
- Add missing inclusion of adriver.h in info.patch
- handle more nicely new location for autoconf.h (generated/autoconf.h)
- Fix usb v2.0 builds
- Add a wrapper for usb_interrupt_msg()
- compilation fix: double #endif in adriver.h
- Add strict_strtol() and strict_strtoll() wrappers for old kernels
Also clean up the definitions.
- Fix WARN_ONCE() macro
A stupid copy&paste error....
- Redefine WARN_ON() and WARN_ONCE() for older distro kernels
Distro kernels may have already some incompatible definitions of them.
- Define WARN_ONCE() for older kernels
- Add DEFINE_PCI_DEVICE_TABLE() wrapper
- Fix for previous commit (RHEL 5.4 support)
- RHEL 5.4 compilation changes
- linux/include/generated directory related changes for 2.6.33
- Add wrapper of subsys_initcall()
Also fix sound.patch with the recent subsys_initcall() change.
- Fix acore/misc.patch for new snd_pci_quirk_lookup_id()
- Don't define gcd() when already exists
Define compatible gcd() only when linux/gcd. doesn't exist.
CONFIG_GCD isn't defined for 2.6.31/32, so it can'be used reliablty
as the compile condition.
Reported-by: Ozan Çağlayan <ozan@pardus.org.tr>
- Fix acore/Makefile for pcm_memory.patch
- Handle __GFP_ZERO for older kernels
- Add missing EXPORT_SYMBOL() for gcd wrapper
- Add gcd() wrapper
- Add skip_spaces() wrapper
- ALSA: info - Implement common llseek for binary mode
The llseek implementation is identical for existing driver implementations,
so let's merge to the common layer. The same code for the text proc file
can be used even for the binary proc file.
The driver can provide its own llseek method if needed. Then the common
code will be skipped.
- ALSA: info - Check file position validity in common layer
Check the validity of the file position in the common info layer before
calling read or write callbacks in assumption that entry->size is set up
properly to indicate the max file size.
Removed the redundant checks from the callbacks as well.
- ALSA: info - Use standard types for info callbacks
Use loff_t, size_t and ssize_t for arguments of info callbacks
to follow the standard procfs.
- ALSA: Remove BKL from open multiplexer
Use a local mutex instead of BKL. This should suffice since each device
type has also its open_mutex.
Also, a bit of clean-up of the legacy device auto-loading code.
- ALSA: info - Remove BKL
Use the fine-grained mutex for the assigned info object, instead.
- ALSA: timer - pass real event in snd_timer_notify1() to instance callback
Do not use hardcoded SNDRV_TIMER_EVENT_START value.
- ALSA: Remove warning message for invalid OSS minor ranges
When a card instance with a higher card number is registered, warning
messages are spewed eventually with stack traces due to the invalid minor
number for OSS device registration. For example, thinkpad-acpi registers
the card number 29 as default, and you'll see always these messages.
This is rather confusing (and worries users), thus better to return
simply the error code.
- ALSA: use subsys_initcall for sound core instead of module_init
This is needed for built-in drivers which are built before the sound directory,
like thinkpad_acpi.
Otherwise, registering a card fails.
- ALSA: Add snd_pci_quirk_lookup_id()
Added a new function to look up a quirk entry with the given PCI SSID
instead of a pci device pointer. This can be used when the searched ID
is overridden for debugging or such a purpose.
- ALSA: sound/core/pcm_timer.c: use lib/gcd.c
Make sound/core/pcm_timer.c use lib/gcd.c

SoC PXA2xx Core

- ALSA: alsa-kmirror tree & linux-2.6 tree sync 2010-04-16 (merging issues)
- ASoC: Zipit Z2 WM8750 ASoC driver
This patch adds support for sound through the WM8750 codec on Zipit Z2.
Also, this patch incorporates support for detecting headset jack
insertion through the jack detection API.
- [ARM] pxa: introduce PXA_SSP_LEGACY for legacy SSP API
- ASoC: Remove legacy SSP API usage from pxa-ssp.c
- ASoC: fix PXA SSP port resume
Unconditionally save the register states when suspending and restore
them again at resume time. Register contents were not preserved over
suspend, and hence the driver takes false assumptions about them.
The clock must be enabled to access the register block.

Control Midlevel

- Refresh patches for addition of no_llseek calls
- ALSA: core - Define llseek fops
Set no_llseek to llseek file ops of each sound component (but for hwdep).
This avoids the implicit BKL invocation via generic_file_llseek() used
as default when fops.llseek is NULL.
Also call nonseekable_open() at each open ops to ensure the file flags
have no seek bit.
- include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.
percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.
http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.
* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.
* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.
The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.
2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.
3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.
4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.
5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.
6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).
* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig
8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.
Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
- sound: control: fix minimum TLV length
Allow TLV blocks that do not have any values; the smallest possible TLV
is an empty container or one where the information is only in the tag.
- sound: control: actually allow TLV command access
Creating a control with TLV_COMMAND access was not possible because
snd_ctl_new1() forgot to include it in the mask of allowable access
bits.

Jack Input Event Midlevel

- ALSA: Add support for key reporting via the jack interface
Some devices provide support for detection of a small number of
buttons on their jacks. One common implementation provides a single
button, implemented by shorting the microphone to ground and detected
along with microphone presence detection by detecting varying current
draws on the microphone bias signal.
Provide support for up to three buttons via the jack interface. These
default to reporting BTN_n but an API is provided to allow these to
be remapped to other keys by the machine driver where it knows what
the keys are. More keys can be added with ease if required.
This is only intended to support simple accessory button designs. If
the interface is limiting then either creating a child device for the
accessory or accessing the input device in the jack directly is
recommended.
- ALSA: Rename jack switch table in preparation for button support
Avoids confusion when we have button support.

PCM Midlevel

- Refresh patches for addition of no_llseek calls
- Refresh pcm_native.patch
- Handle __GFP_ZERO for older kernels
- ALSA: core - Define llseek fops
Set no_llseek to llseek file ops of each sound component (but for hwdep).
This avoids the implicit BKL invocation via generic_file_llseek() used
as default when fops.llseek is NULL.
Also call nonseekable_open() at each open ops to ensure the file flags
have no seek bit.
- ALSA: pcm - Remove BKL from async callback
It's simply calling fasync_helper().
- ALSA: pcm_lib - fix xrun functionality
The commit 4d96eb255c53ab5e39b37fd4d484ea3dc39ab456 broke the interrupt
time xrun functionality (stream stop etc.) if the CONFIG_SND_PCM_XRUN_DEBUG
is not set. This is because the xrun() is null defined without it.
Fix this by letting the function xrun() to be always defined as it was
before.
- ALSA: provide a more useful get_unmapped_area handler for pcm
Shared memory mappings on nommu machines require a get_unmapped_area
file operation that suggests an address for the mapping. The current
implementation returns 0 and thus forces the driver to implement an
mmap handler that fixes up the start and end address of the vma.
This patch returns the address of the dma buffer, so it should work
out of the box for all drivers that use the snd_pcm_runtime->dma_area
pointer.
Addresses for mapping the status and control pages are returned as
well, but to make those work the conditional compilation of
snd_pcm_mmap_{status,control} would need to be revised.
URL: http://thread.gmane.org/gmane.linux.alsa.devel/61230
- ALSA: pcm core - fix fifo_size channels interval check
- ALSA: pcm_native - fix runtime->boundary calculation
The code in pcm_lib updating runtime->hw_ptr_interrupt expects
that runtime->boundary is divisible with runtime->period_size.
Thanks are going to Clemens Ladisch for the notice.
Fix the runtime->boundary calculation using buffer_size * period_size
as base and find a least common multiple for 32bit platforms when
the expression might overflow.
- ALSA: pcm_lib - return back hw_ptr_interrupt
Clemens Ladisch noted for hw_ptr_removal in "cleanup & merge hw_ptr
update functions" commit:
"It is possible for the status/delay ioctls to be called when the sound
card's pointer register alreay shows a position at the beginning of the
new period, but immediately before the interrupt is actually executed.
(This happens regularly on a SMP machine with mplayer.) When that
happens, the code thinks that the position must be at least one period
ahead of the current position and drops an entire buffer of data."
Return back the hw_ptr_interrupt variable. The last interrupt pointer
is always computed from the latest hw_ptr instead of tracking it
separately (in this case all hw_ptr checks and modifications might
influence also hw_ptr_interrupt and it is difficult to keep it
consistent).
- ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
pgprot_noncached() can be set for vmalloc'ed buffers safely, and we'd
need non-cached behavior more or less, even for the intermediate ring-
buffers.
Now snd_pcm_lib_mmap_vmalloc() is added as the common PCM mmap callback
that is coupled with snd_pcm_lib_alloc_vmalloc_buffer() & co.
- ALSA: pcm - Remove unneeded ifdef pgprot_noncached
- ALSA: pcm_core: Fix wake_up() optimization
This change fixes the "ALSA: pcm_lib - optimize wake_up() calls for PCM I/O"
commit. New sleeping queue is introduced to separate user space and kernel
space wake_ups. runtime->nowake is renamed to twake (transfer wake).
- ALSA: pcm_lib - fix wrong delta print for jiffies check
The previous jiffies delta was 0 in all cases. Use hw_ptr variable to
store and print original value.
- ALSA: pcm_lib: fix "something must be really wrong" condition
When runtime->periods == 1 or when pointer crosses end of ring buffer,
the delta might be greater than buffer_size.
- ALSA: pcm_lib - optimize wake_up() calls for PCM I/O
As noted by pl bossart <bossart.nospam@gmail.com>, the PCM I/O routines
(snd_pcm_lib_write1, snd_pcm_lib_read1) should block wake_up() calls
until all samples are not processed.
- ALSA: pcm_lib - cleanup & merge hw_ptr update functions
Do general cleanup in snd_pcm_update_hw_ptr*() routines and merge them.
The main change is hw_ptr_interrupt variable removal to simplify code
logic. This variable can be computed directly from hw_ptr.
Ensure that updated hw_ptr is not lower than previous one (it was possible
with old code in some obscure situations when interrupt was delayed or
the lowlevel driver returns wrong ring buffer position value).
- ALSA: pcm_lib - add possibility to log last 10 DMA ring buffer positions
In some debug cases, it might be usefull to see previous ring buffer
positions to determine position problems from the lowlevel drivers.
- ALSA: pcm_lib.c - convert second xrun_debug() parameter to use defines
To increase code readability, convert send xrun_debug() argument to
use defines.
- ALSA: Fix indentation in pcm_native.c
- ALSA: sound/core/pcm_timer.c: use lib/gcd.c
Make sound/core/pcm_timer.c use lib/gcd.c
- ALSA: refine rate selection in snd_interval_ratnum()
Refine the rate selection by choosing the rate
closer to the requested one in case of selecting
single frequency. Previously, the higher rate was
always selected.
Also, fix problem with the best_diff unsigned int
value wrapping (turning negative).
- ALSA: pcm - Add missing inclusion of linux/vmalloc.h
- ALSA: fix incorrect rounding direction in snd_interval_ratnum()
The direction of rounding is incorrect in the snd_interval_ratnum()
It was detected with following parameters (sb8 driver playing
8kHz stereo file):
- num is always 1000000
- requested frequency rate is from 7999 to 7999 (single frequency)
The first loop calculates div_down(num, freq->min) which is 125.
Thus, a frequency range's minimum value is 1000000 / 125 = 8000 Hz.
The second loop calculates div_up(num, freq->max) which is 126
The frequency range's maximum value is 1000000 / 126 = 7936 Hz.
The range maximum is lower than the range minimum so the function
fails due to empty result range.
- sound: pcm: add vmalloc buffer helper functions
There are now five copies of the code to allocate a PCM buffer using
vmalloc(). Add a sixth in the core so that the others can be removed.

RawMidi Midlevel

- Refresh patches for addition of no_llseek calls
- ALSA: core - Define llseek fops
Set no_llseek to llseek file ops of each sound component (but for hwdep).
This avoids the implicit BKL invocation via generic_file_llseek() used
as default when fops.llseek is NULL.
Also call nonseekable_open() at each open ops to ensure the file flags
have no seek bit.

Timer Midlevel

- ALSA: timer - pass real event in snd_timer_notify1() to instance callback
Do not use hardcoded SNDRV_TIMER_EVENT_START value.

/include/Makefile

- headers: handle include/linux/usb in mrproper target

/isa/Makefile

- Remove obsolete dt019x.c again
- introduce --with-alsakernel option for ./configure
This patch allows to choose the ALSA kernel tree. It adds support to
specify own path for the standard Linux 2.6 kernel tree.
The alsa-kmirror mode was untouched.
Also, missing isa/dt019x.c is added.

/soc/codecs/Makefile

- ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9
- ASoC: TWL6040: Add twl6040 codec driver
Initial version of TWL6040 codec driver.
The TWL6040 codec uses a proprietary PDM-based digital audio interface.
Audio paths supported are:
- Input: Main Mic, Sub Mic, Headset Mic, Auxiliary-FM Left/Right
- Output: Headset Left/Right, Handsfree Left/Right
TWL6040 codec supports power-up/down manual and automatic sequence.
Manual sequence is done through a specific register writes sequence.
Automatic sequence is done when the codec is powered-up through the
external AUDPWRON line. The completion of the sequence is signaled
through the audio interrupt.
TWL6040 codec sysclk can be provided by: low-power or high
performance PLL:
- The low-power PLL takes a low-frequency input at 32,768 Hz and
generates an approximate of 17.64 or 19.2 MHz (for 44.1 KHz and 48 KHz
respectively)
- The high-performance PLL generates an exact 19.2 MHz clock signal
from high-frequency input at 12/19.2/26/38.4 MHz.
Low-power playback mode is a special scenario where only headset path
(headset DAC and driver) is active.
For the particular case of headset path, PLL being used defines the
headset power mode: low-power, high-performance.
- ASoC: DaVinci: CQ93VC Voice Codec
Currently the DM365 is the only SoC that includes this Voice Codec.
- ASoC: Add WM2000 driver
The WM2000 is a low power, high quality handset receiver speaker
driver with Wolfson myZone™ Ambient Noise Cancellation (ANC). It
provides enhanced voice communication quality in a noisy environment
if the handset acoustics are designed appropriately.
- ASoC: Add WM8994 CODEC driver
The WM8994 is a highly integrated ultra-low power hi-fi audio subsystem
designed for smartphones and other portable devices rich in multimedia
features. It provides advanced digital mixing facilities enabling low
power high quality interconnection of CPU, baseband and other audio
sources through flexible digital and analogue routing, and integrates
a class W headphone driver and stereo class D speaker drivers.
- ASoC: add a WM8978 codec driver
The WM8978 codec from Wolfson Microelectronics is very similar to
wm8974, but is stereo and also has some differences in pin configuration
and internal signal routing. This driver is based on wm8974 and takes
the differences into account.
- ASoC: Add initial WM8955 CODEC driver
The WM8955 is a low power, high quality stereo DAC with integrated
headphone and loudspeaker amplifiers, designed to reduce external
component requirements in portable digital audio applications. This is
an initial driver implementing support for the majority of the
functionality in the device, currently OUT3 is not supported.
- ASoC: Fix sorting of codecs Makefile entries
- ASoC: Add DA7210 codec device support for ALSA
This original driver was created by Dialog Semiconductor,
and cleanuped by Kuninori Morimoto.
Special thanks to David Chen.
This became very simple ASoC codec driver,
and it is tested by EcoVec24 board.
- ASoC: Initial WM8904 CODEC driver
The WM8904 is a high performance ultra-low power stereo CODEC
optimised for portable audio applications, with features including
a class W amplifier, FLL with free running mode, Mobile ReTune and
ground referenced headphone and line outputs.
Support for some features, most particularly the digital microphone
interface, is not yet present.

/soc/pxa/Makefile

- ASoC: Zipit Z2 WM8750 ASoC driver
This patch adds support for sound through the WM8750 codec on Zipit Z2.
Also, this patch incorporates support for detecting headset jack
insertion through the jack detection API.

/usb/misc/Makefile

- Regenerate patches and build-stubs for usb refactoring
- ALSA: usb-audio: move ua101 driver
As part of the USB audio code cleanup, move the non-standard ua101
driver out of the way.

AC97 Codec

- ALSA: ac97: Add Toshiba P500 to ac97 jack sense blacklist
BugLink: https://launchpad.net/bugs/481058
The OR has verified that both 'Headphone Jack Sense' and 'Line Jack Sense'
need to be muted for sound to be audible, so just add the machine's SSID
to the ac97 jack sense blacklist.
Reported-by: Richard Gagne
Tested-by: Richard Gagne
- ALSA: ac97: Add IBM ThinkPad R40e to Headphone/Line Jack Sense blacklist
BugLink: https://launchpad.net/bugs/303789
This model needs both 'Headphone Jack Sense' and 'Line Jack Sense'
muted for audible audio, so just add its SSID to the blacklist and
don't enumerate the controls.
- ALSA: ac97: add AC97 STMicroelectronics' codecs
Add the STMicroelectronics ST7597 codec and an unknown codec
from the same manufacturer found on the Creative SB 128 card (CT4810).
- ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense blacklist
This model needs both 'Headphone Jack Sense' and 'Line Jack Sense' muted
for audible playback, so just add it to the ad1981 jack sense blacklist.
Tested-by: Pete <x41215201@gmail.com>
- ALSA: ac97_codec: merge WM9703 and WM9705 ops
The WM9705 and WM9703 ops are the same actually so use
the same code for both.

AD1889 driver

- sound: use DEFINE_PCI_DEVICE_TABLE
Use DEFINE_PCI_DEVICE_TABLE() to make PCI device ids go to
.devinit.rodata section, so they can be discarded in some cases,
and make them const.

AK4113 receiver

- ALSA: i2c: cleanup: change parameter to pointer
We actually pass an array of 7 chars not 5.
This silences a smatch warning.

ALI5451 driver

- sound: use DEFINE_PCI_DEVICE_TABLE
Use DEFINE_PCI_DEVICE_TABLE() to make PCI device ids go to
.devinit.rodata section, so they can be discarded in some cases,
and make them const.

ALSA Version

- ALSA: Release v1.0.23
- ALSA: Release v1.0.22.1
- ALSA: Release v1.0.22

ALSA sequencer

- ALSA: trivial: sound seq ioctl dbg: print hexadecimal value padded with 0s
Instead of padding with blanks and printing "number=0x a", print
"number=0x0a".
- sound: seq_timer: simplify snd_seq_timer_set_tick_resolution() parameters
As snd_seq_timer_set_tick_resolution() is always called with the same
three fields of struct snd_seq_timer, it suffices to give that as the
only parameter.

ALSA<-OSS emulation

- Refresh patches for addition of no_llseek calls
- ALSA: core - Define llseek fops
Set no_llseek to llseek file ops of each sound component (but for hwdep).
This avoids the implicit BKL invocation via generic_file_llseek() used
as default when fops.llseek is NULL.
Also call nonseekable_open() at each open ops to ensure the file flags
have no seek bit.
- ALSA: pcm_lib - return back hw_ptr_interrupt
Clemens Ladisch noted for hw_ptr_removal in "cleanup & merge hw_ptr
update functions" commit:
"It is possible for the status/delay ioctls to be called when the sound
card's pointer register alreay shows a position at the beginning of the
new period, but immediately before the interrupt is actually executed.
(This happens regularly on a SMP machine with mplayer.) When that
happens, the code thinks that the position must be at least one period
ahead of the current position and drops an entire buffer of data."
Return back the hw_ptr_interrupt variable. The last interrupt pointer
is always computed from the latest hw_ptr instead of tracking it
separately (in this case all hw_ptr checks and modifications might
influence also hw_ptr_interrupt and it is difficult to keep it
consistent).
- ALSA: pcm_lib - cleanup & merge hw_ptr update functions
Do general cleanup in snd_pcm_update_hw_ptr*() routines and merge them.
The main change is hw_ptr_interrupt variable removal to simplify code
logic. This variable can be computed directly from hw_ptr.
Ensure that updated hw_ptr is not lower than previous one (it was possible
with old code in some obscure situations when interrupt was delayed or
the lowlevel driver returns wrong ring buffer position value).

ARM AACI PL041 driver

- ALSA: aaci - Fix alignment faults on ARM Cortex introduced by commit 29a4f2d3
The commit 29a4f2d3 used writel() at offset 0x26 which is
half-word aligned causing unaligned exceptions on a
Cortex-A8. The original patch solved the "aaci-pl041 fpga:04:
ac97 read back fail" issue on a soft reset. Reading from any
arbitrary aaci register seems to solve this issue.
- ALSA: sound/arm: Fix build failure caused by missing struct aaci definition
This patch fixes a build failure introduced by the patch
ALSA: AACI: factor common hw_params logic into aaci_pcm_hw_params [1]
by adding/moving the aaci struct to the right position.
The patch mentioned above merged common source parts into one function,
but unfortunately left out the aaci struct and consequently caused a
build failure e.g. for arm versatile_config [2]
References:
[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d3aee7996c30f928bbbbfd0994148e35d2e83084
[2] http://kisskb.ellerman.id.au/kisskb/buildresult/1893605/
Patch against Linus' tree.
- ALSA: AACI: switch to per-pcm locking
We can use finer-grained locking, which makes things easier when
we gain DMA support.
- ALSA: AACI: add double-rate support
- ALSA: AACI: factor common hw_params logic into aaci_pcm_hw_params
- ALSA: AACI: cleanup aaci_pcm_hw_params
Since the recording and playback paths are now the same, eliminate
the needless conditionals.
- ALSA: AACI: simplify codec rate information
There's no need for a specific rule; ALSA's generic AC'97 support
calculates the necessary rate constraint information itself, and
we can use this directly.
- ALSA: aaci - Fix a typo
Fixed a typo of the max buffer size specified for buffer allocation
changed in the commit d6797322231af98b9bb4afb175dd614cf511e5f7.

ARM PXA2XX driver

- include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.
percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.
http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.
* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.
* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.
The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.
2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.
3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.
4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.
5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.
6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).
* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig
8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.
Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
- ASoC: pxa-pcm-lib: initialize DMA channel to -1
This fixes a warning ("pxa_free_dma: trying to free channel 0 which is
already freed") when a device was opened but the hw_params() call
failed.
- [ARM] pxa: remove now unnecessary pxa_gpio_mode() calls in ac97
Now most (if not all) PXA platforms have been switched to the new MFP
API, it's rather safe to remove these unnecessary pxa_gpio_mode() calls
in pxa2xx-ac97-lib.c now.
- [ARM] pxa: introduce processor specific pxa27x_assert_ac97reset()
This is really pxa27x specific and should be kept in pxa27x.c. With this
newly introduced function, the original set_resetgpio_mode() is deprecated.
- [ARM] pxa: remove the unnecessary restoring of MFP registers
MFP registers are saved and restored by the mfp sys_device before all
other platform devices, and it is unnecessary here.
- const: constify remaining dev_pm_ops

ATIIXP driver

- ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2
BugLink: https://bugs.launchpad.net/ubuntu/+bug/498863
This mainboard needs ac97_codec=0.
Tested-by: Apoorv Parle <apparle@yahoo.co.in>

Apple Onboard Audio driver

- include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.
percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.
http://userweb.kernel.org/~tj/misc/slabh-sweep.py
The script does the followings.
* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.
* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.
* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.
The conversion was done in the following steps.
1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.
2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.
3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.
4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.
5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.
6. percpu.h was updated not to include slab.h.
7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).
* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig
8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.
Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
- of: unify phandle name in struct device_node
In struct device_node, the phandle is named 'linux_phandle' for PowerPC
and MicroBlaze, and 'node' for SPARC. There is no good reason for the
difference, it is just an artifact of the code diverging over a couple
of years. This patch renames both to simply .phandle.
Note: the .node also existed in PowerPC/MicroBlaze, but the only user
seems to be arch/powerpc/platforms/powermac/pfunc_core.c. It doesn't
look like the assignment between .linux_phandle and .node is
significantly different enough to warrant the separate code paths
unless ibm,phandle properties actually appear in Apple device trees.
I think it is safe to eliminate the old .node property and use
phandle everywhere.
Tested-by: Wolfram Sang <w.sang@pengutronix.de>

Asihpi driver

- ALSA: asihpi - Transform names towards linux style.
- snd-asihpi: Support mic control caching. Move an enum out of public api.
- snd-asihpi: Keep HPI buffer pointers in sync with ALSA after rewrite.
Fixes problem where alsa overwrote buffered data before it had been read.
- snd-asihpi: Use adapter properties for stream buffer constraints.
Use adapter properties for stream buffer constraints, matches alsa period
constraints to adapter internal period.
Default to less logging, remove VPRINTK3
Log buffer info in decimal.
- snd-asihpi: Bump lib version due to added and removed APIs
- snd-asihpi: Reinit response size for every msg/response transaction. Minor fix const ptr
Response size must be reinitialised for each use, because it is used as a buffer size limit.
- snd-asihpi: add const plus a few new defs
const correct pointer parameters.
add a new stream state wait and function
add new adapter properties
- asihpi - Remove obsolete comment
- asihpi - Allow mux to have up to 256 sources
Allow mux to have up to 256 sources. Log warning and return index 0
rather than error if DSP returns invalid value. (amixer fails if error
returned on get)
- Make firmware vs driver major version mismatch an error.
I.e. incompatible firmware will fail driver load.
- Sync with AudioScience current CVS at version 4.03.04
Add support for Universal Control and variable size HPI messages.
Remove dsp index from HPI messages, add general object index.
Convert many defines to enums.
Rearrange code to get rid of hpios_linux_kernel.[ch]
ALSA specific - check error returns from all HPI calls.

Atmel on-chip Audio Bitstream DAC (ABDAC)

- ALSA: AC97: add full duplex support for atmel AT91 and AVR.
This patch add full duplex support on AT91 and AVR.
It was a bug: we needed to check first if there are some chips opened so we
could enable both reception and sending of the data.
- ALSA: AC97: add AC97 support for AT91.
This patch add AC97 support for ATMEL AT91, using the AVR32 code.
While AVR is using a DMA, the AT91 chips are using a Peripheral Data
Controller.

Au12x0/Au1550 PSC ASoC

- MIPS/SOUND: Alchemy: DB1200 AC97+I2S audio support.
Machine driver for DB1200 AC97 and I2S audio systems, intended as a proper
reference asoc machine for Alchemy-based systems. AC97/I2S can be selected
at boot time by setting switch S6.7.
- MIPS: Alchemy: change dbdma to accept physical memory addresses
DMA can only be done from physical addresses; move the "virt_to_phys"
source/destination buffer address translation from the dbdma queueing
functions (since the hardware can only DMA to/from physical addresses)
to their respective users.
- MIPS: Alchemy: remove dbdma compat macros
Remove dbdma compat macros, move remaining users over to default
queueing functions and -flags.
(Queueing function signature has changed in order to give
a build failure instead of silent functional changes due
to the no longer implicitly specified DDMA_FLAGS_IE flag)

Avance Logic ALS300/300+ driver

- sound: use DEFINE_PCI_DEVICE_TABLE
Use DEFINE_PCI_DEVICE_TABLE() to make PCI device ids go to
.devinit.rodata section, so they can be discarded in some cases,
and make them const.

CMI8788 (Oxygen) driver

- ALSA: oxygen: change || to &&
In the original code the condition was always true (hopefully) because
WM8776_HPLVOL is zero.
- sound: virtuoso: add Xonar DS support
Add experimental support for the Asus Xonar DS.

CMIPCI driver

- ALSA: cmipci: work around invalid PCM pointer
When the CMI8738 FRAME2 register is read, the chip sometimes (probably
when wrapping around) returns an invalid value that would be outside the
programmed DMA buffer. This leads to an inconsistent PCM pointer that is
likely to result in an underrun.
To work around this, read the register multiple times until we get a
valid value; the error state seems to be very short-lived.
Reported-and-tested-by: Matija Nalis <mnalis-alsadev@voyager.hr>

CS4281 driver

- ALSA: info - Check file position validity in common layer
Check the validity of the file position in the common info layer before
calling read or write callbacks in assumption that entry->size is set up
properly to indicate the max file size.
Removed the redundant checks from the callbacks as well.
- ALSA: info - Use standard types for info callbacks
Use loff_t, size_t and ssize_t for arguments of info callbacks
to follow the standard procfs.

CS46xx driver

- ALSA: info - Check file position validity in common layer
Check the validity of the file position in the common info layer before
calling read or write callbacks in assumption that entry->size is set up
properly to indicate the max file size.
Removed the redundant checks from the callbacks as well.
- ALSA: info - Use standard types for info callbacks
Use loff_t, size_t and ssize_t for arguments of info callbacks
to follow the standard procfs.
- ALSA: cs46xx - fix some typos
- ALSA: cs46xx - Do test writes to register AC97_REC_GAIN in
snd_cs46xx_codec_reset() bypassing the register cache, so as to not
clobber the cached register value during resume.
- ALSA: cs46xx: Fix cpu idling with resume
Make sure that capture DMA doesn't stay enabled after system resume
as that potentially prevents the processor from entering deep sleep
states.
- ALSA: cs46xx - Fix suspend/resume with new DSP
Fix the basic suspend/resume of snd-cs46xx drivers with new DSP.
References:
https://bugzilla.redhat.com/show_bug.cgi?id=498287
https://bugzilla.redhat.com/show_bug.cgi?id=160751
Tested-by: Florian Zumbiehl <florz@florz.de>

CS5535 driver

- ALSA: cs5535audio: free OLPC quirks from reliance on MGEODE_LX cpu optimization
Previously, OLPC support for the mic extensions was only enabled in the
ALSA driver if CONFIG_OLPC and CONFIG_MGEODE_LX were both set. This was
because the old geode GPIO code was written in a manner that assumed
CONFIG_MGEODE_LX. With the new cs553x-gpio driver, this is no longer the
case; as such, we can drop the requirement on CONFIG_MGEODE_LX and instead
include a requirement on GPIOLIB.
We use the generic GPIO API rather than the cs553x-specific API.

Compatibility header files

- include/sound/pcm.patch - add back hw_ptr_interrupt variable
- pcm.patch - update to recent runtime->tsleep & runtime->twake changes
- Updated include/sound/pcm.patch according latest alsa-kmirror tree
Also optimize and improve include/sound/Makefile a bit.

Conexant Riptide driver

- ALSA: riptide: clean up while loop
If getpaths() returned an odd number this would be a buffer under-run and an
endless loop. It turns out that getpaths() can only return even numbers, but
let's make it easy for people auditing code. With the new code you don't
need to look at getpaths().
This silences a smatch warning.
- ALSA: test off by one in setsamplerate()
With `while (i++ < MAX_WRITE_RETRY)' i reaches MAX_WRITE_RETRY + 1 after the loop

Creative Sound Blaster X-Fi (20K1/20K2)

- Fix pci/ctxfi/ctatc.patch for new snd_pci_quirk_lookup_id()
- ALSA: ctxfi - fix PTP address initialization
After hours of debugging, I finally found the reason why some source
and runtime combination does not work. The PTP (page table pages)
address must be aligned. I am not sure how much, but alignment to
PAGE_SIZE is sufficient. Also, use ALSA's page allocation routines
to ensure proper virtual -> physical address translation.
- ALSA: ctxfi - Add subsystem option
Added a new option "subsystem" to override the PCI SSID for identifying
the card type.

DT019x driver

- Remove obsolete dt019x.c again
- introduce --with-alsakernel option for ./configure
This patch allows to choose the ALSA kernel tree. It adds support to
specify own path for the standard Linux 2.6 kernel tree.
The alsa-kmirror mode was untouched.
Also, missing isa/dt019x.c is added.

Digigram VX core

- handle more nicely new location for autoconf.h (generated/autoconf.h)
- linux/include/generated directory related changes for 2.6.33
- ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
pgprot_noncached() can be set for vmalloc'ed buffers safely, and we'd
need non-cached behavior more or less, even for the intermediate ring-
buffers.
Now snd_pcm_lib_mmap_vmalloc() is added as the common PCM mmap callback
that is coupled with snd_pcm_lib_alloc_vmalloc_buffer() & co.
- sound: vx: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.

Documentation

- ALSA: hda - Update document about MSI and interrupts
- ALSA: hda-intel - remove model=hwio from documentation
- ALSA: hda-intel - remove model=hwio , use probe_only=3 instead
The probe_only module parameter skips the codec initialization, too.
Remove the model=hwio code and use second bit in probe_only to
skip the HDA codec reset procedure.
- ALSA: hda-intel - add special 'hwio' model to bypass initialization
Using the 'model=hwio' option, the driver bypasses any codec
initialization and the reset procedure for codecs is also
bypassed. This mode is usefull to enable direct access using
hwdep interface (using hdaverb or hda-analyzer tools) and
retain codec setup from BIOS.
- ALSA: ua101: add Edirol UA-1000 support
Add support for the Edirol UA-1000 to the UA-101 driver.
Both devices behave the same, so we just have to shuffle around some
interface numbers and name strings.
- ALSA: hda - Add missing description in HD-Audio-Models.txt
- ALSA: hda - Add Macmini 3,1 support
BugLink: https://bugs.edge.launchpad.net/ubuntu/+source/linux/+bug/343989
Add a model quirk for the NVIDIA based Macmini hardware, aka Macmini 3,1. The
pinout is almost identical to the mb5 quirk, except for no microphone and
the line-in mixer controls being on a different index. Everything works in
2ch mode, but as I am not sure what needs to be changed for 6ch mode, or
whether the Mac Mini's chip supports 6ch mode, I have simply duplicated
the code from the mb5 quirk for the mac mini chmode management. The new
model parameter for this quirk is "macmini3".
- ALSA: hda - Add support for Lenovo IdeaPad U150
Add patch for the Conexant 5066 HDA codec to support the Lenovo IdeaPad U150
- ALSA: hda - Allow override more fields via patch loader
Allow the override of vendor-id, subsystem-id, revision-id and chip name
via patch loading. Updated the document, too.
- ALSA: hda - Add support for Toshiba Satellite M300
Added the support for Toshiba Satellite M300 with Conexant 5051 codec.
Since the laptop has no port C connection and the pin reports always
the jack sense true, we need to ignore port-C unsol event.
- ALSA: hda - Minor fixes for Compaq Presario F700 quirk
Minor fixes for HP Compaq Presario F700 quirks with Cxt5051 codec:
- changed the capture mixer elements to the standard name.
- fixed the quirk name string without a space
- sorted the quirk list
- updated the documentation
- sound: virtuoso: add Xonar DS support
Add experimental support for the Asus Xonar DS.
- ALSA: ctxfi - Add subsystem option
Added a new option "subsystem" to override the PCI SSID for identifying
the card type.
- ALSA: Fix a typo in Procfile.txt
Fix a typo in Documentation/sound/alsa/Procfile.txt
Signed-off-by Masanari Iida <standby24x7@gmail.com>
- ALSA: jazz16: refine dma and irq selection
Narrow the dma and irq selection after the DOS driver.
Add ALSA configuration description as well.
- ALSA: hda - Add support for the new 27 inch IMacs
With the attached patch I am able to use the sound on a new IMac 27.
What works:
*) Internal speakers
*) Internal microphone
*) Headphone
I don't have an external mic or a SPDIF device to test the rest.

EMU8000 driver

- sound: sbawe: fix memory detection part 2
The patch "sbawe: fix memory detection" fixed detection
for memoryless SB32 cards but broke detection of memory
above 512KB. This patch fixes the regression.
The patch has been tested on the SB32 card (CT3670) with
0MB, 2MB and 8MB memory installed.
- ALSA: sbawe: fix memory detection
Memory amount is increased before a successful write-read
sequence is done. Thus, 512 kB of onboard memory is detected
on memoryless cards like SB32.
Move the increasing of memory counter after successful read
is done.

Echoaudio driver

- Echoaudio - add suspend/resume support
5/5 Patchin' patcher:
This patch updates alsa-driver echoaudio.patch .
Short description:
This patch updates alsa-driver echoaudio.patch .
- ALSA: echoaudio - Eliminate use after free
Use the call to snd_card_free in the error handling code at the end of the
function, as in the other error cases.
A simplified version of the semantic patch that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
expression E,E2;
@@
snd_card_free(E)
...
(
E = E2
|
* E
)
// </smpl>
- ALSA: Echoaudio, fix Guru Meditation #00000005.48454C50
This patch fixes a division by zero error in the irq handler.
There is a small window between the hw_params() callback and when
runtime->frame_bits is set by ALSA middle layer. When another substream is
already running, if an interrupt is delivered during that window the irq
handler calls pcm_pointer() which does a division by zero. The patch below
makes the irq handler skip substreams that are initialized but not started
yet. Cc to Clemens Ladisch because he proposed an alternate fix.
For more information, please read the original thread in the linux-kernel
mailing list: http://lkml.org/lkml/2010/2/2/187
- ALSA: Echoaudio - Add suspend support #2
This patch adds rearranges parts of the initialization code and adds
suspend and resume callbacks.
This patch adds suspend and resume callbacks.
It also rearranges parts of the initialization code so it can be
used in both the first initialization (when the module is loaded we
also have to load default settings) and the resume callback (where
we have to restore the previous settings).
- ALSA: Echoaudio - Add suspend support #1
Move the controls init code outside the init_hw() function because is must
not be called during resume.
This patch moves the code that initializes the card's controls with
default valued from the init_hw() function into a separated
set_mixer_defaults() function (one for each of the 16 supported
cards). This change is necessary because during resume we must
resurrect the hardware without losing the previous
settings. set_mixer_defaults() must be called only once when the
module is loaded.
- ALSA: Echoaudio - Add firmware cache #2
This patch implements a simple cache for the firmware files when CONFIG_PM is defined.
This patch changes get_firmware(), free_firmware() and adds
free_firmware_cache(). The first two functions implement a very
simple cache and the latter is used to actually release all the stored
firmwares when the module is unloaded.
When CONFIG_PM is not enabled those functions act as before, that is
free_firmware() releases the firmware immediately and
free_firmware_cache() does nothing.
- ALSA: Echoaudio - Add firmware cache #1
Changes the way the firmware is passed through functions.
When CONFIG_PM is enabled the firmware cannot be released because the
driver will need it again to resume the card.
With this patch the firmware is passed as an index of the struct
firmware card_fw[] in place of a pointer. That same index is then used
to locate the firmware in the firmware cache.

GUS Library

- ALSA: info - Implement common llseek for binary mode
The llseek implementation is identical for existing driver implementations,
so let's merge to the common layer. The same code for the text proc file
can be used even for the binary proc file.
The driver can provide its own llseek method if needed. Then the common
code will be skipped.
- ALSA: info - Check file position validity in common layer
Check the validity of the file position in the common info layer before
calling read or write callbacks in assumption that entry->size is set up
properly to indicate the max file size.
Removed the redundant checks from the callbacks as well.
- ALSA: info - Use standard types for info callbacks
Use loff_t, size_t and ssize_t for arguments of info callbacks
to follow the standard procfs.

Generic drivers

- ALSA: dummy driver - add model parameter
This is a cleanup for the dummy driver. The model kernel module parameter
is introduced to select the soundcard emulation.

HDA Codec driver

- ALSA: hda - Add initial support for Thinkpad T410s HDA codec
attached please find a patch that adds support for at least the T410s
HDA codec. Most likely it will also add support for the T410 and T510
based models.
The patch was derived from Ideapad support. Support for the laptop's and
docking-station output connectors as well as the docking-station microphone
connector and the laptops internal devices has been tested. Since it has been
developed without a data-sheet available, support for digital outputs and the
laptop's microphone input may well be incorrect.
Microphone mute functionality is not included:
The microphone mute button seems to be reported through thinkpad_acpi key
0000101b. The mute button LED seems to be wired to thinkpad_acpi led
number 15.
- ALSA: hda - add a quirk for Clevo M570U laptop
Added the matching model for Clevo laptop M570U.
Tested-by: Maximilian Gerhard <maxbox@directbox.com>
- ALSA: hda - Avoid invalid "Independent HP" control for VIA codecs
Some VIA codecs have no multiple source selection for headphone pins,
thus it's useless (and wrong) to create "Independent HP" control on them.
This patch adds the check of connections to skip the control in such a
case.
- ALSA: hda - Fix control element allocations in VIA codec parser
The commit 5b0cb1d850c26893b1468b3a519433a1b7a176be
ALSA: hda - add more NID->Control mapping
breaks the control element allocation by returning a wrong value.
Let's fix it.
- ALSA: hda - Add fix-up for Sony VAIO with ALC269
Sony VAIO models with ALC269 need to initialize the pin 0x19 to VREF
ground or Hi-Z to make the headphone working. Other than that, model=auto
works fine, so let's use model=auto with a specific fix-up table.
- ALSA: hda - Enhance fix-up table for Realtek codecs
A few enhancement / fixes for fix-up table of some Realtek codecs:
- Apply fix-ups only for the auto model
- Apply additional verbs after normal init verbs
- Add a debug print to show the fix-up application
This is basically a preliminary work for the next fix for Sony VAIO.
- ALSA: hda - Fix initial capture source connections of ALC880/260
The widget connections of ADC of ALC880 and ALC2260 aren't initialized,
thus it might point to invalid pin. This can be a problem when mode=auto
and there is only one input pin. Then user can't change the connection
at all.
This patch adds the code to initialize the input pin connection of these
codecs.
Reference: Novell bnc#594363
https://bugzilla.novell.com/show_bug.cgi?id=594363
- ALSA: hda - Fix setup for ALC269vb amic and dmic models
Corrected HP and mic pins for ALC269vb amic and dmic models.
- ALSA: hda - Fix auto-parser of ALC269vb for HP pin NID 0x21
ALC269vb has an alternative HP pin 0x21 in addition.
Fix the parser to recognize it.
- ALSA: hda: Add support for Medion WIM2160
This adds support for the Medion WIM2160 soundcard.
There's no PCI quirk added because it has the same PCI id as the
Medion MD2.
- ALSA: hda - Remove left-over debug printk in patch_realtek.c
- ALSA: hda - Fix ALC882 DAC connections in auto mode
Assign DACs properly to each output. Currently, the front output is bound
to HP/speaker outputs blindly, but they should be assigned to individual
DACs.
- ALSA: hda - Fix a wrong array range check in patch_realtek.c
The commit 6a4f2ccb467e00281470cde2dee08fe5ecde62d1 introduced a wrong
comparision for the array range check, which effectively skips the whole
initialization of DAC connections. Fixed now.
Reference: bko#15689
https://bugzilla.kernel.org/show_bug.cgi?id=15689
Reported-by: Adrian Ulrich <kernel@blinkenlights.ch>
- ALSA: hda - Enable amplifiers on Acer Inspire 6530G
After more tests it appears that EAPD needs to be enabled
on both the 0x14 and 0x15 NIDs to enable the main speaker
and headphone amplifiers. The maximum volume setting is
now equal to what the machine achieves under other operating
systems.
Disabling Front or LFE playback triggers EAPD and disables
the amplifier. As such, these two playback switches have
been removed from the mixer.
- ALSA: hda: Fix 0 dB offset for Lenovo Thinkpad models using AD1981
BugLink: https://launchpad.net/bugs/551606
The OR's hardware distorts at PCM 100% because it does not correspond to
0 dB. Fix this in patch_ad1981() for all models using the Thinkpad
quirk.
Reported-by: Jane Silber
- ALSA: hda - introduce snd_hda_codec_update_cache()
Add a new helper, snd_hda_codec_update_cache(), for reducing the unneeded
verbs. This function checks the cached value and skips if it's identical
with the given one. Otherwise it works like snd_hda_codec_write_cache().
The alc269 code uses this function as an example.
- ALSA: hda - Add mute LED support for HP laptop with ALC269
Some HP laptops have a mute LED that is controlled over the unused
MIC2 VREF pin. Implement the LED updater like patch_sigmatel.c for this
model.
- ALSA: hda - Add missing printk argument in previous patch
- ALSA: hda - Fix ADC/MUX assignment of ALC269 codec
ALC269 codec has a few different variants, and each of them may have
different ADC and MUX widgets. For example, one model has ADC 0x08
with MUX 0x23 while others has ADC 0x09 or ADC 0x07 with MUX 022 or
0x24. The difference of ADC appears usually as the capability of
the digital mic pin (0x12), and the current driver sometimes misses
the internal mic pin due to the mismatching ADC.
This patch adds a bit more clever way to find the matching ADC instead
of the static list. Now the driver checks all active input pins and
fills only the ADC/MUX's that contain all of them.
- ALSA: hda - Report errors when invalid values are passed to snd_hda_amp_*()
The values should be in 8 bits.
- ALSA: hda - Fix invalid bit values passed to snd_hda_codec_amp_stereo()
The mask and value parameters passed to snd_hda_codec_amp_stereo()
should be 8-bit values for mute and volume. Passing AMP_IN_MUTE() is
wrong, which is found in many places in patch_realtek.c as a left-over
from the conversion to snd_hda_codec_amp_stereo().
Reported-by: Dan Carpenter <error27@gmail.com>
- ALSA: hda-intel - remove model=hwio , use probe_only=3 instead
The probe_only module parameter skips the codec initialization, too.
Remove the model=hwio code and use second bit in probe_only to
skip the HDA codec reset procedure.
- ALSA: hda - Don't set invalid connection index in Realtek initialiaiton
Skip initialization of connections of DAC widgets that aren't used,
which resulted in invalid verb parameters.
- ALSA: hda-intel - AD1984 thinkpad - add analog beep input control
For Lenovo Thinkpad T61/X61, the analog beep input is connected
to node 0x20, index 3. Move the digital beep mute/volume controls
as "Digital Beep" and create analog beep controls for mentioned node.
- ALSA: hda-intel - add special 'hwio' model to bypass initialization
Using the 'model=hwio' option, the driver bypasses any codec
initialization and the reset procedure for codecs is also
bypassed. This mode is usefull to enable direct access using
hwdep interface (using hdaverb or hda-analyzer tools) and
retain codec setup from BIOS.
- ALSA: hdmi - show debug message on changing audio infoframe
Also change printk level for the two others.
- ALSA: hda - Fix uninitialized variable warning in alc_auto_parse_customize_define()
- ALSA: hda - Fix access-after-free in patch_realtek.c
alc_free_kctls() has to be called after all jobs done in alc_build_controls().
- ALSA: hda - Sort codec entry list of Nvidia HDMI
- ALSA: hda - Add support of Nvidia GT220 HDMI
This patch adds the device id for Nvidia GT220 cards to the nvhdmi
driver. I have tested it and confirmed it to be working.
Original patch download link:
https://gist.github.com/324070/
- ALSA: hda: Fix 0 dB offset for HP laptops using CX20551 (Waikiki)
BugLink: https://launchpad.net/bugs/420578
The OR has verified that his hardware distorts because of the 0 dB
offset not corresponding to the highest PCM level. Fix this by capping
said PCM level to 0 dB similarly to what we do for CX20549 (Venice).
Reported-by: Mike Pontillo <pontillo@gmail.com>
Tested-by: Mike Pontillo <pontillo@gmail.com>
- ALSA: hda - Add PCI quirk for HP dv6-1110ax.
Adding this PCI quirk fixes the board config detection.
This also fixes jack sensing by using "hp_detect=1" via properly detected
board config.
- ALSA: hda - Add alc_codec_rename() helper
Added alc_codec_rename() helper for renaming codec->chip_name.
Added Acer-specific codec naming for ALC269/662.
[Clean-up and refactoring by tiwai]
- ALSA: hda - Add parse customize define function for Realtek codecs
Added alc_auto_parse_customize_define() to parse the Realtek-specific
attributes from SKU. Also enable beep controls only when the proper
attribute bit is set.
- ALSA: hda - Take internal mic as Front Mic
Add new check for MIC. Do the internal DMIC as the Front MIC.
It could solve the default record source index issue.
[Fix the check properly using the bitmask by tiwai]
- ALSA: hda: Use LPIB and 6stack-dig for eMachines T5212
BugLink: https://bugs.launchpad.net/bugs/538895
The OR has verified that both position_fix=1 and model=6stack-dig are
necessary to have capture function properly. (The existing 3stack-6ch
model quirk seems to be incorrect.)
Reported-by: Reuben Bailey <reuben.e.bailey@gmail.com>
Tested-by: Reuben Bailey <reuben.e.bailey@gmail.com>
- ALSA: hda - Add PCI quirks for MSI NetOn AP1900 and Wind Top AE2220
This should make the speakers and jack detection work on MSI all-in-one
computers NetOn AP1900 and Wind Top AE2220.
- ALSA: hda - Fix secondary ADC of ALC260 basic model
Fix adc_nids[] for ALC260 basic model to match with num_adc_nids.
Otherwise you get an invalid NID in the secondary "Input Source" mixer
element.
- ALSA: hda - Add an error message for invalid mapping NID
Add an error message to snd_hda_add_nid() for invalid mapping NID to make
easier to hunt the buggy code.
Also added a missing space to the error message in snd_hda_build_controls()
- ALSA: hda - Fix input source elements of secondary ADCs on Realtek
Since alc_auto_create_input_ctls() doesn't set the elements for the
secondary ADCs, "Input Source" elemtns for these also get empty, resulting
in buggy outputs of alsactl like:
control.14 {
comment.access 'read write'
comment.type ENUMERATED
comment.count 1
iface MIXER
name 'Input Source'
index 1
value 0
}
This patch fixes alc_mux_enum_*() (and others) to fall back to the
first entry if the secondary input mux is empty.
- ALSA: hda - Fix wrong model range check for ALC268
Fix a wrong value passed to snd_hda_check_board_codec_sid_config() as
the upper-limit in parse_alc268(), so that any wrong value can't be
passed.
So far, no bogus value was set in the quirk entries, so this won't give
any behavioral changes.
- ALSA: hdmi - merge common code for intelhdmi and nvhdmi
Create patch_hdmi.c to hold common code from intelhdmi and nvhdmi.
For now the patch_hdmi.c file is simply included by patch_intelhdmi.c
and patch_nvhdmi.c, and does not represent a real codec.
There are no behavior changes to intelhdmi. However nvhdmi made several
changes when copying code out of intelhdmi, which are all reverted in
this patch. Wei Ni confirmed that the reverted code actually works fine.
Tested-by: Wei Ni <wni@nvidia.com>
- ALSA: hda: uninitialized variable fix
Commit eaa9b3a748539651f50e3a234c8854e1b42a839a introduced the following
uninitialized warning:
sound/pci/hda/patch_realtek.c: In function 'set_capture_mixer':
sound/pci/hda/patch_realtek.c:4928: warning: 'pin' is used uninitialized in this function
sound/pci/hda/patch_realtek.c:4918: note: 'pin' was declared here
It appears indeed that 'pin' needs to be initialized to 0.
- ALSA: hda - Support NVIDIA MCP89 and GT21x hdmi audio
Support nvidia MCP89 and GT21x 8ch hdmi audio.
Add some eld support.
- ALSA: sound/pci/hda/hda_codec.c: various coding style fixes
- ALSA: hda - Add missing hp_pins definitions for ALC269 quirks
In 2.6.33 ACL269 unsol event handler was changed to look up the pre-defined
pins, but the headphone pins aren't defined properly in each quirk.
This patch adds the missing definitions, and fixes the speaker auto-mute
regression on some ASUS (and possibly other) laptops.
- ALSA: hda: Use 3stack quirk for Toshiba Satellite L40-10Q
BugLink: https://bugs.launchpad.net/bugs/524948
The OR has verified that the existing model=laptop-eapd quirk does not
function correctly but instead needs model=3stack. Make this change
so that manual corrections to module-init-tools file(s) are not
required.
Reported-by: Lasse Havelund <lasse@havelund.org>
- ALSA: hda - Add/fix ALC269 FSC and Quanta models
Specify proper quirk models for FSC and Quanta machines with ALC269 codec.
- ALSA: hda - Add ALC670 codec support
- Fixed alc_subsystem_id( ) typo and add new function.
- !(ass & 0x100000)) ==> Delete this check. It is unnecessary check.
- Add porti
- ALC670 support
- ALSA: hda - remove unnecessary msleep on power state transitions
This will save ~15ms boot time.
The first 10ms sleep was introduced in commit d2595d86e5 for (buggy)
Cxt codecs, so better to limit the sleep to the problem hardware.
For the second 10ms sleep, the HDA spec says:
Power State[1:0]:
00: Node Power state (D0) is fully on.
01: Node Power state (D1) allows for (does not require) the lowest possible power consuming state from which it
can return to the "fully on" state (D0) within 10 ms, excepting analog pass through circuits (e.g., CD analog
playback) which must remain fully on.
10: Node Power state (D2) allows for (does not require) the lowest possible power consuming state from which it
can return to the "fully on" state (D0) within 10 ms. For modems, this is the "wake on ring" power state.
11: Node Power state (D3) allows for (does not require) lowest possible power consuming state under software
control. Note that any low power state set by software must retain sufficient operational capability to properly
respond to subsequent software Power State command.
So 10ms is actually the max wait time. It should be safe to
remove/reduce it and rely on the loop of 1ms-sleeps.
- ALSA: add support for Macbook Air 2,1 internal speaker
Add support for Macbook Air 2,1 (late 2008) internal speaker and
headphones. Create a "mba21" model for snd-hda-intel.
- ALSA: hda - Remove identical definitions for macmini3 model
The channel mode definitions for macmini3 model are identical with mb5.
- ALSA: hda - Clean up Intel Mac unsol codes
Use the standard unsol_event callback with each setup callback for
IntelMac models with Realtek ALC885 codecs.
- ALSA: hda - Add Macmini 3,1 support
BugLink: https://bugs.edge.launchpad.net/ubuntu/+source/linux/+bug/343989
Add a model quirk for the NVIDIA based Macmini hardware, aka Macmini 3,1. The
pinout is almost identical to the mb5 quirk, except for no microphone and
the line-in mixer controls being on a different index. Everything works in
2ch mode, but as I am not sure what needs to be changed for 6ch mode, or
whether the Mac Mini's chip supports 6ch mode, I have simply duplicated
the code from the mb5 quirk for the mac mini chmode management. The new
model parameter for this quirk is "macmini3".
- ALSA: hda - Add support for Lenovo IdeaPad U150
Add patch for the Conexant 5066 HDA codec to support the Lenovo IdeaPad U150
- ALSA: hda - Fix default polarity of mute-LED GPIO on 92HD83x/88x codecs
The previous commit caused a regression on HP laptops with 92HD83x/88x
codecs. The default polarity of mute-LED GPIO is inverted on these
devices.
Reference: Novell bnc#578190
https://bugzilla.novell.com/show_bug.cgi?id=578190
- ALSA: hda - Remove static gpio_led setup via model
We have now a better mute-LED GPIO detection, and no need to assign the
values statically per model option.
- ALSA: hda - Merge HP mute-LED status callback on both IDT 92HD7x and 8x codecs
Merge the mute-LED status callback function for both IDT 92HD7x and 8x
codecs to one function. Also it's changed to check all DACs, and called
in the initialization to sync with the current status.
- ALSA: hda - Detect HP mute-LED GPIO setup from GPIO counts
The GPIO pin number for the mute LED control on HP laptops can be
determined more easily by checking the number of available GPIO pins
of the codec chip. On a small package with up to 3 GPIOs, GPIO 0 is
used while GPIO 3 is used for others.
This fixes the missing mute GPIO for some HP laptops with new codecs.
- ALSA: hda - Add support of ALC665
- Add support for ALC665
- Add more ASUS model
- Modify common patch for ALC272 ALC273 ALC661 ALC662 ALC663 ALC665
- ALSA: hda - Add ALC269VB support
- Add new models ALC269VB_AMIC ALC269VB_DMIC
- Add alc269vb_laptop_dmic_setup
The record source index Dmic is 0x6 for ALC269VB.
- Change eeepc words for ALC269
- Modify init_verb tables of patch_alc269 patch_alc662 patch_alc882
- Modify common patch for ALC270 ALC269VB ALC275
- ALSA: hda - Remove superfluous init verb entries for ALC88[235]
The default values are no need to be set in init_verbs.
- ALSA: hda - Fix docking output for IDT 92HD8xx codecs
This patch fixes docking output support for IDT 92HD81/83/88 family codecs.
Typically one of ports 0xE or 0xF is used for docking output, while only
port 0xF is common on all the three codec families. We don't want the
pin to select the analog mixer here.
- ALSA: hda - Adding support for another IDT 92HD83XXX codec
- ALSA: hda - Turn on EAPD only if available for Realtek codecs #2
Some codecs disable widgets used for output pins and reserve as vendor-
spec widgets. Thus we need to check the widget type and pin cap before
actually sending SET_EAPD verbs in the auto-configuration mode.
- ALSA: hda - Add support for IDT 92HD88 family codecs
- ALSA: hda - Add mute LED check for HP laptops with IDT 92HD83xxx codec
This patch adds HP mute LED support for IDT 92HD81/3 family of the codecs.
- ALSA: hda - Fix index of HP Compaq F700 mic amp
The amp used for the mic input on HP Compaq F700 with Cxt5051 codec
has no multiple inputs, thus its index should be 0 instead of 1.
- ALSA: hda - Define max number of PCM devices in hda_codec.h
Define the constant rather in the common header file.
- ALSA: hda - Turn on EAPD only if available for Realtek codecs
Some codecs disable widgets used for output pins and reserve as vendor-
spec widgets. Thus we need to check the widget type and pin cap before
actually sending SET_EAPD verbs in the auto-configuration mode.
- ALSA: hda - Remove the COEF setup for ALC267/ALC268
The COEF setup for model=auto seems problematic on some laptops,
resulting in the silent speaker output. Better to disable it for now.
- ALSA: hda - Remove coef output in Realtek proc files
The output of COEF index/value in the proc file for Realtek codecs is
rather useless since the value varies together with the index.
Let's get rid of it again.
- ALSA: hda - Change headphone pin control with master volume on cx5051
The HP pin (0x16) control has to be changed dynamically depending on
the master volume switch as well as the speaker pin (0x1a). Otherwise
the headphone still sounds with master off.
- ALSA: hda - Fix SPDIF output widget for Cxt5051 codec
Fixed the wrongly set up for SPDIF output on Conexant 5051 codec.
It must point to the audio out widget instead of a pin.
- ALSA: hda - initialize mic port on cxt5051 codec dynamically
Initialize the mic ports B & C on Conexant 5051 codec dynamically
according to the mic jack detection, instead of static init arrays.
- ALSA: hda - Merge playback controls for Cx5051 codec models
All cx5051 codec models have the same Master playback mixer definitions.
Merge them together.
- ALSA: hda - Add support for Toshiba Satellite M300
Added the support for Toshiba Satellite M300 with Conexant 5051 codec.
Since the laptop has no port C connection and the pin reports always
the jack sense true, we need to ignore port-C unsol event.
- ALSA: hda - Fix HP dv6736 capture mixer name
Use the standard "Capture" mixer name for HP dv6736 with Cxt5051 codec.
- ALSA: hda - Minor fixes for Compaq Presario F700 quirk
Minor fixes for HP Compaq Presario F700 quirks with Cxt5051 codec:
- changed the capture mixer elements to the standard name.
- fixed the quirk name string without a space
- sorted the quirk list
- updated the documentation
- ALSA: hda - add possibility to choose speakers configuration for 4930g
Now one can choose speaker configuration in e.g. PulseAudio mixer
- ALSA: hda - Fix HP T5735 automute
This patch fixes the aut-mute setup on HP T5735 with ALC262 codec.
Instead of wrong amp, use pin control toggling for muting the speaker now.
Tested-by: Lee Trager <lee.trager@hp.com>
- ALSA: hda - Fix parsing pin node 0x21 on ALC259
ALC259 has a widget NID 0x21 for the output pin, but it wasn't handled
properly in alc268_new_analog_output().
- ALSA: hda - AD1988 codec - fix SPDIF-input mixer initialization (unmute)
The SPDIF-input pin 0x1c is muted by default in hardware. Unmute appropriate
pin to get captured samples instead zeros. Tested on Lenovo Thinkstation.
- ALSA: hda - Fix capture on Sony VAIO with single input
Sony VAIO VGN-P11G with ALC262 codec has only one input pin, and the
recording doesn't work with model=auto because ALC262 parser sets the
wrong cap NIDs to choose the route and the default route for the sole
input pin wasn't initialized properly. This patch solves these issues.
- ALSA: hda - Fix mute led GPIO on HP dv-series notebooks
On my laptop (HP dv6-1110ax), there are no OEM strings in SMBIOS of type
"HP_Mute_LED*". Hence, the GPIO for the mute button LED doesn't get set
properly. I didn't find the strings in my cousin's laptop (HP dv9500t CTO)
either.
As per the documentation of find_mute_led_gpio(), these strings occur
in HP B-series systems - so, before scanning the SMBIOS strings, we need to
check if we're dealing with a B-series system.
Need to get confirmation from HP if this logic takes care of all the
systems. I'm trying to poke a friend there.
- ALSA: hda - Fix missing capture mixer for ALC861/660 codecs
The capture-related mixer elements are missing with ALC861/ALC660 codecs
when quirks are present, due to missing call of set_capture_mixer().
Reference: Novell bnc#567340
http://bugzilla.novell.com/show_bug.cgi?id=567340
- ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support
This patch adds support for automatically muting the speakers when headphones
are inserted, as well as relabelling the headphone widgets from the
non-standard "HP" to the standard "Headphone" for the mb5 model.
- ALSA: hda - Fix Toshiba NB20x quirk entry
The alc664-mode4 model doesn't seem to fit with Toshiba NB205 correctly.
NB205 uses the pin 0x17 connected with the mixer 0x0f for the speaker
output, which isn't controlled by mode4 model at all.
Rather model=auto works fine as is on the latest driver, so let it back
again.
Tested-by: Nickolas Lloyd <ultrageek.lloyd@gmail.com>
- ALSA: hda - Fix ALC861-VD capture source mixer
The capture source or input source mixer element wasn't created properly
for ALC861-VD codec due to the wrong NID passed to
alc_auto_create_input_ctls().
References: Novell bnc#568305
http://bugzilla.novell.com/show_bug.cgi?id=568305
- ALSA: hda - support OLPC XO-1.5 DC input
The XO's audio hardware is wired up to allow DC sensors (e.g. light
sensors, thermistors, etc) to be plugged in through the microphone jack.
Add sound mixer controls to allow this mode to be enabled and tweaked.
- ALSA: hda - Configure XO-1.5 microphones at capture time
The XO-1.5 has a microphone LED designed to indicate to the user when
something is being recorded.
This light is controlled by the microphone bias voltage and it is
currently coming on all the time.
This patch defers the microphone port configuration until when recording
is actually taking place, fixing the behaviour of the LED.
- ALSA: hda - conexant - Fixed microphone mixer for HP Compaq Presario F700
Added patch for Hewlett-Packard Company Device Subsystem id - 103c:30ea.
- ALSA: hda: Refactor powerdown for Realtek HDA codecs
This patch converts the alc889 Aspire-specific powerdown to a generic
one. Like the previous effort, it currently only handles Front and PCM
but can be easily extended to cover other nids. The existing hook for
alc889 Aspire-specific remains enabled. Upon further testing, I've added
its use for ALC861_AUTO as well. Following patches will enable them for
other quirks.
Tested-by: Dr. David Alan Gilbert <linux@treblig.org>
- ALSA: hda: Add powerdown for Analog Devices HDA codecs
This patch ports powerdown fixes to AD198x. Currently we only turn off
Front and HP for suspend, but this is easily extended for additional
nids.
- ALSA: hda - Use strict_strtoul()
Rewrite the codes to use strict_strtoul() instead of simple_strtoul().
- ALSA: hda - Add sanity check for storing the user-defined pin configs
Check whether the given NID is a pin widget before storing the
user-defined pin configs.
- ALSA: hda - Fix click noises at suspend/free with Realtek codecs
Call snd_hda_shutup_pins() at suspend and free for avoiding click noises.
- ALSA: hda - Add snd_hda_shutup_pins() helper function
Add a common helper function for clearing pin controls before suspend.
Use the pincfg array instead of looking through all widget tree.
- ALSA: hda - Add more hints for GPIO setup of IDT/STAC codecs
gpio_led, gpio_led_polarity and gpio_mute are added now.
- ALSA: hda - use snd_hda_jack_detect() again in patch_sigmatel.c
Use snd_hda_jack_detect() again for jack-sensing.
The triggering problem can be worked around with codec->no_trigger_sense
flag now.
- ALSA: hda - Disable tigger at pin-sensing on AD codecs
Analog Device codecs seem to have problems with the triggering of
pin-sensing although their pincaps give the trigger requirements.
Some reported that constant CPU load on HP laptops with AD codecs.
For avoiding this regression, add a flag to codec struct to notify
explicitly that the codec doesn't suppot the trigger at pin-sensing.
Tested-by: Maciej Rutecki <maciej.rutecki@gmail.com>
- ALSA: hda - Add STAC9205 PCI_QUIRK for Dell Vostro 1700
- ALSA: hda - Set mixer name after codec patch
Postpone the mixer name setup after the codec patch since the codec
patch may change the codec name string in itself.
- ALSA: hda - Fix NID association for capture mixers
Fix the wrong implementation of NID <-> kctl mapping for capture mixers
introduced by the ocmmit 5b0cb1d850c26893b1468b3a519433a1b7a176be.
So far, the driver returns an error at probe.
- ALSA: hda - Add Bass Speaker switch for HP dv7
The bass speaker is controlled via GPIO5.
Tested-by: Wael Nasreddine <mla@nasreddine.com>
- ALSA: hda - Add support for the new 27 inch IMacs
With the attached patch I am able to use the sound on a new IMac 27.
What works:
*) Internal speakers
*) Internal microphone
*) Headphone
I don't have an external mic or a SPDIF device to test the rest.
- ALSA: hda - Fix NULL dereference with enable_beep=0 option
- ALSA: HDA: add powersaving hook for Realtek
The current Realtek code makes no specific provision for turning stuff
off. The codec chip is placed into low-power mode generically, but this
doesn't turn off any external hardware connected to it, in particular
external amplifiers.
This patch creates a hook function that is called by the codec
suspend/resume functions. It ought to disable any external hardware in a
device-specific way. I've implemented a generic ALC889 function that
sets the EAPD pin properly, and used it for the Acer Aspire 8930G which
can benefit from this feature.
On my laptop, this results in ~0.5W extra savings.
- ALSA: HDA: remove useless mixers on Aspire 8930G
This patch removes some extra mixers that do nothing on the Acer Aspire
8930G.
The CD mixer is useless because the SATA DVD/Blu-Ray drive has no analog
audio output, and the Side mixer is useless because we max out at 6ch
anyway.
- ALSA: HDA: simplify Aspire 8930G verb array
This patch just simplifies the 8930G verb array a bit. Just use the
common ALC889 EAPD verb array to make things more consistent. The file
is already huge enough already.
- ALSA: hda: Set Front Mic to input vref 50% for Lenovo 3000 Y410
BugLink: https://bugs.launchpad.net/bugs/479373
The OR has verified with hda-verb that the internal microphone needs
VREF50 set for audible capture.
- ALSA: hda/realtek: Remove extra .capsrc_nids initialization for ALC889_INTEL
- ALSA: Use kzalloc for allocating only one thing
Use kzalloc rather than kcalloc(1,...)
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
@@
- kcalloc(1,
+ kzalloc(
...)
// </smpl>
- ALSA: hda - Fix quirk for Maxdata obook4-1
Works fine with the auto-parser.
Reference: Novell bnc#564940
https://bugzilla.novell.com/show_bug.cgi?id=564940
- ALSA: hda - Fix NULL dereference in kctl-NID mapping in patch_realtek.c
capsrc_nids can be NULL, and adc_nids should be taken as fallback.
- ALSA: hda - Fix missing capsrc_nids for ALC88x
Some model quirks missed the corresponding capsrc_nids. This resulted in
non-working capture source selection.
- ALSA: hda - Make use of beep device found in Dell Vostro 1015n
Conexant CX20583-10Z has digital beep device with volume control.
Making use of them.
- ALSA: hda - Fixed internal mic initialization for Dell Vostro 1015
Fixed initialization of internal mic and added internal mic boost control
Renamed analog mic boost control to ext mic boost contol.
Name pair analog/digital seems too confusing for a normal user.
- ALSA: hda - More ALC663 fixes and support of compatible chips
1. Add more ASUS NB model.
2. Fixed alc663_m51va_setup
M51VA has Digital Mic that NID is 0x12. The record source index is
0x9 for ALC663.
So, to modify the alc663_m51va_setup function to index 0x9
and add analog Mic aupport function alc663_mode1_setup.
3. Add ASUS mode7 and mode8 modules for ALC663

HDA Intel driver

- ALSA: hda - Add position_fix quirk for Biostar mobo
The Biostar mobo seems to give a wrong DMA position, resulting in
stuttering or skipping sounds on 2.6.34. Since the commit
7b3a177b0d4f92b3431b8dca777313a07533a710, "ALSA: pcm_lib: fix "something
must be really wrong" condition", makes the position check more strictly,
the DMA position problem is revealed more clearly now.
The fix is to use only LPIB for obtaining the position, i.e. passing
position_fix=1. This patch adds a static quirk to achieve it as default.
Reported-by: Frank Griffin <ftg@roadrunner.com>
- ALSA: hda - Add MSI blacklist for Aopen MZ915-M
The device needs MSI disablement. Added to the quirk list.
Reported-by: Harald Dunkel <harri@afaics.de>
- ALSA: hda: Use LPIB for ga-ma770-ud3 board
BugLink: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=575669
The OR states that position_fix=1 is necessary to work around glitching
during volume adjustments using PulseAudio.
Reported-by: Carlos Laviola <claviola@debian.org>
Tested-by: Carlos Laviola <claviola@debian.org>
- ALSA: hda-intel - probe_only module option is int type now
- ALSA: hda-intel - remove model=hwio , use probe_only=3 instead
The probe_only module parameter skips the codec initialization, too.
Remove the model=hwio code and use second bit in probe_only to
skip the HDA codec reset procedure.
- ALSA: hda-intel - add special 'hwio' model to bypass initialization
Using the 'model=hwio' option, the driver bypasses any codec
initialization and the reset procedure for codecs is also
bypassed. This mode is usefull to enable direct access using
hwdep interface (using hdaverb or hda-analyzer tools) and
retain codec setup from BIOS.
- ALSA: hda: Use LPIB and 6stack-dig for eMachines T5212
BugLink: https://bugs.launchpad.net/bugs/538895
The OR has verified that both position_fix=1 and model=6stack-dig are
necessary to have capture function properly. (The existing 3stack-6ch
model quirk seems to be incorrect.)
Reported-by: Reuben Bailey <reuben.e.bailey@gmail.com>
Tested-by: Reuben Bailey <reuben.e.bailey@gmail.com>
- ALSA: hda - Disable MSI for Nvidia controller
Judging from the member of enable_msi white-list, Nvidia controller
seems to cause troubles with MSI enabled, e.g. boot hang up or other
serious issue may come up. It's safer to disable MSI as default for
Nvidia controllers again for now.
- ALSA: hda - New Intel HDA controller
Added a PCI controller id on new Dell laptops.
- ALSA: hda - Sound MSI fallout on a Asus mobo NVIDIA MCP55
without the following patch audio ssttuutteerrs on
ASUS M2N32-SLI PREMIUM ACPI BIOS Revision 1304
the sound device is:
00:0e.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)
worked with 2.6.32
- ALSA: hda - Add ASRock mobo to MSI blacklist
This avoids a lockup at boot.
- ALSA: hda: Use LPIB for a Biostar Microtech board
BugLink: https://launchpad.net/bugs/523953
The OR has verified that position_fix=1 is necessary to work around
errors on his machine.
Reported-by: MMarking
- ALSA: hda: Use LPIB for Dell Latitude 131L
BugLink: https://launchpad.net/bugs/530346
The OR has verified that position_fix=1 is necessary to work around
errors on his machine.
Reported-by: Tom Louwrier
- ALSA: hda - Support max codecs to 8 for nvidia hda controller
Support max codecs to 8 for nvidia hda controller.
Change AZX_MAX_CODECS to 8, and add
"#define AZX_DEFAULT_CODECS 4" for default driver.
Set azx_max_codecs to 8 for nvidia controller.
- ALSA: hda - enable snoop for Intel Cougar Point
This patch enables snoop, eliminating static during playback.
This patch supersedes the previous Cougar Point audio patch.
- ALSA: hda-intel: Add position_fix quirk for ASUS M2V-MX SE.
With PulseAudio and an application accessing an input device like `gnome-volume-manager` both have high CPU load as reported in [1].
Loading `snd-hda-intel` with `position_fix=1` fixes this issue. Therefore add a quirk for ASUS M2V-MX SE.
The only downside is, when now exiting for example MPlayer when it is playing an audio file a high pitched sound is outputted by the speaker.
$ lspci -vvnn | grep -A10 Audio
20:01.0 Audio device [0403]: VIA Technologies, Inc. VT1708/A [Azalia HDAC] (VIA High Definition Audio Controller) [1106:3288] (rev 10)
Subsystem: ASUSTeK Computer Inc. Device [1043:8290]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 17
Region 0: Memory at fbffc000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: HDA Intel
[1] http://sourceforge.net/mailarchive/forum.php?thread_name=1265550675.4642.24.camel%40mattotaupa&forum_name=alsa-user
- ALSA: Typo. s/distrubs/disturbs/
- ALSA: hda - Correct ASUA blacklist for MSI brokenness
The MSI blacklist entry for ASUS mobo added in the commit
8ce28d6abff34886d3797b25324c940471b99164 was based on the alsa-info
output wrongly posted. Fix the id to the right one now.
Reported-by: Sid Boyce <sboyce@blueyonder.co.uk>
- ALSA: hda - use WARN_ON_ONCE() for zero-division detection
Replace the zero-division warning message with WARN_ON_ONCE() per the
advice by Linus. This shouldn't happen, but if it happens, it's
possible that the bug happens often due to buggy IRQs.
- ALSA: hda-intel: Avoid divide by zero crash
On my AMD780V chipset, hda_intel.c can crash the kernel with a divide by
zero
for as-yet unknown reasons. A simple check for zero prevents it, though
the problem that causes it remains. Since the workaround is harmless and
won't affect anyone except victims of this bug, it should be safe;
moreover,
because this crash can be triggered by a user-mode application, there are
denial of service implications on the systems affected by the bug without
the patch.
- ALSA: cosmetic: make hda intel interrupt name consistent with others
This renames the interrupt name in /proc/interrupt.
HDA Intel -> hda_intel
This also eliminates space from the name, probably helping some
parsers.
Don't think anybody depends on this name in userspace
- ALSA: hda - Delay switching to polling mode if an interrupt was missing
My sound codec seems sometimes (very rarely) to omit interrupts (ALC268)
However, interrupt mode still works.
Thus if we get timeout, poll the codec once.
If we get 3 such polls in a row, then switch to polling mode.
This patch is maybe an bandaid, but this might be a workaround for hardware bug.
- ALSA: hda - Define max number of PCM devices in hda_codec.h
Define the constant rather in the common header file.
- ALSA: hda - Change the AZX_MAX_PCMS to 10
In hda_codec.c, it has define
"[HDA_PCM_TYPE_HDMI] = { 3, 7, 8, 9, -1 },",
it support up to device 9 for HDMI.
But in hda_intel.c, it only define AZX_MAX_PCMS as 8.
So if it have 4 hdmi codecs, when run azx_attach_pcm_stream(),
it will show error "Invalid PCM device number 8", and "... number 9",
and return "-EINVAL".
We should change the AZX_MAX_PCMS to 10.
- ALSA: hda - Add an ASUS mobo to MSI blacklist
Sid Boyce reported that his machine locks up without enable_msi=0 option.
This looks like another ASUS mobo with Nvidia combo.
Reported-by: Sid Boyce <sboyce@blueyonder.co.uk>
- ALSA: hda - Add support for more the 8 streams
In azx_stream_start() and azx_stream_stop(),
it use azx_readb/azx_writeb to read/write SIE,
it just enable/disable 8 streams.
But according to the HDA spec, it support 30 streams,
and the new HDA controller will support more then 8
streams. So we should use azx_readl/azx_writel to
read/write SIE.
- ALSA: hda_intel: ALSA HD Audio patch for Intel Cougar Point DeviceIDs
This patch adds the Intel Cougar Point (PCH) HD Audio Controller DeviceIDs.
- ALSA: hda - HDMI sticky stream tag support
When we run the following commands in turn (with
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0),
speaker-test -Dhw:0,3 -c2 -twav # HDMI
speaker-test -Dhw:0,0 -c2 -twav # Analog
The second command will produce sound in the analog lineout _as well as_
HDMI sink. The root cause is, device 0 "reuses" the same stream tag that
was used by device 3, and the "intelhdmi - sticky stream id" patch leaves
the HDMI codec in a functional state. So the HDMI codec happily accepts
the audio samples which reuse its stream tag.
The proposed solution is to remember the last device each azx_dev was
assigned to, and prefer to
1) reuse the azx_dev (and hence the stream tag) the HDMI codec last used
2) or assign a never-used azx_dev for HDMI
With this patch and the above two speaker-test commands,
HDMI codec will use stream tag 8 and Analog codec will use 5.
The stream tag used by HDMI codec won't be reused by others, as long
as we don't run out of the 4 playback azx_dev's. The legacy Analog
codec will continue to use stream tag 5 because its device id is 0
(this is a bit tricky).
- ALSA: hda - Add MSI blacklist
A machine with AMD CPU with Nvidia board doesn't work with MSI.
Reported-by: Robert J. King <peritus@gurunetwork.org>
- ALSA: hda - Check class to identify Nvidia controller chips
Instead of listing all individual PCI IDs, check the matching with
the PCI class together with the vendor id for Nvidia.
This simplifies the pci id entries.

HDA generic driver

- Regenerate hda_intel.patch
- Fix hda_intel.patch
Separate msi_whte_list to patch more robustly.
- ALSA: hda - Build hda_eld into snd-hda-codec module
Now two modules require hda_eld.o, so we need to put it to the common
place instead of building into two individual modules.
- ALSA: hda - Support NVIDIA MCP89 and GT21x hdmi audio
Support nvidia MCP89 and GT21x 8ch hdmi audio.
Add some eld support.
- ALSA: hda - Allow override more fields via patch loader
Allow the override of vendor-id, subsystem-id, revision-id and chip name
via patch loading. Updated the document, too.
- ALSA: hda - Use strict_strtoul()
Rewrite the codes to use strict_strtoul() instead of simple_strtoul().
- ALSA: hda - Fix Oops at reloading beep devices
The recent change for supporting dynamic beep device allocation caused
a problem resulting in Oops at reloading the driver. Also, it ignores
the error from input device registration.
This patch fixes the wrong check in snd_hda_detach_beep_device(), and
returns an error when the input device registration fails properly.
- ALSA: hda - Don't cache beep controls
The beep control verbs don't need to be cached for resume.
- ALSA: hda - Fix NID association for capture mixers
Fix the wrong implementation of NID <-> kctl mapping for capture mixers
introduced by the ocmmit 5b0cb1d850c26893b1468b3a519433a1b7a176be.
So far, the driver returns an error at probe.
- tree-wide: convert open calls to remove spaces to skip_spaces() lib function
Makes use of skip_spaces() defined in lib/string.c for removing leading
spaces from strings all over the tree.
It decreases lib.a code size by 47 bytes and reuses the function tree-wide:
text data bss dec hex filename
64688 584 592 65864 10148 (TOTALS-BEFORE)
64641 584 592 65817 10119 (TOTALS-AFTER)
Also, while at it, if we see (*str && isspace(*str)), we can be sure to
remove the first condition (*str) as the second one (isspace(*str)) also
evaluates to 0 whenever *str == 0, making it redundant. In other words,
"a char equals zero is never a space".
Julia Lawall tried the semantic patch (http://coccinelle.lip6.fr) below,
and found occurrences of this pattern on 3 more files:
drivers/leds/led-class.c
drivers/leds/ledtrig-timer.c
drivers/video/output.c
@@
expression str;
@@
( // ignore skip_spaces cases
while (*str && isspace(*str)) { \(str++;\|++str;\) }
|
- *str &&
isspace(*str)
)

I2C lib core

- ALSA: i2c: Fixed 8 checkpatch errors
Fixed 8 checkpatch errors (ERROR: do not use assignment in if condition)
in sound/i2c/i2c.c.

ICE1712 driver

- ALSA: aureon - Patch for suspend/resume for Terratec Aureon cards.
Add proper suspend/resume code for Terratec Aureon cards.
Based on ice1724 suspend/resume work of Igor Chernyshev.
Fixes bug https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4944
Tested on linux-2.6.32.9
- ALSA: ice1712: fix: lock samplerate when samplerate locking is enabled
I found that the sampling rate locking setting of the ice1712 sound driver
was only half-respected : when the driver was locked to, let's say, 44100Hz,
and a usermode app was requesting 48000Hz playback, the request was succesful
although the soundcard would continue to run at 44100Hz.
Here's a patch that will make those requests to fail.
- ALSA: ice1724 - aureon - fix wm8770 volume offset
The volume register is from 0..0x7f and 0..0x1a range is mute.
Also, fix mute combining in wm_vol_put(). The wrong behaviour was
noticed by Peter Christensen.

ISA

- ALSA: jazz16: Add support for Media Vision Jazz16 chipset
This is one of Sound Blaster Pro compatible chipsets which is supported
by Linux OSS driver and was missing native supoort for ALSA.
The Jazz16 audio codec is Crystal CS4216 which is capable
of playback and recording up to 48 kHz stereo.

MIXART driver

- ALSA: info - Implement common llseek for binary mode
The llseek implementation is identical for existing driver implementations,
so let's merge to the common layer. The same code for the text proc file
can be used even for the binary proc file.
The driver can provide its own llseek method if needed. Then the common
code will be skipped.
- ALSA: mixart: range checking proc file
The original code doesn't take into consideration that the value of
MIXART_BA0_SIZE - pos can be less than zero which would lead to a large
unsigned value for "count".
Also I moved the check that read size is a multiple of 4 bytes below
the code that adjusts "count".

MSND driver

- ALSA: Use kzalloc for allocating only one thing
Use kzalloc rather than kcalloc(1,...)
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
@@
- kcalloc(1,
+ kzalloc(
...)
// </smpl>

Memalloc module

- handle more nicely new location for autoconf.h (generated/autoconf.h)
- linux/include/generated directory related changes for 2.6.33

OPL4

- ALSA: info - Implement common llseek for binary mode
The llseek implementation is identical for existing driver implementations,
so let's merge to the common layer. The same code for the text proc file
can be used even for the binary proc file.
The driver can provide its own llseek method if needed. Then the common
code will be skipped.
- ALSA: info - Check file position validity in common layer
Check the validity of the file position in the common info layer before
calling read or write callbacks in assumption that entry->size is set up
properly to indicate the max file size.
Removed the redundant checks from the callbacks as well.
- ALSA: info - Use standard types for info callbacks
Use loff_t, size_t and ssize_t for arguments of info callbacks
to follow the standard procfs.

OSS device core

- ALSA: use subsys_initcall for sound core instead of module_init
This is needed for built-in drivers which are built before the sound directory,
like thinkpad_acpi.
Otherwise, registering a card fails.

Opti9xx drivers

- sound: fix opti92x-ad1848 build
Fix 'else' placement in ifdef block so that build succeeds:
sound/isa/opti9xx/opti92x-ad1848.c:221: error: 'else' without a previous 'if'
- ALSA: opti92x: use PnP data to select Master Control port
The Master Control port (MC) is available as the last
PnP resource (OPT005). Use this value instead fo guessing.
Also, add some comments to the code.

PCI drivers

- sound: virtuoso: add Xonar DS support
Add experimental support for the Asus Xonar DS.

PDAudioCF driver

- ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
pgprot_noncached() can be set for vmalloc'ed buffers safely, and we'd
need non-cached behavior more or less, even for the intermediate ring-
buffers.
Now snd_pcm_lib_mmap_vmalloc() is added as the common PCM mmap callback
that is coupled with snd_pcm_lib_alloc_vmalloc_buffer() & co.
- sound: pdaudiocf: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.
- sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
When allocating the PCM buffer, use vmalloc_user() instead of vmalloc().
Otherwise, it would be possible for applications to play the previous
contents of the kernel memory to the speakers, or to read it directly if
the buffer is exported to userspace.
- pcmcia: remove unused IRQ_FIRST_SHARED
Komuro pointed out that IRQ_FIRST_SHARED is not used at all in the
PCMCIA subsystem, so remove it. Also, remove two bogus assignments.

PPC AWACS driver

- of: add 'of_' prefix to machine_is_compatible()
machine is compatible is an OF-specific call. It should have
the of_ prefix to protect the global namespace.

PPC Burgundy driver

- of: add 'of_' prefix to machine_is_compatible()
machine is compatible is an OF-specific call. It should have
the of_ prefix to protect the global namespace.

PPC PMAC driver

- of: add 'of_' prefix to machine_is_compatible()
machine is compatible is an OF-specific call. It should have
the of_ prefix to protect the global namespace.

PPC Tumbler driver

- ALSA: powermac - Fix obsoleted machine_is_compatible()
machine_is_compatible() was renamed to of_machine_is_compatible().
- ALSA: powermac - Add debug log
Add some debug log in tumbler.c.
- ALSA: powermac - Lineout detection on G4 DA
Lineout (Pro Speaker) detection on PowerMac G4 Digital Audio (Tumbler).
- ALSA: powermac - Reverse HP detection on G4 DA
Reverse headphone detection bit on PowerMac G4 Digital Audio (Tumbler).

RME9652 driver

- tree-wide: Assorted spelling fixes
In particular, several occurances of funny versions of 'success',
'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address',
'beginning', 'desirable', 'separate' and 'necessary' are fixed.

SB drivers

- Add isa/sb/jazz16 build stub
- ALSA: fix jazz16 compile (udelay)
While trying to compile jazz16 isa sound driver on alpha (2.6.33+git), I
found a compile failure in jazz16.c (udelay is unknown). Fix it by
including delay.h.
Signed-foo-by: Meelis Roos <mroos@linux.ee>
- ALSA: jazz16: refine dma and irq selection
Narrow the dma and irq selection after the DOS driver.
Add ALSA configuration description as well.
- ALSA: jazz16: Add support for Media Vision Jazz16 chipset
This is one of Sound Blaster Pro compatible chipsets which is supported
by Linux OSS driver and was missing native supoort for ALSA.
The Jazz16 audio codec is Crystal CS4216 which is capable
of playback and recording up to 48 kHz stereo.

SB8 driver

- ALSA: jazz16: refine dma and irq selection
Narrow the dma and irq selection after the DOS driver.
Add ALSA configuration description as well.
- ALSA: jazz16: Add support for Media Vision Jazz16 chipset
This is one of Sound Blaster Pro compatible chipsets which is supported
by Linux OSS driver and was missing native supoort for ALSA.
The Jazz16 audio codec is Crystal CS4216 which is capable
of playback and recording up to 48 kHz stereo.

SGI O2 Audio

- ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers
pgprot_noncached() can be set for vmalloc'ed buffers safely, and we'd
need non-cached behavior more or less, even for the intermediate ring-
buffers.
Now snd_pcm_lib_mmap_vmalloc() is added as the common PCM mmap callback
that is coupled with snd_pcm_lib_alloc_vmalloc_buffer() & co.
- sound: sgio2audio: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.
- sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
When allocating the PCM buffer, use vmalloc_user() instead of vmalloc().
Otherwise, it would be possible for applications to play the previous
contents of the kernel memory to the speakers, or to read it directly if
the buffer is exported to userspace.

SoC Audio for Freecale i.MX1x i.MX2x CPUs

- ALSA: alsa-kmirror tree & linux-2.6 tree sync 2010-04-16 (merging issues)
- ASoC: Move WM8350 microphone detection bias managment out of driver
Allow machines to control exactly when the bias is turned on and off.
- ASoC: Hook up microphone jack detection on 1133-EV1 board
Note that since all the microphones share a bias there is a single
jack exported for all three, even though there are two physical
connectors plus the soldered down silicon mic. Note also that the SiMic
is always present by default.
- ASoC: Correct typoed Mic2 connections on 1133-EV1 board
- ASoC: Remove BROKEN from i.MX audio after dependencies merged
- ASoC: Wolfson Microelectronics 1133-EV1 audio support
Initial support for audio using the 1133-EV1 audio and PMIC module for
the i.MX31ADS. Currently only playback is supported, and the FIQ DMA
driver has performance problems at higher sample rates which cause
audible dropouts.
This driver is based heavily on an out of tree one written by Liam
Girdwood.
- ASoC: Check progress when reporting periods from i.MX FIQ handler
Currently the i.MX FIQ handler is reporting periods as elapsed based
purely on a timer running in the CPU. This means that any clock
mismatch between the CPU and the audio subsystem can result in the
status reported to applications drifting away from the actual status
of the hardware. This is particularly likely at present since the
SSI driver is only capable of operating in slave mode so it's very
likely that the interface will be clocked from a different source.
Instead check the offset reported by the FIQ and only notify when we
have transferred at least one period, re-firing the timer if we didn't
do so. Also factor out the calculation of the timer expiry time for
make it a bit easier to experiment with.
Note that this only improves the situation, problems can still be
triggered.
- ASoC: Remove a unused variables from i.MX FIQ runtime data
- ASoC: Typo. s/Freecale/Freescale/
- ASoC: add phycore-ac97 sound support
This patch adds sound support for Phytec PhyCORE / PhyCARD
modules in AC97 mode.
- ASoC: Remove old i.MX driver code
This has been superceeded by Sascha's new driver but was not removed in
the patch series due to cutdowns for review.
- ASoC: i.MX SSI driver does not yet support master mode
The clocks for the SSI block need handling before this can work.
- ASoC: Convert new i.MX SSI driver to use static DAI array
While dynamically allocated DAIs are the way forward the core doesn't
yet support anything except matching with a pointer to the actual DAI
so convert to doing that so that machine drivers don't have to jump
through hoops to register themselves.
- ASoC: Mark new i.MX drivers as BROKEN until arch/arm merged
Currently they don't build due to cross tree dependencies, they will be
reenabled once the arch/arm side has merged.
- ASoC: Fix i.MX audio build for i.MX3x
Don't unconditionally include the i.MX2x DMA driver, the arch/arm
functions it uses aren't available for i.MX3x.
- ASoC: Add a new imx-ssi sound driver
The old driver has the number of SSI units in the system hardcoded,
does not make use of the device model and works only on i.MX21/27.
This driver replaces it. It works in DMA mode on i.MX21/27 and using
an FIQ handler on other systems. It also supports AC97 mode of
the SSI units.
- ASoC: add missing parameter to mx27vis_hifi_hw_free()
Commit 2ccafed4 added an extra parameter to the DAI .set_pll() method, but
it missed this call in sound/soc/imx/mx27vis_wm8974.c.

SoC Audio for the Atmel AT32/AT91 System-on-Chip

- ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream
This fixes a memory corruption when ASoC devices are used in
full-duplex mode. Specifically for pxa-ssp code, where this pointer
is dynamically allocated for each direction and destroyed upon each
stream start.
All other platforms are fixed blindly, I couldn't even compile-test
them. Sorry for any breakage I may have caused.
Reported-by: Sven Neumann <s.neumann@raumfeld.com>
Reported-by: Michael Hirsch <m.hirsch@raumfeld.com>
- ASoC: Change how suspend and resume obtain the PCM runtime
Currently only the atmel driver make use of snd_soc_dai.runtime field.
If the dais are to be shared among two or more dai_links, the field
must be got rid of.
So, in atmel driver reach the substream via dai_link->pcm so as to
not depend of snd_soc_dai.runtime field.
- ASoC: Pass dai_link as argument to platform suspend and resume
Passing pointer to relevant dai_link provides easier reach to the
ASoC tree in suspend/resume of snd_soc_platform. It also provides
direct access to the dai at the other end of the dai_link.

SoC Audio for the Samsung S3C24XX chips

- ASoC: S3C: I2Sv2: Segregate hw_params callback
Towards having build for multiple SoCs segregate hw_params callback
for s3c2412 and s3c64xx.
Since, all new SoCs have s3c64xx like register map, we keep that as
default implementation if no SoC specific callback is already defined.
- ASoC: S3C64XX: I2S: Make BCLK independent of sample size
For some CPU-CODEC and source clock combination we might need to set
BCLK to N*Sample_size*LRCLK, where N may be even 3 or 4, not just 2.
We can simply remove the dependency of BCLK on sample size as there
is already a callback(S3C_I2SV2_DIV_BCLK) available to set required BCLK.
- ASoC: S3C: I2Sv2: Reject immidiate register value
Towards generalizing CPU driver interface, do not accept direct field
values for the BCLK and RCLK.
The machine driver should simply request the FS-multiple and not provide
the value to be set in divide field of IISMOD.
[Confirmed by Jassi that no existing machine drivers are affected --
broonie]
- ASoC: S3C64XX: I2S: Move RATE and FMT defines to header
In order for the RATE and FMT defines to be reuseable in future by the
i2sv4 driver, move the MACROs out to the header file.
- ASoC: s3c64xx-i2s remove unncessary headers
s3c64xx-i2s remove unncessary headers
- ASoC: s3c-i2s-v2 remove unnecessary headers
s3c-i2s-v2 remove unnecessary headers
- ASoC: S3C: I2Sv2: Unify clock source IDs
Rather than having the multiple definitions of the same clocks,
define them in one common place and refer by SoC specific names.
- ASoC: S3C: I2Sv2: Add missing semicolon
Add missing semicolon after s3c2412_i2s_delay
- ASoC: Add delay information for Samsung IISv2 DAIs
Report the current FIFO depth when delay is queried. The FIFO is only
16 frames deep so the latency will be at most a couple of miliseconds
(and we tend to end up reporting zero most of the time) but it may
help some applications.
- ASoC: Fix S3C64xx IIS driver for Samsung header reorg
The reorgs of the Samsung headers have moved the GPIO bank definitions
from plat/ to mach/ - the IIS driver needs to be updated to take care
of this.
- ASoC: Fix continuation line formats
String constants that are continued on subsequent lines with \
are not good.
- ASoC: AC97: SMDK-WM9713: Convert notes from cset to sset
It's more robust when references are provided in control names
rather than numid.
- ASoC: Note jumper settings for smdk_wm9713 driver on SMDK6410
The board supports both GPIO sets for the AC97 bus and the analogue
outputs can be switched between this and the WM8580 so add some
comments saying what the setup the standard kernel expects is.
- ASoC: AC97: S3C2443: Remove unused driver
Since, we have generic AC97 controller driver and all the machines
have moved to that, there is no need for old s3c2443-ac97.c to exist.
- ASoC: AC97: LN2440SBC: Switch to s3c-ac97.c
Switch to use s3c-ac97.c AC97 controller driver.
- ASoC: AC97: SMDK2443: Switch to s3c-ac97.c
Switch to use s3c-ac97.c AC97 controller driver.
- ASoC: AC97: SMDK: Add wm9713 machine driver
This patch adds the common machine driver for SMDKs that
have a WM9713 codec attched to the AC97 controller.
- ASoC: AC97: S3C: Add controller driver
Add the AC97 controller driver for Samsung SoCs that have one.
- ASoC: S3C64XX: Compress and generalize the CPU driver
The driver can be 'generalized' a bit by not hardcoding '2'(the number of
I2Sv3 controllers that the driver can handle) at many places, instead we
define a macro for it. That makes it easier to increase number of controllers
by changing the parameter at just one place, this will be useful when there is
support for newer SoCs, which have the same controller, only more in number.
- ASoC: S3C64XX: Remove unnecessary header includes
Removed redundant header includes which make no difference to compilation.
- const: constify remaining dev_pm_ops

SoC Blackfin

- ASoC: change bf5xx-ad1938 machine driver to bf5xx-ad193x machine driver
- ASoC: bf5xx-sport: use common SPORT code for MMR info
No point in duplicating this structure layout in each driver.
- ASoC: Fix continuation line formats
String constants that are continued on subsequent lines with \
are not good.

SoC Codec AC97

- ASoC: Fix passing platform_data to ac97 bus users and fix a leak
[The issue is an attempt to write the pdata without the AC97 device
allocated when using ac97.c - also added a comment in soc-core.c for the
special case for ac97. -- broonie]
- ASoC: fixup oops in generic AC97 codec glue
Initialize the glue by calling snd_soc_new_ac97_codec() as is done
in other ASoC AC97 codecs. Fixes an oops caused by dereferencing
uninitialized members in snd_soc_new_pcms().
Run-tested on Au1250.

SoC Codec AD1836

- ASoC: ad1836: use soc-cache framework for codec registers access
- ASoC: ad1836: reset and restore clock control mode in suspend/resume entry
tests show frequent suspend/resume(frequent poweroff/on ad1836 internal
components) maybe make ad1836 clock mode wrong sometimes after wakeup.
This patch reset/restore ad1836 clock mode while executing PM, then
ad1836 can always resume to right clock status.
- sound: Revert "ASoC: ad1836: reset and restore clock control mode in suspend/resume entry"
This reverts commit afe1c2cd71eb4e0fade720b5709722e7124f29c0 since it
doesn't build.
- ASoC: ad1836: reset and restore clock control mode in suspend/resume entry
Tests show frequent suspend/resume(frequent poweroff/on ad1836 internal
components) maybe make ad1836 clock mode wrong sometimes after wakeup.
This patch reset/restore ad1836 clock mode while executing PM, then
ad1836 can always resume to right clock status.

SoC Codec AD1938

- ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9
- ASoC: ad1938: use soc-cache framework for codec registers access
- ASoC: ad1938: let soc-core dapm handle PLL power
PM architecture of ad1938 is simple, we don't need a bundle of functions like
ad1938_pll_powerctrl, ad1938_set_bias_level for only PLL. A dapm supply will
handle on/off of PLL.
Since soc-core can poweron/off PLL on-demand, we don't need to poweron/off PLL
in suspend/resume entries too.
- ASoC: ad1938: fix typo, rename mask to rx_mask for ad1938_set_tdm_slot

SoC Codec AD193X

- ASoC: update for removeal of slab.h from percpu.h
- ASoC: ad193x: move codec register/unregister to bus probe/remove
The way i've factored out the bus probe and removal functions so
that there's no code in the individual I2C and SPI functions means
that the register() and unregister() functions could just be squashed
into the bus_probe() and bus_remove() functions.
- ASoC: Unexport AD193x bus probe/remove functions
The export is not needed since the per-bus code lives in the same
module.
- ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9

SoC Codec AK4104

- ASoC: fix ak4104 register array access
Don't touch the variable 'reg' to construct the value for the actual SPI
transport. This variable is again used to access the driver's register
cache, and so random memory is overwritten.
Compute the value in-place instead.
- ASoC: ak4104: allow more sample rates
The transmitter supports all sample rates up to 192KHz, so the driver
should not give a limit.

SoC Codec AK4642

- ASoC: ak4642: Add enhanced sampling rate
- ASoC: ak4642: Add set_fmt function for snd_soc_dai_ops
- ASoC: ak4642: Add pll select support
Current ak4642 was not able to select pll.
This patch add support it.
It still expect PLL base input pin is MCKI.
see Table 5 "setting of PLL Mode" of datasheet
- ASoC: ak4642: Add default return value in ak4642_modinit
If ak4642 driver was compiled without I2C configs,
ak4642_modinit return value will become un-stable.
This patch modify this bug
Reported-by: Magnus Damm <damm@opensource.se>

SoC Codec CQ0093 Voice

- ASoC: update gfp/slab.h includes
Implicit slab.h inclusion via percpu.h is about to go away. Make sure
gfp.h or slab.h is included as necessary.
- ASoC: DaVinci: CQ93VC Voice Codec
Currently the DM365 is the only SoC that includes this Voice Codec.

SoC Codec CS4270

- ASoC: cs4270: enable regulators at probe time
Enable the bulk regulators at probe time so we can safely disable them
again when going to suspend without confusing the reference counter.
- ASoC: cs4270: allow passing freq=0 in set_dai_sysclk()
For setups with variable MCLKs, the current logic of limiting the
available sampling rates at startup time is not sufficient. We need to
be able to change the setting at a later point, and so the codec must
offer all possible rates until the hw_params are given.
This patches allows that by passing 0 as 'freq' argument to
cs4270_set_dai_sysclk().
- ASoC: Add regulator support to CS4270 codec driver

SoC Codec DA7210

- ASoC: da7210: Add 11025/22050/44100/88200 rate support
This driver USE PLL for 11025/22050/44100/88200 rate.
To enable switching to bypass mode, PLL is always turned on.
Special thanks to Phil
- ASoC: da7210: Add 8/12/16/24/32/48/96 kHz rate support
- ASoC: Add missing __devexit and __devinit annotations
- ASoC: Fix build of DA7210
DAC_VOICE_EN was not defined - looks to have been overly enthusiastically
deleted from a previous revision of the patch, pull the value from v1.
- ASoC: Add DA7210 codec device support for ALSA
This original driver was created by Dialog Semiconductor,
and cleanuped by Kuninori Morimoto.
Special thanks to David Chen.
This became very simple ASoC codec driver,
and it is tested by EcoVec24 board.

SoC Codec Philips UDA1380

- bitops: rename for_each_bit() to for_each_set_bit()
Rename for_each_bit to for_each_set_bit in the kernel source tree. To
permit for_each_clear_bit(), should that ever be added.
The patch includes a macro to map the old for_each_bit() onto the new
for_each_set_bit(). This is a (very) temporary thing to ease the migration.
[akpm@linux-foundation.org: add temporary for_each_bit()]
Suggested-by: Alexey Dobriyan <adobriyan@gmail.com>
Suggested-by: Andrew Morton <akpm@linux-foundation.org>

SoC Codec SSM2602

- ASoC: SSM2602: add SND control for mic boost2 and default it to off

SoC Codec STAC9766

- ASoC: Fix disable of SPDIF on STAC9766 codec
Change code so that switching to playing music through the analog output
disables SPDIF out instead of disabling it when stream ends.

SoC Codec TLV320AIC23

- ASoC: AIC23: Fixing writes to non-existing registers in resume function
Commit e9ff5eb2 (Fixing infinite loop in resume path) uses wrong AIC23
register in resume function because of which register writes happen
on some non-existing registers.

SoC Codec TLV320AIC3X

- ASoC: Fix variable shadowing warning in TLV320AIC3x
- ASoC: PLL computation in TLV320AIC3x SoC driver
fix precision of PLL computation for TLV320AIC3x SoC driver,
test results are at http://pmeerw.net/clk

SoC Codec TLV320DAC33

- ASoC: tlv320dac33: Internal clocking changes
During validation of the internal clocking setup it has
been found that the following settings were not configured
in an optimal way:
ASRC_CTRL_A: SRCLKDIV was incorrect, instad of divide ratio 3,
ratio of 2 has to be used (as the comment stated)
DAC_CTRL_A: Fs = Fsref is the desired configuration instead of
Fs = Fsref / 1.5
- ASoC: tlv320dac33: Fix DSP modes
To make DSP_A mode working correctly the data delay should be
configured to 0. DSP_B mode thus can not be used with DAC33,
so remove it.
- ASoC: tlv320dac33: Add option for keeping the BCLK running
Platform data option for the codec to keep the BCLK clock
continuously running in FIFO modes (codec master).
OMAP3 McBSP when in slave mode needs continuous BCLK running
on the serial bus in order to operate correctly.
Since in FIFO mode the DAC33 can also shut down the BCLK clock
and enable it only when it is needed, let the platforms decide
if the CPU side needs the BCLK running or not.
- ASoC: tlv320dac33: Start/stop sequence change
To avoid race condition especially in FIFO modes the
sequence for enabling and disabling the codec need to
be changed.
- ASoC: tlv320dac33: Correct the OSCSET calculation
OSCSET calculation was not correct in case of 44.1KHz
sampling rate.
With small adjustment both 48 and 44.1 KHz calculation
now gives the correct value.
- ASoC: tlv320dac33: Clearing FIFOFLUSH flag before playback
In repeated playback the FIFOFLUSH bit remained set, and
never has been cleared.
Clear it during the setup phase.
- ASoC: tlv320dac33: Burst mode BCLK divider configuration
Add possibility to configure the burst mode BCLK divider through platform
data structure.
The BCLK divider changes the actual speed of the serial bus in burst mode,
which is faster than the sampling frequency of the running stream.
In this way platforms can experiment with the optimal burst speed without
the need to modify the codec driver itself.
- ASoC: tlv320dac33: BCLK divider fix
The BCLK divider was not configured in case of mode7.
This leads to unpredictable behavior when switching between FIFO modes.
Configure the BCLK divider depending on the fifo_mode (FIFO is in use,
or FIFO bypass).
- ASoC: tlv320dac33: Correct the prefill number of samples
Set the prefill number of samples as the same as the lower
threshold in mode7.
In this way the codec will read the same amount of data on
startup and during the running playback.
- ASoC: Add missing __devexit and __devinit annotations
- ASoC: tlv320dac33: Safety check for codec slave mode
The currently available FIFO modes (mode1 and mode7) require master
mode from the codec.
Do not allow the slave configuration when the FIFO is in use.
- ASoC: tlv320dac33: Add new FIFO mode: mode 7
Mode 7 of tlv320dac33 operates in the following way:
The codec is in master mode.
Host configures upper and lower thresholds in tlv320dac33
During playback the codec will clock in the data until the
upper threshold is reached in FIFO. At this point the codec
stops the colocks on the serial bus.
When the FIFO fill is reaching the lower threshold limit the
codec will enable the clocks on the serial bus, and clocks
in data till the upper threshold is reached.
In this mode, we can also request interrupts for threshold
events (upper, lower and alarm), which could be used for
power management.
At this point the interrupts are not enabled for this mode,
but it can be taken into use in the future, when the surrounding
code makes it possible to use it.
- ASoC: tlv320dac33: Clean up the hardware configuration code
Use switch instead of if statements to configure FIFO bypass
and mode1.
With this change adding new FIFO mode is going to be easier,
and cleaner.
- ASoC: tlv320dac33: Introduce prefill and playback state handlers
Ensure that the code is going to be readable, when new FIFO modes
are introduced later.
Move the prefill and playback state handling to inlined
functions.
- ASoC: tlv320dac33: Change nsample switch to FIFO mode enum
In order to have support for more FIFO modes supported by
tlv320dac33, the switch for enabling/disabling the FIFO
use has to be replaced with an enum.
- ASoC: tlv320dac33: Add support for regulator framework
Take the regulator framework in use for managing the power sources.

SoC Codec TPA6130A2

- ASoC: Add missing __devexit and __devinit annotations
- ASoC: tpa6130a2: Support for tpa6140's regulators
tpa6140a2 uses different names for the regulators.
- ASoc: tpa6130a2: Remove unnecessary variable
- ASoC: tpa6130a2: Add support for regulator framework
Take the regulator framework in use for managing the power sources

SoC Codec TWL4030

- ASoC: TWL4030: PM fix for output amplifiers
Gain controls on outputs affect the power consumption
when the gain is set to non 0 value.
Outputs with amps have one register to configure the
routing and the gain:
PREDL_CTL (0x25):
bit 0: Voice enable
bit 1: Audio L1 enable
bit 2: Audio L2 enable
bit 3: Audio R2 enable
bit 4-5: Gain (0x0 - power down, 0x1 - 6dB, 0x2 - 0dB, 0x3 - -6dB)
bit 0 - 3: is handled in DAPM domain (DAPM_MIXER)
bit 4 - 5: has simple volume control
If there is no audio activity (BIAS_STANDBY), and
user changes the volume, than the output amplifier will
be enabled.
If the user changes the routing (but the codec remains in
BIAS_STANDBY), than the cached gain value also be written
to the register, which enables the amplifier.
The existing workaround for this is to have virtual
PGAs associated with the outputs, and whit DAPM PMD
the gain on the output will be forced to 0 (off) by
bypassing the regcache.
This failed to disable the amplifiers in several
scenario (as mentioned above).
Also if the codec is in BIAS_ON state, and user modifies
a volume control, which path is actually not enabled, than
that amplifier will be enabled as well, but it will
be not turned off, since there is no DAPM path, which
would make mute it.
To prevent amps being enabled, when they are not
needed, introduce the following workaround:
Track the state of each of this type of output.
In twl4030_write only allow actual write, when the
given output is enabled, otherwise only update
the reg_cache.
The PGA event handlers on power up will write the cached
value to the chip (restoring gain, routing selection).
On power down 0 is written to the register (disabling
the amp, and also just in case clearing the routing).
- ASoC: TWL4030: Use codec defaults for Headset initial configuration
Disable the amplifiers for the headset outputs, and do not select
routings by default to the headset outputs.
- ASoC: TWL4030: Add supply for audio serial interface control
The serial interface (TDM/I2S) for the audio block have been
constantly enabled.
Introduce a new DAPM_SUPPLY for handling the AIF_EN bit, so
the interface is only enabled, when there is a need for it.
For example when only the analog loopback is enabled, there
is no need to keep the serial interface active.
I have added the persons who contributed to the Voice path
of twl4030 codec driver, so they might have the ability
to test this patch, and send an update for the Voice path,
if it is necessary
- ASoC: TWL4030: Module unloading fix
The module unloading path had several problems:
- it freed up the private structure twice
- it freed up the codec structure, which was allocated as part
of the private structure
- it did not freed up the reg_cache
- it did not unregistered the dais and the codec
- ASoC: TWL4030: Modify codec default settings
Change the legacy default register configuration, which left some
internal components on.
Now we have either DAPM, or other ways to control these bits,
so there is no need to enable them by default.
The affected parts:
Disable ADCL and ADCR
Disable ARXL2 and ARXR2 analog PGA (playback)
Disable APLL by default
- ASoC: TWL4030: Fix typo in comment in header file
- ASoC: TWL4030: Replace comma with semicolon in probe function
The codec structure initialization statements should be
separated by semicolons.
- mfd: Rename all twl4030_i2c*
This patch renames function names like twl4030_i2c_write_u8,
twl4030_i2c_read_u8 to twl_i2c_write_u8, twl_i2c_read_u8
and also common variable in twl-core.c
- mfd: Rename twl4030* driver files to enable re-use
The upcoming TWL6030 is companion chip for OMAP4 like the current TWL4030
for OMAP3. The common modules like RTC, Regulator creates opportunity
to re-use the most of the code from twl4030.
This patch renames few common drivers twl4030* files to twl* to enable
the code re-use.

SoC Codec TWL6040

- ASoC: Fix file permission of soc/codecs/twl6040.c
- ASoC: TWL6040: use of kzalloc/kfree requires the include of slab.h
- ASoC: TWL6040: Add twl6040 codec driver
Initial version of TWL6040 codec driver.
The TWL6040 codec uses a proprietary PDM-based digital audio interface.
Audio paths supported are:
- Input: Main Mic, Sub Mic, Headset Mic, Auxiliary-FM Left/Right
- Output: Headset Left/Right, Handsfree Left/Right
TWL6040 codec supports power-up/down manual and automatic sequence.
Manual sequence is done through a specific register writes sequence.
Automatic sequence is done when the codec is powered-up through the
external AUDPWRON line. The completion of the sequence is signaled
through the audio interrupt.
TWL6040 codec sysclk can be provided by: low-power or high
performance PLL:
- The low-power PLL takes a low-frequency input at 32,768 Hz and
generates an approximate of 17.64 or 19.2 MHz (for 44.1 KHz and 48 KHz
respectively)
- The high-performance PLL generates an exact 19.2 MHz clock signal
from high-frequency input at 12/19.2/26/38.4 MHz.
Low-power playback mode is a special scenario where only headset path
(headset DAC and driver) is active.
For the particular case of headset path, PLL being used defines the
headset power mode: low-power, high-performance.

SoC Codec WM2000

- ASoC: Add WM2000 driver
The WM2000 is a low power, high quality handset receiver speaker
driver with Wolfson myZone™ Ambient Noise Cancellation (ANC). It
provides enhanced voice communication quality in a noisy environment
if the handset acoustics are designed appropriately.

SoC Codec WM8350

- ASoC: Allow disabling of WM835x jack detection
If no report is specified then disable detection. Note that we don't
disable the slow clock, though the power consumption from it should
be negligable. That should be reference counted, ideally through DAPM.
- ASoC: Move WM8350 microphone detection bias managment out of driver
Allow machines to control exactly when the bias is turned on and off.
- ASoC: Implement WM835x microphone jack detection support
The WM8350 provides microphone presence and short circuit detection.
Integrate this with the ASoC jack reporting API.
- mfd: Update WM8350 drivers for changed interrupt numbers
The headphone detect and charger are using the IRQ numbers so need
to take account of irq_base with the genirq conversion. I obviously
picked the wrong system for initial testing.
- mfd: Add a data argument to the WM8350 IRQ free function
To better match genirq.
- ASoC: Fix WM8350 DSP mode B configuration
We need to set the LRCLK inversion bit to select DSP mode.
- mfd: Mask and unmask wm8350 IRQs on request and free
Bring the WM8350 IRQ API more in line with the generic IRQ API by
masking and unmasking interrupts as they are requested and freed.
This is mostly just a case of deleting the mask and unmask calls
from the individual drivers.
The RTC driver is changed to mask the periodic IRQ after requesting
it rather than only unmasking the alarm IRQ. If the periodic IRQ
fires in the period where it is reqested then there will be a
spurious notification but there should be no serious consequences
from this.
The CODEC drive is changed to explicitly disable headphone jack
detection prior to requesting the IRQs. This will avoid the IRQ
firing with no jack set up.
- mfd: Convert wm8350 IRQ handlers to irq_handler_t
This is done as simple code transformation, the semantics of the
IRQ API provided by the core are are still very different to those
of genirq (mainly with regard to masking).

SoC Codec WM8510

- ASoC: fix params_rate() macro use in several codecs
Sevelar ASoC codec drivers wrongly assume, that the params_rate() macro
returns one of SNDRV_PCM_RATE_* defines instead of the actual numerical
sampling rate. Fix them.

SoC Codec WM8727

- ASoC: Register the CODEC in WM8727

SoC Codec WM8731

- ASoC: Use SNDRV_PCM_RATE_8000_96000 macro for WM8731
- ASoC: Only restore non-default registers for WM8731

SoC Codec WM8750

- ASoC: WM8750: Convert to new API
Register the WM8750 as a SPI or I2C device. This patch mostly shuffles code
around. Hugely inspired by WM8753 which was already converted.
Also, this patch fixes the Jive and Spitz machine.
- ASoC: Refresh WM8750 bias management
The WM8750 is using some delayed work to manage the ramping of the bias
at startup and resume out of line from the normal flow. This predates
the support within ASoC core for moving the resume out of line from the
main system resume which provides equivalent functionality with better
interaction with applications. Change to doing the ramp in line to make
use of the core functionality.
- ASoC: Remove version display from WM8750

SoC Codec WM8753

- ASoC: Remove unneeded suspend checks from CODEC drivers
Better integration of the core with the device model means that we now
no longer get the ASoC suspend and resume callbacks without the card
having been set up.

SoC Codec WM8776

- ASoC: Only restore non-default registers for WM8776

SoC Codec WM8900

- ASoC: Correct code taking the size of a pointer
sizeof(codec->reg_cache) is just the size of the pointer. Elsewhere in the
file, codec->reg_cache is used with sizeof(wm8900_reg_defaults), so the
code is changed to do the same here.
A simplified version of the semantic patch that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
expression *x;
expression f;
type T;
@@
*f(...,(T)x,...)
// </smpl>

SoC Codec WM8903

- ASoC: Allow WM8903 mic detect disable and don't force bias on
Don't force enable the microphone bias on WM8903 when doing jack
detection, and don't force enable microphone bias. This allows
platforms to only enable microphone detection when a jack has been
inserted.
- ASoC: Implement interrupt driven microphone detection for WM8903
Support use of the WM8903 IRQ for reporting of microphone presence
and short detection.
- ASoC: Add WM8903 interrupt support
Currently used to detect completion of the write sequencer.
- ASoC: Initial WM8903 microphone bias and short detection
Provide support for WM8903 microphone presence and short detection
using the GPIOs to route out a logic signal suitable for handling
using snd_soc_jack_add_gpios() on the processor GPIOs.
- ASoC: Add GPIO configuration support for WM8903
Allow users to pass in a default configuration for the GPIOs of
the WM8903 as platform data. This allows configuration of the pin
muxing of the device.
- ASoC: fix a memory-leak in wm8903
Remember to free the temporary register-cache.

SoC Codec WM8904

- ASoC: Support GPIO based microphone detection for WM8904
The WM8904 allows microphone detection signals to be brought out as
alternate functions of the GPIO signals which can be detected using
interrupt inputs on the CPU. Allow this to be configured using
platform data.
- ASoC: Allow configuration of WM8904 GPIO pin functions
Provide platform data allowing the configuration of the GPIO pins
on the WM8904 to be selected, allowing alternate functions to be
enabled.
- ASoC: Add WM8912 DAC support
The WM8912 is a DAC only device register compatible with the WM8904
CODEC with ADC portions omitted. Support it within the WM8904 driver
based on the configured I2C device name.
- ASoC: Optimise WM8904 output stage power control
Handle the output PGAs as part of the output powerup since they can
never be powered separately and reorder things so that we remove the
output shorts after both line and headphone outputs have been brought
up, minimising the opportunity for any issues.
- ASoC: Add support for BIAS_OFF when idle to WM8904
As well as disabling the biases of the CODEC the drop into BIAS_OFF will
also disable all the regulators powering the CODEC, allowing even greater
power savings on appropriately configured systems.
Since the regulator API does not currently provide notification when
regulators are disabled we assume that this always happens when we stop
using the regulators. Once 2.6.34 is merged this code can be optimised
to only sync the cache when power was actually removed.
- ASoC: Host clock2 read up in WM8904 FLL configuration
Avoids skipping over the read for disable cases.
- ASoC: Set AIF word length for WM8904
- ASoC: Initial WM8904 CODEC driver
The WM8904 is a high performance ultra-low power stereo CODEC
optimised for portable audio applications, with features including
a class W amplifier, FLL with free running mode, Mobile ReTune and
ground referenced headphone and line outputs.
Support for some features, most particularly the digital microphone
interface, is not yet present.

SoC Codec WM8940

- ASoC: fix params_rate() macro use in several codecs
Sevelar ASoC codec drivers wrongly assume, that the params_rate() macro
returns one of SNDRV_PCM_RATE_* defines instead of the actual numerical
sampling rate. Fix them.

SoC Codec WM8955

- ASoC: Add initial WM8955 CODEC driver
The WM8955 is a low power, high quality stereo DAC with integrated
headphone and loudspeaker amplifiers, designed to reduce external
component requirements in portable digital audio applications. This is
an initial driver implementing support for the majority of the
functionality in the device, currently OUT3 is not supported.

SoC Codec WM8960

- ASoC: Add support for WM8960 capless mode
The WM8960 headphone outputs can be run in capless mode with OUT3
used to drive a pseudo ground for the headphone drivers. In this
mode the mono mixer is not used, the mixer should be turned on
in concert with the headphone output drivers and the device bias
levels are managed differently.
Also tweak the existing bias management to remove the use of active
discharge while we're at it since that's often audible.
- ASoC: Move WM8960 platform data into include/sound
Avoids machine files having to peer into sound/soc which is a bit
rude and icky.
- ASoC: Prettify wm8960 logging
The driver name gets used by dev_() logging so use something a bit
more idiomatic.

SoC Codec WM8961

- ASoC: Only restore non-default registers for WM8961

SoC Codec WM8974

- ASoC: clean up wm8974 and wm8978 clock divider handling
wm8974 and wm8978 codec drivers control DAC and ADC oversampling rates in their
.set_clkdiv() methods, which is wrong, because these are simple boolean
switches and not clock dividers. Move these bits to sound controls. Also remove
manual configuration of the MCLK divider in wm8978, since it is configured
automatically.
- ASoC: fix params_rate() macro use in several codecs
Sevelar ASoC codec drivers wrongly assume, that the params_rate() macro
returns one of SNDRV_PCM_RATE_* defines instead of the actual numerical
sampling rate. Fix them.
- ASoC: wm8974: fix a wrong bit definition
The wm8974 datasheet defines BUFIOEN as bit 2.

SoC Codec WM8978

- ASoC: improve MCLKDIV calculation in wm8978, when OPCLK is not used
In case, if OPCLK is not used, and PLL is used for driving the codec, the
choice of PLL output frequency could result in a needlessly imprecise
system clock frequency. Use an iterative process to select a precise
configuration.
- ASoC: clean up wm8974 and wm8978 clock divider handling
wm8974 and wm8978 codec drivers control DAC and ADC oversampling rates in their
.set_clkdiv() methods, which is wrong, because these are simple boolean
switches and not clock dividers. Move these bits to sound controls. Also remove
manual configuration of the MCLK divider in wm8978, since it is configured
automatically.
- ASoC: remove bogus SLEEP mode from wm8978 driver
Tests showed, that bit 6 of the WM8978_POWER_MANAGEMENT_2 register of wm8978
affects codec clocks. Being useless for suspend / resume, it cannot be used in
bias-level control either. Remove this bit handling.
- ASoC: add a WM8978 codec driver
The WM8978 codec from Wolfson Microelectronics is very similar to
wm8974, but is stereo and also has some differences in pin configuration
and internal signal routing. This driver is based on wm8974 and takes
the differences into account.

SoC Codec WM8990

- tree-wide: Assorted spelling fixes
In particular, several occurances of funny versions of 'success',
'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address',
'beginning', 'desirable', 'separate' and 'necessary' are fixed.
- ASoC: Remove unneeded suspend checks from CODEC drivers
Better integration of the core with the device model means that we now
no longer get the ASoC suspend and resume callbacks without the card
having been set up.

SoC Codec WM8993/4

- ASoC: Don't use DCS_DATAPATH_BUSY for WM hubs devices
The DCS_DATAPATH_BUSY bit used to monitor the completion of DC servo
operations has been deprecated and with some more recente revisions
may perform incorrectly, especially when only analogue bypass paths
are in use. Switch to using readback from the DC servo command
register instead, which is supported for all devices. Without this
unacceptably long timeouts may be observed in some circumstances.
- ASoC: Don't do runtime wm_hubs DC servo updates if using offset correction
If we need to offset correct the DC servo then don't use runtime
recalibration since that is likely to introduce further offsets
which will be evident on powerdown.
- ASoC: Support second DC servo readback method for wm_hubs
More recent Wolfson hubs devices add the ability to read back the DC
servo calibration information from the register used to write offsets,
and later still ones remove the old readback registers. Add support
for the new scheme, and use it for WM8994 device revisions that
support it.
- ASoC: Avoid wraparound in wm_hubs DC servo correction
If the correction wraps around then a substantial offset would be
introduced.
- ASoC: Bail out of wm_hubs DC servo if calibration fails
We're keeping track of the number of times we've iterated but never
actually using this to bail out if the chip looks stuck.
- ASoC: Disable WM8993 regulators when turning bias off
While the regulators are disabled we cache all register writes.
Currently we assume that the regulator disable actually takes
effect, after the merge with the regulator tree in 2.6.34 the
regulator API will be able to notify us if the power is actually
removed (due to constraints or regulator sharing it may not be).
- ASoC: Initial WM8993 regulator API hookup
At the minute the regulators are simply enabled for the entire
lifetime of the device.
- ASoC: Convert WM8993 to use shared cache I/O code
Saves a little bit of code duplication.
- ASoC: Activate DCS correction for WM8993
Use a two code correction for optimal performance.
- ASoC: Improved wm_hubs headphone handling
Perform DC servo offset calibration using a series update sequence
rather than startup update sequence, tuning the configuration of the
WM8993 DC servo to make best use of this.
Also introduce currently unused data allowing us to correct for
any systematic errors in the DC servo calibration results and an
alternative startup path for the headphone output which performs
better with some chip revisions. The alternative setup sequence is
enabled for WM8993.
- ASoC: Use BIAS_OFF when idle for wm_hubs devices
This provides a small power saving when audio is inactive.
- ASoC: Implement suspend and resume for WM8993

SoC Codec WM8994

- Add soc/codecs/wm8994.c build stub
- ASoC: Implement interrupt based WM8994 microphone detection
Support interrupt based microphone bias detection. The WM8994 has two
microphone bias supplies, with detection supported on both. Detection
using GPIOs together with the standard GPIO based jack framework is
already supported via the platform data for the WM8994 core driver.
Note that as well as the microphone bias itself the system clock and
whichever AIF clock is supplying the system clock will need to be
enabled for detection to function.
- ASoC: Only do WM8994 bias off transition from standby
Otherwise we may try to power down multiple times when the using
idle bias off and the driver is removed.
- ASoC: Support second DC servo readback method for wm_hubs
More recent Wolfson hubs devices add the ability to read back the DC
servo calibration information from the register used to write offsets,
and later still ones remove the old readback registers. Add support
for the new scheme, and use it for WM8994 device revisions that
support it.
- ASoC: wm8994: playback => capture
Sparse caught that initialize "playback" two times instead of
initializing "capture".
- ASoC: Implement WM8994 DAI tristate support
This also adds the first DAI operation for AIF3 so fill out the ID and
the ops for that too.
- ASoC: Fix BCLK calculation of WM8994
This fixes BCLK calculation and removes unnecessary check code.
- ASoC: Add WM8994 CODEC driver
The WM8994 is a highly integrated ultra-low power hi-fi audio subsystem
designed for smartphones and other portable devices rich in multimedia
features. It provides advanced digital mixing facilities enabling low
power high quality interconnection of CPU, baseband and other audio
sources through flexible digital and analogue routing, and integrates
a class W headphone driver and stereo class D speaker drivers.

SoC Codec WM9712

- ASoC: Do not write to invalid registers on the wm9712.
This patch fixes a bug where "virtual" registers were being written to the ac97
bus. This was causing unrelated registers to become corrupted (headphone 0x04,
touchscreen 0x78, etc).
This patch duplicates protection that was included in the wm9713 driver.

SoC Codec WM9713

- ASoC: Add TLV information and additional volumes to WM9713
Also renames a few things to make volumes and switches match up in
alsamixer.
- ASoC: Remove version display from WM9713
The version isn't being updated or used, the kernel revision
tracking is enough.

SoC DaVinci

- ASoC: update gfp/slab.h includes
Implicit slab.h inclusion via percpu.h is about to go away. Make sure
gfp.h or slab.h is included as necessary.
- ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream
This fixes a memory corruption when ASoC devices are used in
full-duplex mode. Specifically for pxa-ssp code, where this pointer
is dynamically allocated for each direction and destroyed upon each
stream start.
All other platforms are fixed blindly, I couldn't even compile-test
them. Sorry for any breakage I may have caused.
Reported-by: Sven Neumann <s.neumann@raumfeld.com>
Reported-by: Michael Hirsch <m.hirsch@raumfeld.com>
- sound: DaVinci: DM365: Voice Codec support for the DM365 EVM
The DM365 EVM has two codecs: the Audio Codec (AIC3x) and the Voice Codec,
the idea is to have both enabled in the same kernel simultaneously. However,
the current soc-core doesn't support simultaneous codecs, once that
support will have added, a patch will be posted to enable both codecs in
the DM365 EVM.
- ASoC: DaVinci: Voice Codec Interface
This patch adds the support for the interface needed by the DaVinci
Voice Codec CQ93VC.
- ASoC: DaVinci: Add hw_param callback for S/PDIF DIT link
On TI DM6467 EVM, S/PDIF DIT codec fails to open as it is unable to install
hardware params. This dummy codec has no set_fmt and set_sysclk implementations
and calls from the application to these functions cause errors. This patch adds
a new hardware params callback function for S/PDIF transciever codec.
Tested-by: Anuj Aggarwal <anuj.aggarwal@ti.com>
- ASoC: DaVinci: Fix stream restart error
Sometimes after a suspend-resume cycle, the ALSA application
restarts the stream when resume fails and McASP fails to work
as the clock is not enabled. This patch corrects this bug.
Testes on TI DA850/OMAP-L138 EVM.
- ASoC: DaVinci: Update suspend/resume support for McASP driver
Add clock enable and disable calls to resume and suspend respectively.
Also add a member to the audio device data structure which tracks the clock
status.
Tested on DA850/OMAP-L138 EVM. For the purpose of testing, the patches[1] which
add suspend-to-RAM support to DA850/OMAP-L138 SoC were applied.
[1] http://linux.davincidsp.com/pipermail/davinci-linux-open-source/
2009-November/016958.html

SoC Dynamic Audio Power Management

- ASoC: Allow force enabled pins to be disabled
Some systems, such as those with mechanical jack detection, may wish
to force enable a pin (typically mic bias) only some of the time.
Support such systems by having disable_pin() also coveer force enabled
pins.
- ASoC: Remove current PGA control handling
A code audit reveals that there are currently no users of the widget
controls on PGAs. This is likely to continue to be the case since
while there are useful things that can be done with integrating the
PGA gain and mute controls with the power sequencing userspace
generally wants stereo controls for output stages which this doesn't
map onto well.
In preparation for implementing something more useful strip out the
existing code, leaving the parameters there for use by the new code.
- ASoC: Allow pins to be force enabled
Allow pins to be forced on regardless of their power state. This is
intended for use with microphone bias supplies which need to be
enabled in order to support microphone detection - in systems without
appropriate hardware leaving the microphone unbiased when not in use
saves power.
The force done at power check time in order to avoid disrupting other
power detection logic.
- ASoC: Remove unused 'muted' flag from DAPM widgets
- ASoC: Improve DAPM pop_wait delays
Currently during pop/click debug we're inserting a delay both after
every log message we generate and at explicit points in the sequence,
slowing things down even further than they need to be especially when
many writes get coalesced by the sequence generation code.
Remove the per-printk delay and ensure that we have explicit delays
where we say we want them.
- ASoC: Remove unused pmdown_time flag
The flag is no longer used in the code so it just wastes a bit.
- ASoC: add simplified versions of widget macros
Many macros from include/sound/soc-dapm.h take an array and a number of
elements in it as arguments, whereas most users use static arrays and use
"x, ARRAY_SIZE(x)" as arguments. This patch adds simplified versions of
those macros, calling ARRAY_SIZE() internally.
- ASoC: Support turning off bias when the CODEC is idle
Currently ASoC always maintains the bias of the CODEC while the system
is active. With older mobile CODECs this is required since the outputs
are referenced to a non-zero voltage and enabling or disabling this
voltage without audible pops or clicks in the output takes too long to
do when starting or stopping audio.
As a result of features such as ground referenced outputs and class D
speaker drivers current generation devices are able to power on and off
much more quickly without these system level issues so provide a new
flag idle_bias_off in snd_soc_codec which will cause the core to turn
off the CODEC bias. The distinction between STANDBY and OFF is still
maintained. This is partly for consistency but also allows for
potential future extensions such as per-machine overrides or deferring
the bias removal.
- ASoC: Remove console DAPM debug code
The same information is now visible via debugfs and with large modern
devices dumping everything to the console can be very resource
intensive, causing more harm than good.
- ASoC: Sort DAPM sequences by CODEC as well
In preparation for multiple device support.
- ASoC: Push registers out of mixer power decision
No need for the mixers to know about this, and it allows for virtual
controls.
- ASoC: Display the power register in DAPM widget debugfs
Make it a bit easier to tie DAPM widgets in with the register map
without referring to the source by including the register location
controlled by the widget.

SoC Freescale

- of: add 'of_' prefix to machine_is_compatible()
machine is compatible is an OF-specific call. It should have
the of_ prefix to protect the global namespace.

SoC Layer

- Fix soc/soc-core.patch
consitify patch caused conflicts.
- ALSA: alsa-kmirror tree & linux-2.6 tree sync 2010-04-16 (merging issues)
- ASoC: Fix passing platform_data to ac97 bus users and fix a leak
[The issue is an attempt to write the pdata without the AC97 device
allocated when using ac97.c - also added a comment in soc-core.c for the
special case for ac97. -- broonie]
- ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream
This fixes a memory corruption when ASoC devices are used in
full-duplex mode. Specifically for pxa-ssp code, where this pointer
is dynamically allocated for each direction and destroyed upon each
stream start.
All other platforms are fixed blindly, I couldn't even compile-test
them. Sorry for any breakage I may have caused.
Reported-by: Sven Neumann <s.neumann@raumfeld.com>
Reported-by: Michael Hirsch <m.hirsch@raumfeld.com>
- ASoC: Add a notifier for jack status changes
Some systems provide both mechanical and electrical detection of jack
status changes. On such systems power savings can be achieved by only
enabling the electrical detection methods when physical insertion has
been detected.
Begin supporting such systems by providing a notifier for jack status
changes which can be used to trigger any reconfiguration.
- ASoC: remove a card from the list, if instantiation failed
If instantiation of a card failed, we still have to remove it from the
card list on unregistration. This fixes an Oops on Migo-R, triggering,
when after a failed firmware load attempt the driver modules are removed
and re-inserted again.
- ASoC: rename ad1938 to ad193x and add support for ad1936/7/8/9
- ASoC: TWL6040: Add twl6040 codec driver
Initial version of TWL6040 codec driver.
The TWL6040 codec uses a proprietary PDM-based digital audio interface.
Audio paths supported are:
- Input: Main Mic, Sub Mic, Headset Mic, Auxiliary-FM Left/Right
- Output: Headset Left/Right, Handsfree Left/Right
TWL6040 codec supports power-up/down manual and automatic sequence.
Manual sequence is done through a specific register writes sequence.
Automatic sequence is done when the codec is powered-up through the
external AUDPWRON line. The completion of the sequence is signaled
through the audio interrupt.
TWL6040 codec sysclk can be provided by: low-power or high
performance PLL:
- The low-power PLL takes a low-frequency input at 32,768 Hz and
generates an approximate of 17.64 or 19.2 MHz (for 44.1 KHz and 48 KHz
respectively)
- The high-performance PLL generates an exact 19.2 MHz clock signal
from high-frequency input at 12/19.2/26/38.4 MHz.
Low-power playback mode is a special scenario where only headset path
(headset DAC and driver) is active.
For the particular case of headset path, PLL being used defines the
headset power mode: low-power, high-performance.
- ASoC: soc-cache: let reg be AND'ed by 0xff instead of data buffer for 8_8 mode
The registers for AD193X are defined as 0x800-0x810 for spi which uses
16_8 mode, for i2c to support AD1937, we will use 8_8 mode, only the low
byte of 0x800-0x810 is valid. The patch will not destory other codecs,
but make soc cache interface more useful.
- ASoC: soc-cache: add i2c read entry for 8_8 mode
- ASoC: DaVinci: CQ93VC Voice Codec
Currently the DM365 is the only SoC that includes this Voice Codec.
- ASoC: PCM_RATE: Check for KNOT and CONTINUOUS flags
For ASoC, if either CPU or CODEC driver has set the flag, the MACHINE driver
should be given a chance to figure out if the dai, that set the flag, can
accomodate a rate that it does not explicitly specify but is specified
by the dai at the other end of the link.
- ASoC: Add 16/16 registers to soc-cache
I2C only at the minute.
- ASoC: core: Add delay operation to snd_soc_dai_ops
The delay callback can be used by the core to query the delay
on the dai caused by FIFO or delay in the platform side.
In case if both CPU and CODEC dai has FIFO the delay reported
by each will be added to form the full delay on the chain.
If none of the dai has FIFO, than the delay will be kept as
zero.
- ASoC: core: soc level wrapper for pcm_pointer callback
Create a soc level wrapper for pcm_pointer callback.
This will facilitate the soc level handling of different
HW buffers in the audio path.
- ASoC: core: fix tailing whitespace in soc_pcm_apply_symmetry
My editor removes the tailing spaces, which causes problems when
changing the soc-core.c
Removing the space.
- ASoC: Allow mulitple usage count of codec and cpu dai
If we are to have a snd_soc_dai i.e, cpu_dai and codec_dai, shared among two
or more dai_links we need to log the number of active users of the dai.
For that, we change semantics of the snd_soc_dai.active flag from indicator
to reference counter.
- ASoC: Remove runtime field from DAI
In order for having snd_soc_dais shared among two or more dai_links,
remove the relatively global runtime field from the struct snd_soc_dai
- ASoC: Pass dai_link as argument to platform suspend and resume
Passing pointer to relevant dai_link provides easier reach to the
ASoC tree in suspend/resume of snd_soc_platform. It also provides
direct access to the dai at the other end of the dai_link.
- ASoC: soc_pcm_open: Add missing bailout tag
The codec_dai needs to be shutdown should the machine startup fails.
This patch adds another bailout tag for that case and rename the tag
for configuration failures.
- ASoC: core: On resume also check the soc device state
Check the card->codec on soc_resume to detect if the soc
device is properly initialized.
If the card->codec is NULL, than do not continue the resume
operation, since the device is not initialized properly.
- ASoC: Make pmdown_time a long
Fixes a warning.
- ASoC: Make pmdown_time runtime configurable
Provide a sysfs file allowing userspace to inspect and change the
pmdown_time setting at runtime.
- ASoC: Make pmdown_time a per-card setting
Make the pmdown_time a per-card setting rather than a global one,
initialised before the card initialisation runs. This allows cards
to override the default setting if it makes sense to do so (for
example, due to an unavoidable pop).
- ASoC: Add WM2000 driver
The WM2000 is a low power, high quality handset receiver speaker
driver with Wolfson myZone™ Ambient Noise Cancellation (ANC). It
provides enhanced voice communication quality in a noisy environment
if the handset acoustics are designed appropriately.
- ASoC: Add a cache_sync bit to the CODEC structure
Add a bit to the CODEC structure indicating if a cache sync is required.
By default this will be set if a cache only write is done to a soc-cache
register cache. This allows us to avoid syncing the cache back after
using cache only writes if there were no changes.
- ASoC: Allow CODECs to ask soc-cache to suppress physical writes
Currently the soc-cache code will always write to the device, meaning
that we need the device to be powered and active at pretty much all
times the system is active. Allowing cache only writes lays some
groundwork for future enhancements to allow devices to be put into a
full off state when the audio subsystem is idle.
- ASoC: Fix WM8994 dependency
The dependency on MFD_WM8994 rather than I2C went awry.
- ASoC: Add WM8994 CODEC driver
The WM8994 is a highly integrated ultra-low power hi-fi audio subsystem
designed for smartphones and other portable devices rich in multimedia
features. It provides advanced digital mixing facilities enabling low
power high quality interconnection of CPU, baseband and other audio
sources through flexible digital and analogue routing, and integrates
a class W headphone driver and stereo class D speaker drivers.
- ASoC: ad1836: use soc-cache framework for codec registers access
- ASoC: Set codec->dev for AC97 devices
- ASoC: add a WM8978 codec driver
The WM8978 codec from Wolfson Microelectronics is very similar to
wm8974, but is stereo and also has some differences in pin configuration
and internal signal routing. This driver is based on wm8974 and takes
the differences into account.
- ASoC: ad1938: use soc-cache framework for codec registers access
- ASoC: add helper macros to declare struct soc_enum instances
Several shortcuts for popular uses of some of SOC_ENUM_* and
SOC_VALUE_ENUM_* macros.
- ASoC: Support turning off bias when the CODEC is idle
Currently ASoC always maintains the bias of the CODEC while the system
is active. With older mobile CODECs this is required since the outputs
are referenced to a non-zero voltage and enabling or disabling this
voltage without audible pops or clicks in the output takes too long to
do when starting or stopping audio.
As a result of features such as ground referenced outputs and class D
speaker drivers current generation devices are able to power on and off
much more quickly without these system level issues so provide a new
flag idle_bias_off in snd_soc_codec which will cause the core to turn
off the CODEC bias. The distinction between STANDBY and OFF is still
maintained. This is partly for consistency but also allows for
potential future extensions such as per-machine overrides or deferring
the bias removal.
- ASoC: fix compile breakage - add a missing header include
- ASoC: Use snprintf() when generating stream names
- ASoC: soc-cache: cleanup training whitespace and coding style
- ASoC: Add initial WM8955 CODEC driver
The WM8955 is a low power, high quality stereo DAC with integrated
headphone and loudspeaker amplifiers, designed to reduce external
component requirements in portable digital audio applications. This is
an initial driver implementing support for the majority of the
functionality in the device, currently OUT3 is not supported.
- ASoC: Add DA7210 codec device support for ALSA
This original driver was created by Dialog Semiconductor,
and cleanuped by Kuninori Morimoto.
Special thanks to David Chen.
This became very simple ASoC codec driver,
and it is tested by EcoVec24 board.
- ASoC: Initial WM8904 CODEC driver
The WM8904 is a high performance ultra-low power stereo CODEC
optimised for portable audio applications, with features including
a class W amplifier, FLL with free running mode, Mobile ReTune and
ground referenced headphone and line outputs.
Support for some features, most particularly the digital microphone
interface, is not yet present.
- ASoC: Export snd_soc_update_bits_unlocked()
Allows custom controls to use it.
- const: constify remaining dev_pm_ops

SoC PXA2xx Aeronix Zipit Z2

- ASoC: Zipit Z2 WM8750 ASoC driver
This patch adds support for sound through the WM8750 codec on Zipit Z2.
Also, this patch incorporates support for detecting headset jack
insertion through the jack detection API.

SoC PXA2xx Spitz

- ASoC: WM8750: Convert to new API
Register the WM8750 as a SPI or I2C device. This patch mostly shuffles code
around. Hugely inspired by WM8753 which was already converted.
Also, this patch fixes the Jive and Spitz machine.

SoC SH7760 AC97

- ASoC: fsi: Add FSI2 device support
ARM-SHMOBILE series have FIFO-buffered serial interface 2 (FSI2)
device which is advanced version of FSI.
This patch add simple support for it.
- ASoC: fsi: Add FIFO size calculate
- ASoC: fsi: IRQ related process had be united
- ASoC: fsi: ensures process inside master lock
Bit operation for fsi_master should be done inside master lock.
But soft-reset/interrupt operation were outside of it.
This patch modify this problem.
It still allow to INT_ST outside-operation on fsi_interrupt,
but it is not problem.
Because this register doesn't need the bit operation.
- ASoC: ak4642: Add set_fmt function for snd_soc_dai_ops
- ASoC: ak4642: Add pll select support
Current ak4642 was not able to select pll.
This patch add support it.
It still expect PLL base input pin is MCKI.
see Table 5 "setting of PLL Mode" of datasheet
- ASoC: SIU driver shall select FW_LOADER
The SIU ASoC driver must load firmware to program the DSP, therefore it
has to select FW_LOADER in its Kconfig entry.
- dmaengine: shdma: separate DMA headers.
Separate SH DMA headers into ones, commonly used by both drivers, and ones,
specific to each of them. This will make the future development of the
dmaengine driver easier.
- ASoC: fsi: Modify over/under run error settlement
In current FSI driver, playback function cares only overrun,
and capture function cares only underrun.
But playback function should had cared about underrun,
and capture function should had cared about overrun too.
- ASoC: fix compile breakage if CONFIG_SH_DMA_API=y && CONFIG_SND_SIU_MIGOR!=n
Audio on Migo-R cannot work if CONFIG_SH_DMA_API=y, but compilation should not
break anyway.
- ASoC: fix compilation breakage in sound/soc/sh/fsi.c
ctrl_outl() has become void at some point, which breaks compilation of fsi.c.
Make writing functions void, as their output is anyway not evaluated, and use
__raw_writel and __raw_readl instead of deprecated ctrl_outl and ctrl_inl
respectively.
- ASoC: clean up wm8974 and wm8978 clock divider handling
wm8974 and wm8978 codec drivers control DAC and ADC oversampling rates in their
.set_clkdiv() methods, which is wrong, because these are simple boolean
switches and not clock dividers. Move these bits to sound controls. Also remove
manual configuration of the MCLK divider in wm8978, since it is configured
automatically.
- ASoC: add support for the sh7722 Migo-R board
Add support for audio on sh7722-based Migo-R boards, using SIU and wm8978
codec, recording via external microphone and playback via headphones are
implemented.
- ASoC: fsi: Add spin lock operation for accessing shared area
fsi_master_xxx function should be protected by spin lock,
because it are used from both FSI-A and FSI-B.
- ASoC: add DAI and platform / DMA drivers for SH SIU
Several SuperH platforms, including sh7722, sh7343, sh7354, sh7367 include
a Sound Interface Unit (SIU). This patch adds DAI and platform / DMA
drivers for this interface.
- ASoC: fsi: Add over/under run error settlement
- ASoC: fsi: Add fsi_get_dai to get snd_soc_dai
- ASoC: fsi: Add over_period flag to prevent the misunderstanding
- ASoC: fsi-ak4642: Remove ak4642_add_i2c_device
I2C devices should be registered when platform board setting
in latest ASoC.
- ASoC: sh: FSI:: don't check platform_get_irq's return value against zero
platform_get_irq returns -ENXIO on failure, so !irq was probably
always true. Better use (int)irq <= 0. Note that a return value of
zero is still handled as error even though this could mean irq0.
This is a followup to 305b3228f9ff4d59f49e6d34a7034d44ee8ce2f0 that
changed the return value of platform_get_irq from 0 to -ENXIO on error.
- ASoC: Add FSI-DA7210 sound support for SuperH
- ASoC: sh_fsi: avoid using global variable
Current FSI driver use global variable to access device data.
But this style will be broken
if SuperH come with multiple FSI blocks in future.
To solve this problem, this patch use cpu_dai->private_data.

SoC Texas Instruments OMAP

- ASoC: OMAP: Fix capture pointer handling for OMAP1510 to work correctly with recent ALSA PCM code
With recent (2.6.34) chnages in PCM handling, capture stopped working on my
OMAP1510 based Amstrad Delta videophone.
Using 2.6.34-rc2, I was able to correct the problem in 3 different ways:
1. reverting commit 7b3a177b0d4f92b3431b8dca777313a07533a710,
2. enabling additional jiffies check with
echo 4 >/proc/asound/card0/pcm0c0/xrun_debug
3. applying the patch below.
Since I wasn't able to reproduce the problem on my i686 PC, I guess the
problem is probably machine specific.
The patch reuses the method for software emulation of missing hardware
pointer, already implemented for playback on OMAP1510. It's possible that
event if a hardware pointer is available for capture on this machine, its
behaviour may be not compatible with what upper layer expects.
If you think the problem may be more general and should be solved differently,
on a higher level, I can try to work more on it if you give me a hint.
If the patch gets accepted, I suggest it goes as a fix in the current release
cycle.
Created and tested against linux-2.6.34-rc2.
- ASoC: omap-mcbsp: Add support for Left Justified format
Basic support for Left Justified coding for OMAP McBSP.
- ASoC: McPDM: Use tabs for indentation
Indentation in initial support for McPDM driver was converted to spaces.
Use tabs to comply with open source coding-style.
- ASoC: OMAP3: Report delay caused by the internal FIFO
Use the new delay calback function to report the delay through
ALSA for application caused by the internal FIFO.
- ASoC: OMAP-McBSP: ASoC interface for McBSP sidetone
Add ASoC interface for OMAP McBSP2 and McBSP3 sidetones.
Tested-by: Jarkko Nikula <jhnikula@gmail.com>
- omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3
Replace ARCH_OMAP34XX with ARCH_OMAP3
- omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2
Convert ARCH_OMAP24XX to ARCH_OMAP2
- ASoC: OMAP4: Add support for McPDM
McPDM is the interface between Phoenix audio codec
and the OMAP4430 processor. It enables data to be transfered
to/from Phoenix at sample rates of 88.4 or 96 KHz.
- ASoC: OMAP4: Add McPDM platform driver
McPDM platform driver is configured to use sDMA in order to transfer
to/from memory. Support for interfacing with ABE will be added later.
McPDM dai currently supports up to 4 downlink channels and 2 uplink
channels simultaneously, as well as 88.2 and 96 KHz, and a sample
size of 32 bits.
- ASoC: OMAP: data_type and sync_mode configurable in audio dma
Allow client drivers to set the data_type (16, 32) and the
sync_mode (element, packet, etc) of the audio dma transferences.
McBSP dai driver configures it for a data type of 16 bits and
element sync mode.
- sound: Add ASoC support for Devkit8000
This patch expands the omap3beagle sound soc for the
beagle board clone DevKit8000.
- ASoC: pandora: Add DAC regulator support
Pandora's external DAC is connected to VSIM TWL4030 supply, so let's
start switching it too to save more power.
Also DAC got it's own DAPM handler.
- ASoC: pandora: Add APLL supply to fix audio output
Pandora's external DAC is using 256*Fs output from the TWL4030
codec, and TWL4030 needs to have APLL enabled for it's 256*Fs
output to function.
- ASoC: AM3517: ASoC driver not getting compiled
Commit 761c9d45 (ASoC: Fix build of OMAP sound drivers) changes
CONFIG_MACH_OMAP3517EVM -> CONFIG_SND_OMAP_SOC_OMAP3517EVM in the
Makefile. Whereas the config option defined in Kconfig is
SND_OMAP_SOC_AM3517EVM. Because of this, ASoC driver for AM3517
was not getting compiled.
- mfd: twl: fix twl4030 rename for remaining driver, board files
Recent drivers/mfd/twl4030* renames to twl broke compile for
various boards as the series was missing a patch to change
the board-*.c files.
This patch renames include twl4030.h to include twl.h
and also renames twl4030_i2c_ routines.
Reviewed-by: Felipe Balbi <felipe.balbi@nokia.com>

Soc PXA2xx Raumfeld

- ASoC: support more sample rates on raumfeld devices
Add support for sample rates other than 44100Khz on raumfeld audio
devices. At startup time, call snd_soc_dai_set_sysclk() with 0 as 'freq'
argument so it offers all the sample rates. Later, the function is
called again to give proper constraints.
Use the external audio clock generator to provide double data rate
clocks as the PXA's internal baud generator does anything but what's
described in the datasheets.

TEA575x tuner

- handle more nicely new location for autoconf.h (generated/autoconf.h)

USB

- Refresh build-stub for usb mixer refactoring
- Regenerate patches and build-stubs for usb refactoring
- ALSA: usbmixer: rename usbmixer.[ch] -> mixer.[ch]
For clearer namespace, also rename usbmixer_maps.c -> mixer_maps.c
- ALSA: usb-mixer: factor out quirks
Move all non-standard mixer controls and vendor-specific extensions to a
separate file. Some structs need to be exported now.
- ALSA: usb-audio: refactor code
Clean up the usb audio driver by factoring out a lot of functions to
separate files. Code for procfs, quirks, urbs, format parsers etc all
got a new home now.
Moved almost all special quirk handling to quirks.c and introduced new
generic functions to handle them, so the exceptions do not pollute the
whole driver.
Renamed usbaudio.c to card.c because this is what it actually does now.
Renamed usbmidi.c to midi.c for namespace clarity.
Removed more things from usbaudio.h.
The non-standard drivers were adopted accordingly.
- ALSA: usb-audio: header file cleanups
Rename snd-usb-lib to snd-usbmidi-lib as MIDI functions are the only
thing it actually contains. Introduce a new header file to only declare
these functions.
Introduced usbmixer.h for all functions exported by usbmixer.c.
- ALSA: usb-audio: move ua101 driver
As part of the USB audio code cleanup, move the non-standard ua101
driver out of the way.
- ALSA: ua101: remove experimental status
Now that the EHCI driver copes with small iso packets without blowing
up, take the snd-ua101 driver out of the alpha-test stage.
- ALSA: usb/caiaq: Add support for Traktor Kontrol X1
This device does not have audio controllers and backlit buttons only.
Input data is handled over a dedicated USB endpoint.
All functions are supported by the driver now.
- ALSA: ua101: add Edirol UA-1000 support
Add support for the Edirol UA-1000 to the UA-101 driver.
Both devices behave the same, so we just have to shuffle around some
interface numbers and name strings.

USB Edirol UA101 driver

- ALSA: usb-audio: refactor code
Clean up the usb audio driver by factoring out a lot of functions to
separate files. Code for procfs, quirks, urbs, format parsers etc all
got a new home now.
Moved almost all special quirk handling to quirks.c and introduced new
generic functions to handle them, so the exceptions do not pollute the
whole driver.
Renamed usbaudio.c to card.c because this is what it actually does now.
Renamed usbmidi.c to midi.c for namespace clarity.
Removed more things from usbaudio.h.
The non-standard drivers were adopted accordingly.
- ALSA: usb-audio: header file cleanups
Rename snd-usb-lib to snd-usbmidi-lib as MIDI functions are the only
thing it actually contains. Introduce a new header file to only declare
these functions.
Introduced usbmixer.h for all functions exported by usbmixer.c.
- ALSA: usb-audio: move ua101 driver
As part of the USB audio code cleanup, move the non-standard ua101
driver out of the way.
- ALSA: ua101: add Edirol UA-1000 support
Add support for the Edirol UA-1000 to the UA-101 driver.
Both devices behave the same, so we just have to shuffle around some
interface numbers and name strings.
- sound: ua101: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.

USB USX2Y

- ALSA: usb-audio: refactor code
Clean up the usb audio driver by factoring out a lot of functions to
separate files. Code for procfs, quirks, urbs, format parsers etc all
got a new home now.
Moved almost all special quirk handling to quirks.c and introduced new
generic functions to handle them, so the exceptions do not pollute the
whole driver.
Renamed usbaudio.c to card.c because this is what it actually does now.
Renamed usbmidi.c to midi.c for namespace clarity.
Removed more things from usbaudio.h.
The non-standard drivers were adopted accordingly.
- ALSA: usb-audio: header file cleanups
Rename snd-usb-lib to snd-usbmidi-lib as MIDI functions are the only
thing it actually contains. Introduce a new header file to only declare
these functions.
Introduced usbmixer.h for all functions exported by usbmixer.c.
- ALSA: usbaudio: consolidate header files
Use the definitions from linux/usb/audio.h all over the ALSA USB audio
driver and add some missing definitions there as well.
Use the endpoint attribute macros from linux/usb/ch9 and remove the own
things from sound/usb/usbaudio.h.
Now things are also nicely prefixed which makes understanding the code
easier.

USB caiaq

- usc/caiaq/input.patch: Fix missing change in the previous commit
- usb/caiaq/input.patch: Fix builds with older 2.6.x kernels
- Refreshed usb/caiaq/input.patch
- ALSA: usb - update gfp/slab.h includes
Implicit slab.h inclusion via percpu.h is about to go away. Make sure
gfp.h or slab.h is included as necessary.
- ALSA: usb/caiaq: Add support for Traktor Kontrol X1
This device does not have audio controllers and backlit buttons only.
Input data is handled over a dedicated USB endpoint.
All functions are supported by the driver now.
- ALSA: sound/usb/caiaq/midi.h: Checkpatch cleanup
sound/usb/caiaq/midi.h:6: ERROR: "foo* bar" should be "foo *bar"

USB generic driver

- usb/card.c - build fix for Linux 2.4 kernels
- Refresh build-stub for usb mixer refactoring
- Regenerate patches and build-stubs for usb refactoring
- Refreshed usbaudio.patch
- Fix the build with kernels older than 2.6.23
struct usb_interface of older kernel has no intf_assoc field.
Simply disable the support of USB v2 on these kernels to fix the
build error.
- More fixes for build errors after usb v2.0 merge
- Fix usb v2.0 builds
- Fix for previous commit (RHEL 5.4 support)
- RHEL 5.4 compilation changes
- ALSA: usb/mixer - use get_iface_desc() rather than direct structure
- ALSA: usb - Fix Oops after usb-midi disconnection
usb-midi causes sometimes Oops at snd_usbmidi_output_drain() after
disconnection. This is due to the access to the endpoints which have
been already released at disconnection while the files are still alive.
This patch fixes the problem by checking disconnection state at
snd_usbmidi_output_drain() and by releasing urbs but keeping the
endpoint instances until really all freed.
Tested-by: Tvrtko Ursulin <tvrtko@ursulin.net>
- ALSA: usb - update gfp/slab.h includes
Implicit slab.h inclusion via percpu.h is about to go away. Make sure
gfp.h or slab.h is included as necessary.
- ALSA: usb pcm: use of kmalloc requires the include of slab.h
- ALSA: usb - use of kmalloc/kfree requires the include of slab.h
- ALSA: usbaudio: Add basic support for M-Audio Fast Track Ultra series
This adds basic support for M-Audio's Fast Track Ultra series of USB
audio interfaces. It is a refactored version of the patch Clemens
Ladisch posted some time ago. Neither playback nor capturing work
properly at 44100 Hz (don't know why).
The other sampling rates work properly. There's no support for the DSP
mixer, yet.
- ALSA: usb-mixer: Add support for Audio Class v2.0
USB Audio Class v2.0 compliant devices have different descriptors and a
different way of setting/getting min/max/res/cur properties. This patch
adds support for them.
- ALSA: usb-mixer: parse descriptors with structs
Introduce a number of new structs for mixer, selector, feature and
processing units and some static inline helpers to access fields which
have dynamic offsets. Use them in mixer.c to parse the descriptors. This
is necessary for the upcoming audio v2 parsers.
- ALSA: usbmixer: rename usbmixer.[ch] -> mixer.[ch]
For clearer namespace, also rename usbmixer_maps.c -> mixer_maps.c
- ALSA: usb-mixer: use defines from audio.h
No need for the private enum.
- ALSA: usb: fix usb build error when PM is not enabled
Fix build errors when CONFIG_PM is not enabled:
sound/usb/card.c:629: error: 'usb_audio_suspend' undeclared here (not in a function)
sound/usb/card.c:630: error: 'usb_audio_resume' undeclared here (not in a function)
- sound: linux/usb/audio.h: split header
- Split the audio.h file in two to clearly denote the differences
between the standards.
- Add many more defines to audio-v2.h. Most of them are not currently
used.
- Replaced a magic value with a proper define
- ALSA: usb-audio: add support for samplerate setting on v2 devices
Sample rate setting is done with a 4-byte long class request that
addresses the interface.
- ALSA: usb-audio: support multiple formats with audio class v2 devices
Change the parser to correctly handle v2 descriptors with multiple
format bits set.
- ALSA: usb-audio: use a format bitmask per alternate setting
In preparation for USB audio 2.0 support, change the audioformat
structure so that it uses a bitmask to specify possible formats.
- ALSA: usb-audio: rename substream format field to altset_idx
The snd_usb_substream::format field actually contains the index of the
current alternate setting, so rename it to altset_idx to avoid
confusion.
- ALSA: usb-mixer: factor out quirks
Move all non-standard mixer controls and vendor-specific extensions to a
separate file. Some structs need to be exported now.
- ALSA: usb-audio: refactor code
Clean up the usb audio driver by factoring out a lot of functions to
separate files. Code for procfs, quirks, urbs, format parsers etc all
got a new home now.
Moved almost all special quirk handling to quirks.c and introduced new
generic functions to handle them, so the exceptions do not pollute the
whole driver.
Renamed usbaudio.c to card.c because this is what it actually does now.
Renamed usbmidi.c to midi.c for namespace clarity.
Removed more things from usbaudio.h.
The non-standard drivers were adopted accordingly.
- ALSA: usb-audio: header file cleanups
Rename snd-usb-lib to snd-usbmidi-lib as MIDI functions are the only
thing it actually contains. Introduce a new header file to only declare
these functions.
Introduced usbmixer.h for all functions exported by usbmixer.c.
- ALSA: ua101: add Edirol UA-1000 support
Add support for the Edirol UA-1000 to the UA-101 driver.
Both devices behave the same, so we just have to shuffle around some
interface numbers and name strings.
- ALSA: usbaudio: Fix wrong bitrate for Creative Creative VF0470 Live Cam
This patch works around misbehaviour of Creative Creative VF0470 Live Cam
which reports 16 kHz sample rate for audio capture while actually producing
8 kHz stream.
- ALSA: usbaudio - remove debug "SAMPLE BYTES" printk line
- ALSA: usbaudio: consolidate header files
Use the definitions from linux/usb/audio.h all over the ALSA USB audio
driver and add some missing definitions there as well.
Use the endpoint attribute macros from linux/usb/ch9 and remove the own
things from sound/usb/usbaudio.h.
Now things are also nicely prefixed which makes understanding the code
easier.
- ALSA: usbmixer: bail out early when parsing audio class v2 descriptors
This is just a quick hack that needs to be removed once the new units
defined by the audio class v2.0 standard are supported.
However, it allows using these devices for now, without mixer support.
- ALSA: usbaudio: implement basic set of class v2.0 parser
This adds a number of parsers for audio class v2.0. In particular, the
following internals are different and now handled by the code:
* the number of streaming interfaces is now reported by an interface
association descriptor. The old approach using a proprietary
descriptor is deprecated.
* The number of channels per interface is now stored in the AS_GENERAL
descriptor (used to be part of the FORMAT_TYPE descriptor).
* The list of supported sample rates is no longer stored in a variable
length appendix of the format_type descriptor but is retrieved from
the device using a class specific GET_RANGE command.
* Supported sample formats are now reported as 32bit bitmap rather than
a fixed value. For now, this is worked around by choosing just one of
them.
* A devices needs to have at least one CLOCK_SOURCE descriptor which
denotes a clockID that is needed im the class request command.
* Many descriptors (format_type, ...) have changed their layout. Handle
this by casting the descriptors to the appropriate structs.
- ALSA: usbaudio: introduce new types for audio class v2
This patch adds some definitions for audio class v2.
Unfortunately, the UNIT types PROCESSING_UNIT and EXTENSION_UNIT have
different numerical representations in both standards, so there is need
for a _V1 add-on now. usbmixer.c is changed accordingly.
- ALSA: usbaudio: parse USB descriptors with structs
In preparation of support for v2.0 audio class, use the structs from
linux/usb/audio.h and add some new ones to describe the fields that are
actually parsed by the descriptor decoders.
Also, factor out code from usb_create_streams(). This makes it easier to
adopt the new iteration logic needed for v2.0.
- ALSA: usbaudio Mbox support, output only
- ALSA: usbmixer - use MAX_ID_ELEMS where possible
- ALSA: usbmixer - add usb_id value to usbmixer proc file
- ALSA: usbmixer - introduce /proc/asound/card#/usbmixer file
The usbmixer proc file contains mapping between ALSA control API and
USB mixer control units. The purpose of this file is for debugging
and a problem diagnostics.
- ALSA: USB MIDI support for Access Music VirusTI
Here's a patch that adds MIDI support through USB for one of the Access
Music synths, the VirusTI.
The synth uses standard USBMIDI protocol on its USB interface 3, although
it does signal "vendor specific" class. A magic string has to be sent on
interface 3 to enable the sending of MIDI from the synth (this string was
found by sniffing usb communication of the Windows driver). This is all
my patch does, and it works on my computer.
Please note that the synth can also do standard usb audio I/O on its
interfaces 2&3, which already works with the current snd-usb-audio driver,
except for the audio input from the synth. I'm going to work on it when I
have some time.
- ALSA: usb-audio: reduce MIDI packet size to work around broken firmware
Extend the list of devices whose firmware does not expect more than one
USB MIDI packet in one USB packet.
bug report: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3752
- ALSA: usbmixer - add possibility to remap dB values
USB devices tends to represent dB ranges in different way than ALSA expects.
Add possibility to override these values and add guessed values for
SoundBlaster MP3+.
Also rename 'Capture Input Source' control to 'Capture Source' for
SoundBlaster MP3+ and Extigy.
- ALSA: usb-audio: use usbquirk.h for detection of HVR-950Q/850
Detect the HVR-950Q HVR-850 urb data alignment quirk using usbquirk.h
rather than using a case statement in snd_usb_audio_probe.
- ALSA: usb-audio: relax urb data align. restriction HVR-950Q and HVR-850 only
Addressing audio quality problem.
In sound/usb/usbaudio.c, for the Hauppage HVR-950Q and HVR-850 only, change
retire_capture_urb to allow transfers on audio sub-slot boundaries rather
than audio slots boundaries.
With these devices the left and right channel samples can be split between
two different urbs. Throwing away extra channel samples causes a sound
quality problem for stereo streams as the left and right channels are
swapped repeatedly, perhaps many times per second.
Urbs unaligned on sub-slot boundaries are still truncated to the next
lowest stride (audio slot) to retain synchronization on samples even
though left/right channel synchronization may be lost in this case.
Detect the quirk using a case statement in snd_usb_audio_probe.
BugLink: https://bugs.launchpad.net/ubuntu/+bug/495745
- ALSA: usb-audio: make buffer pointer based on bytes instead on frames
Since there are devices that do not align the size of their data packets
to frame boundaries, the driver needs to be able to keep track of
partial frames. This patch prepares for support for such devices by
changing the hwptr_done variable from a frame counter to a byte counter.
- ALSA: usb-audio - Added functionality for E-mu 0404USB/0202USB/TrackerPre
Added functionality:
1) Extension Units support (all XU settings now available at alsamixer,
kmix, etc):
- "AnalogueIn soft limiter" switch;
- "Sample rate" selector (values 0,1,2,3,4,5 corresponds to 44.1 48 ...
192 kHz);
- "DigitalIn CLK source" selector (internal/external) (**);
- "DigitalOut format SPDIF/AC3" switch (**);
(**)E-mu-0404usb only.
2) Automatic device sample rate adjustment depending on substream
samplerate for both capture and playback substream.
[minor coding-style fixes by tiwai]
- ALSA: usb-audio - Avoid Oops after disconnect
As the release of substreams may be done asynchronously from the
disconnection, close callback needs to check the shutdown flag before
actually accessing the usb interface.
Reference: Novell bnc#505027
http://bugzilla.novell.com/show_bug.cgi?id=565027
- sound: usb-audio: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.
- sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
When allocating the PCM buffer, use vmalloc_user() instead of vmalloc().
Otherwise, it would be possible for applications to play the previous
contents of the kernel memory to the speakers, or to read it directly if
the buffer is exported to userspace.

Utils

- alsa-compile.sh: add moprobe soundcore for --kmodules
- alsa-compile.sh: Check for aclocal and install if missing
- alsa-compile.sh: Don't rely on yum exit code
- alsa-compile.sh: fix path for /sbin utilities
- alsa-compile.sh: fix --kmodclean commmand
- alsa-compile.sh: add handling of kernel module parameters, fix --clean
- Add choice/endchoice pair to mod-deps
Ignore the content, so far, as a quick'n'dirty workaround.
This should be fixed in future!
- alsa-compile.sh: update version number to 0.1.3
- alsa-compile.sh: Fix --clean command
- alsa-compile.sh: more tree variable cleanups, fixes for --run
- alsa-compile.sh: use local variables
It is a bash script, and declaring variables local makes it slightly easier to
see the structure. "for" loop variables can however not be local.
- alsa-compile.sh: Remove duplicate and different packagedir assignment
- alsa-compiler.sh: Move cleaning out of command line parsing
- alsa-compile.sh: handle ac97_bus module in current_modules
- alsa-compile.sh: Fix code logic for kmod cmds when source tree does not exists
- alsa-compile.sh: version 0.1.2
- alsa-compile.sh: Various cleanup
More consistent use of echo and formatting and minor fixes.
"docstrings" for functions.
- alsa-compile.sh: Fix some minor issues
- alsa-compile.sh: remove debugging code
- alsa-compile.sh: set version to 0.1.1
- alsa-compile.sh: add --kmodclean option, use updates/alsa tree for kmods
- alsa-compile.sh: Use packagedir variable consistently
- alsa-compile.sh: Support building on Fedora PAE kernels where kernel-PAE-devel is used
- alsa-compile.sh: Check package installation - don't rely on yum exit code
- alsa-compile.sh: Use bash for bash script
- alsa-compile.sh: added --patch and --kmodmesg options
Use snd-dummy1 module to identify start of the ALSA dmesg lines. It's not
ideal - waiting for other ideas to trigger a unique kernel printk.
- alsa-compile.sh: Fix dst variable usage in parse_modules()
- remove 'insert' and 'remove' scripts - the alsa-compile.sh obsoletes them
- alsa-compile.sh: added --kmodremove command
- alsa-compile.sh: add --examples and file: protocol support
- alsa-info.sh: added --run parameter
- alsa-info.sh: fix some issues (parsing package)
- alsa-compile.sh: added --kmodlist option and support for more ALSA packages
- alsa-compile.sh: add git support, cache environment state
- introduce alsa-compile.sh script - not finished
- gitcompile - add more error checks, update utils/insert script
- alsa-info.sh: Add usbmixer proc file to output
- remove cvscompile script - we use git now
- Add gcd() wrapper

VIA82xx driver

- ALSA: via82xx: add quirk for D1289 motherboard
Add a headphones-only quirk for the Fujitsu Siemens D1289.
Reported-and-tested-by: Marc Haber <mh+alsa201002@zugschlus.de>

cvscompile script

- remove cvscompile script - we use git now

gitcompile script

- gitcompile - add more error checks, update utils/insert script

alsa-lib

Core

- Release v1.0.23
- add atomic operations for Blackfin parts

Control API

- modem.conf Off-hook improve behavior
Only restore the old value if it differs from the requested
value, because if it has changed restoring the old value
overrides the change. Take for example, a voice modem with
a .conf that sets preserve off-hook. Start playback (on-hook
to off-hook), start record (off-hook to off-hook), stop
playback (off-hook to restore on-hook), stop record (on-hook
to restore off-hook), Clearly you don't want to leave the
modem "on the phone" now that there isn't any playback or
recording active.

PCM API

- pcm_share plugin: fix pcm->monotonic setup in open() function
- pcm_hw - show errno codes
- pcm direct plugins: drain() call might be blocked when threads are used
Add SETUP state checks and do modifications according latest ALSA driver
(passing wrong event identification).
ALSA bug#4914
- pcm_dmix: add support for S24_LE format
- Fix snd_pcm_sw_params_set_period_event() implementation
Fix the PCM timer open subdevice number in the pcm_hw plugin.
- pcm: fix read_areas and write_areas
The stream state was wrongly updated and handled.
- pcm: Fix the sound distortions for S24_3LE stream in pcm_softvol plugin
This patch fixes sound distortions in alsa-lib "softvol"
for S24_3LE sound stream, when softvol slider is not at 0.0dB
position.
- pcm: Close event timer in pcm_hw plugin
Dan McCombs discovered that snd_pcm_close() invocations are not leading
to associated timers being closed, which results in successively more
timers being created but not freed.
Original patch from Daniel T Chen <crimsun@ubuntu.com>.
BugLink: https://bugs.launchpad.net/bugs/451893

alsa-utils

Core

- Release v1.0.23

ALSA Control (alsactl)

- alsactl: update debug prints in state.c
- alsactl: add more debug prints to state.c
- alsactl: improve -d to get warnings and store exitcode to runstate file
Also, make the initialization & restore logic for one card similar to
multiple card initialization & restore.
- alsactl: Fix return code
The main() should return positive error value.

ALSA RawMidi Utility (amidi)

- amidi: fix port listing
Rewrite the port listing code because it was too complex and had some
bugs when handling write-only or read-only ports.

Speaker Test

- speaker-test: add fflush(stdout) to write_loop
Flush stdout for pipes. The monitor tool from hda-analyzer requires this.

aconnect

- aconnect -x: Do not update index after removal of connection.

alsamixer

- alsamixer: handle out-of-range volume values
Ensure that control volume values are in their allowed range; otherwise,
the displayed values could be outside the range 0..100 and mess up the
layout.
- alsamixer: fix division by zero
The attempt to divide by max-min fails if a control has only one valid
value. In this case, adjust the maximum so that the computation can
succeed; the control will look like 0%.

amixer

- amixer: add support for TLV dB minmax types
- amixer: fix display of unreadable control elements
When an element is marked as not readble, do not try to read it and then
complain about the error, but just ignore it.

aplay/arecord

- aplay -- update the man file
Bring the man file up to date, documenting the signals and all the
options, including those added for audio surveilance.
- aplay -- add features for audio surveilance
Add signal SIGUSR1 to turn over the output file,
--max-file-time to cause the output file to turn over automatically,
and --use-strftime to create output files based on the current time.
- aplay - add option --process-id-file
Write the process ID to a file so other programs can
signal aplay. When aplay exits, delete the file.
- aplay: Dump PCM state on xrun when verbose mode is active

alsa-tools

Core

- Release v1.0.23
- add hwmixvolume
Add a tool to control the volume of individual streams on sound cards
that use hardware mixing.

hwmixvolume

- hwmixvolume: add hwmixvolume to EXTRA_DIST
- Fix hwmixvolume gitcompile script (missing files)
- hwmixvolume: make scripts executable
The gitcompile script is easier to use if it's executable.
- add hwmixvolume
Add a tool to control the volume of individual streams on sound cards
that use hardware mixing.

alsa-plugins

Core

- Release v1.0.23

USB stream plugin

- usb_stream: Allow user-set period-size and rate
* usb_stream/pcm_usb_stream.c: Allow user-set period-size and rate.
- usb_stream: Check for NULL-ness before dereferencing
* usb_stream/pcm_usb_stream.c (snd_pcm_us_stop): Prevent
dereferencing when structure is not initialized.
Custom Search
Personal tools
Namespaces

Variants
Actions
Navigation
wiki
Toolbox