Changes v1.0.21 v1.0.22
Jump to navigation
Jump to search
Changelog between 1.0.21 and 1.0.22 releases
alsa-driver
Sound Core
- Release v1.0.22
- Set build restrict for ua101
- add compilation stub for ua101.c
- Add a workaround for bitrev8() in i2c/cs8427.c
- Add workaround for dmi functions
- Grammatical corrections in INSTALL and utils/setup-alsa-kernel script
- Allow patching include/sound header files
- Kconfig: Remove useless and sometimes wrong comments
- sound: Kconfig typo fix
ALSA Core
- Add wrappers for some new macros in linux/kernel.h
- Add a dummy wrapper for pci_clear_master()
- Add workaround for dmi functions
- add struct pid wrappers
- Add true and false definitions for older kernels
- Add wrappers for work_pending() and delayed_work_pending()
- Fix 64bit issue in snd_compat_print_hex_dump_bytes()
- Add strict_strtoull() wrapper
- Add snd_card_new() for ABI compatibility
- Add sound/core patch for ABI compatibility
- Add snd_verbose_printk and snd_verbose_printd
- ALSA: sscape - Remove sscap_ioctl.h from include/sound/Kbuild
- ALSA: Add const prefix to proc helper functions
- ALSA: Remove unneeded ifdef from sound/core.h
- ALSA: Remove struct snd_monitor_file from public sound/core.h
SoC PXA2xx Core
- ALSA: ARM: add Raumfeld audio support
- ASoC: finally enable support for eXeda and CM-X300
- ASoC: pxa-ssp increase max_channels to 8
- ASoC: Fix dependency of CONFIG_SND_PXA2XX_SOC_IMOTE2
- trivial: remove unnecessary semicolons
Control Midlevel
- Refresh patches to remove fuzz
- ALSA: remove unnecessary null check
- control: use reference-counted pid
- control: remove snd_konctrol_volatile::owner_pid field
PCM Midlevel
- Refresh patches to remove fuzz
- Refresh pcm_native.patch for changes of DMA handling
- Refresh vm_ops related patches
- Refresh pcm_natvie.patch
- ALSA: pcm - fix page conversion on non-coherent PPC arch
- ALSA: pcm - fix page conversion on non-coherent MIPS arch
- ALSA: pcm - define snd_pcm_default_page_ops()
- ALSA: pcm - Use dma_mmap_coherent() if available
- sound: pcm: record a substream's owner process
- control: use reference-counted pid
- ALSA: sound: Move dereference after NULL test and drop unnecessary NULL tests
- const: mark struct vm_struct_operations
- ALSA: pcm - Simplify snd_pcm_drain() implementation
- ALSA: Re-export snd_pcm_format_name() function
RawMidi Midlevel
- Add O_DSYNC definition in rawmidi.c
- vfs: Implement proper O_SYNC semantics
- sound: rawmidi: record a substream's owner process
- control: use reference-counted pid
- sound: rawmidi: fix opened substreams count
- sound: rawmidi: fix MIDI device O_APPEND error handling
- sound: rawmidi: fix checking of O_APPEND when opening MIDI device
- sound: rawmidi: fix double init when opening MIDI device with O_APPEND
/arm/Makefile
- ALSA: Remove old DMA-mmap code from arm/devdma.c
/include/Makefile
- Add a dummy modules_install target to include/Makefile
- Allow patching include/sound header files
/isa/Makefile
- Remove obsoleted dt019x build stub
- ALSA: dt019x: merge into the als100 driver
/soc/Makefile
- ASoC: Add bit clock rate calculator utility functions
/soc/codecs/Makefile
- ASoC: ADS117x ADC driver
- ASoC: Add support for the WM8727 DAC.
- ASoC: Codec driver for Texas Instruments tlv320dac33 codec
- ASoC: TPA6130A2 amplifier driver
- ASoC: AK4671: add ak4671 codec driver
- ASoC: Add WM8711 CODEC driver
/soc/pxa/Makefile
- ALSA: ARM: add Raumfeld audio support
AC97 Codec
- ALSA: ac97_codec - increase timeout for analog sections to 5 second
- comment typo fix: sybsystem -> subsystem
AK4113 receiver
- Add a build-stub for i2c/other/ak4113.c
- ALSA: ak4113 support
AK4114 receiver
- ALSA: ak4114 - fix errors in output selector bits
AK4XXX AD/DA converters
- ALSA: ak4620 support, codec regs listed in proc
ALI5451 driver
- ALSA: sound: Move dereference after NULL test and drop unnecessary NULL tests
ALS100 driver
- ALSA: dt019x: merge into the als100 driver
ALSA Version
- ALSA: Release v1.0.21
ALSA<-OSS emulation
- [ALSA] rename "PC Speaker" controls to "Speaker"
- ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
- ALSA: Add const prefix to proc helper functions
- ALSA: allocation may fail in snd_pcm_oss_change_params()
ARM AACI PL041 driver
- ALSA: aaci - Clean up duplicate code
- ALSA: Remove old DMA-mmap code from arm/devdma.c
- ALSA: AACI: fix recording bug
- ALSA: AACI: fix AC97 multiple-open bug
- ALSA: AACI cleanup
- ALSA: aaci: ARM1176 aaci-pl041 AC97 register read timeout
ARM DMA routines
- ALSA: Remove old DMA-mmap code from arm/devdma.c
ARM PXA2XX driver
- [ARM] pxa: update pxa2xx-ac97.c to use 'struct dev_pm_ops'
- ASoC: fix pxa2xx-ac97.c breakage
Apple Onboard Audio driver
- ALSA: Don't assume i2c device probing always succeeds
Asihpi driver
- asihpi: fix compilation of hpios_linux_kernel.c
Au12x0/Au1550 PSC ASoC
- ASoC: au1x: dbdma2: plug memleak in pcm device creation error path
- ASoC: au1x: dbdma2: fix oops on soc device removal.
- ASoC: au1x: convert to platform drivers.
- ASoC: au1x: psc-ac97: reorganize timeouts
- ASoC: au1x: psc-ac97: verify correct codec register was read
- ASoC: au1x: PSC-AC97 bugfixes
BT87x driver
- ALSA: bt87x - Add a whitelist for Pinnacle PCTV (11bd:0012)
CA0106 driver
- tree-wide: fix assorted typos all over the place
- ALSA: Cleanup redundant tests on unsigned
CMI8330 driver
- ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
CMI8788 (Oxygen) driver
- oxygen: add more build stubs
- sound: oxygen: add high-pass filter control
- sound: oxygen: add digital filter control
- sound: virtuoso: add PCM1796 oversampling control
- sound: oxygen: allow custom MCLK rates
- sound: virtuoso: add headphone impedance control
- sound: oxygen: cache codec registers
- sound: virtuoso: fix Xonar Essence ST support
- sound: oxygen: fix input monitor control names
- sound: oxygen: more hardware documentation
- sound: oxygen: add stereo upmixing to center/LFE channels
- sound: oxygen: better defaults for upmixing control
- sound: virtuoso: split virtuoso.c
- sound: oxygen: fix for PI7C9X110 compatibility
- sound: oxygen: do not try to restore nonexistent EEPROM
- sound: oxygen: work around MCE when changing volume
- sound: oxygen: handle cards with missing EEPROM
- sound: oxygen: fix MCLK rate for 192 kHz playback
CS4231 driver
- ALSA: cs4236: update control names
CS4236+ driver
- tree-wide: fix assorted typos all over the place
- ALSA: cs4236: add dB scale for all volume controls
- ALSA: cs4236: update control names
- ALSA: cs4236: detect chip in one pass
CS46xx driver
- ALSA: cs46xx - Fix minimum period size
Common EMU synth
- tree-wide: fix typos "couter" -> "counter"
Compatibility header files
- Fix mkae rules to creating include/sound header files
- Add include/sound/pcm.h patch
- Add sound/core patch for ABI compatibility
- Allow patching include/sound header files
Creative Sound Blaster X-Fi (20K1/20K2)
- ALSA: Cleanup redundant tests on unsigned
- ALSA: ctxfi: Swapped SURROUND-SIDE mute
DT019x driver
- Remove obsoleted dt019x build stub
- ALSA: dt019x: merge into the als100 driver
Digigram VX Pocket driver
- pcmcia: rework the irq_req_t typedef
- pcmcia: remove deprecated handle_to_dev() macro
- ALSA: pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (sound)
Documentation
- sound: add Edirol UA-101 support
- ALSA: document: Add direct git link to grub hda-analyzer
- ALSA: hda - iMac 9,1 sound patch.
- ALSA: hda - Fix mute-LED sync on HP laptops with IDT92HD83xxx codecs
- ALSA: hda - Add description of beep_mode in ALSA-Configuration.txt
- [ALSA] rename "PC Speaker" controls to "Speaker"
- ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
- ALSA: snd-pcsp: add nopcm mode
- ALSA: dummy - Fix descriptions of pcm_substreams parameter
- ALSA: sscape: force AD1848 codec mode on old Soundscape
- ALSA: sscape: convert to firmware loader framework
- ALSA: hda - Fix mute sound with STAC9227/9228 codecs
- ALSA: hda - Analog Devices AD1984A add HP Touchsmart model
- trivial: fix typos "man[ae]g?ment" -> "management"
- ALSA: dummy - Fake buffer allocations
- ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
- ALSA: dummy - Add more description
- ALSA: hda - Add support of Alienware M17x laptop
Dreamcast AICA sound (pcm) driver
- ALSA: snd-aica: declare MODULE_FIRMWARE
ES18xx driver
- ALSA: es18xx: code improvements
- ALSA: es18xx: remove snd_audiodrive structure
- ALSA: es18xx: remove snd_card pointer from snd_es18xx structure
Echoaudio driver
- ALSA: echoaudio - Re-enable the line-out control for the Mia card
Edirol UA-101 driver
- add compilation stub for ua101.c
- sound: add Edirol UA-101 support
FM801 driver
- sound: snd-fm801: autodetect SF64-PCR (tuner-only) card
GUS Library
- ALSA: sound/isa/gus: Correct code taking the size of a pointer
Generic drivers
- ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
- ALSA: snd-pcsp: add nopcm mode
- ALSA: dummy - Fix descriptions of pcm_substreams parameter
- ALSA: sound: Move dereference after NULL test and drop unnecessary NULL tests
- ALSA: pcsp - Fix nforce workaround
- ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128
- ALSA: dummy - Add debug proc file
- ALSA: dummy - Fake buffer allocations
- ALSA: dummy - Fix the timer calculation in systimer mode
- ALSA: dummy - Better jiffies handling
- ALSA: dummy - Support high-res timer mode
HDA Codec driver
- Add workaround for dmi functions
- ALSA: hda - simplify usage of HDA_SUBDEV_AMP_FLAG
- ALSA: hda - introduce HDA_SUBDEV_AMP_FLAG (ControlAmp in proc)
- ALSA: hda - add more NID->Control mapping
- ALSA: hda: Fix max PCM level to 0 dB for AD1981_HP
- ALSA: hda: Use ALC260_WILL quirk for another Acer model (0x1025007f)
- ALSA: hda - Overwrite pin config on intel DG45ID board.
- intelhdmi - dont power off HDA link
- ALSA: intelhdmi - add channel mapping for typical configurations
- ALSA: intelhdmi - channel mapping applies to Pin
- ALSA: intelhdmi - accept DisplayPort pin
- ALSA: hda - show HBR(High Bit Rate) pin cap in procfs
- ALSA: hda - Fix LED GPIO setup for HP laptops with IDT codecs
- ALSA: hda/realtek: quirk for D945GCLF2 mainboard
- ALSA: hda - Generalize EAPD inversion check in patch_analog.c
- tree-wide: fix typos "selct" + "slect" -> "select"
- ALSA: hda - Exclude unusable ADCs for ALC88x
- ALSA: hda - Add missing Line-Out and PCM switches as slave
- ALSA: hda - iMac 9,1 sound patch.
- ALSA: hda - Fix memory leaks in the previous patch
- ALSA: hda - Add ALC661/259, ALC892/888VD support
- ALSA: hda - Add a pin-fix for FSC Amilo Pi1505
- ALSA: hda - Fix Cxt5047 test mode
- ALSA: hda - Don't trigger pin-sense for STAC/IDT codecs
- ALSA: hda: Fix max PCM level to 0 dB for Fujitsu-Siemens laptops using CX20549 (Venice)
- ALSA: hda - Make Dell Vostro 1015n mic and speaker switching work
- sound: Revert "ALSA: hda - Change quirk for Acer Aspire 5930G"
- ALSA: hda - 4930g mute lfe and side when pluging in headphones
- ALSA: hda - Change quirk for Acer Aspire 5930G
- ALSA: hda - Fix mute-LED sync on HP laptops with IDT92HD83xxx codecs
- ALSA: hda - Fix detection of dual headphones
- ALSA: hda - Replace the rest of jack-detections with snd_hda_jack_detect()
- ALSA: hda - show EPSS capability in proc
- ALSA: intelhdmi - sticky channel count
- ALSA: intelhdmi - sticky stream id and format
- ALSA: intelhdmi - sticky infoframe
- ALSA: intelhdmi - separate out infoframe checksum routine
- ALSA: intelhdmi - probe for monitor/eld presence at module init time
- ALSA: hda - introduce snd_hda_jack_detect() and snd_hda_pin_sense()
- ALSA: intelhdmi - export monitor-presence and ELD-valid status
- ALSA: intelhdmi - fix channel mapping slot mask
- ALSA: intelhdmi - fix audio infoframe fill size
- ALSA: hda - Disable default quirk for Sony VAIO with ALC262 codec
- ALSA: hda - Fix build errors with CONFIG_SND_HDA_INPUT_BEEP=n
- ALSA: hda - Update / add kerneldoc comments to exported functions
- ALSA: hda - Fix quirk for VAIO type G
- ALSA: hda - Get rid of magic digits for subdev hack
- ALSA: hda - Dell Studio 1557 hd-audio quirk
- sound: sound/pci/hda/patch_via.c: work around gcc-4.0.2 ICE
- ALSA: hda - Add another Nvidia HDMI codec id (10de:0005)
- ALSA: hda - add beep_mode module parameter
- ALSA: hda - proc - add support for dynamic controls to mixer<->NID mapping
- ALSA: hda - proc - introduce Control: lines to show mixer<->NID assignment
- ALSA: hda - move snd_hda_pcm_type_name from hda_codec.h to hda_local.h
- ALSA: hda: Use model=mb5 for MacBookPro 5,2
- ALSA: hda - Add power on/off counter
- ALSA: hda - Add missing export for snd_hda_bus_reboot_notify
- ALSA: hda - Add reboot notifier to each codec
- ALSA: hda - possible read past array alc88[02]_parse_auto_config()
- ALSA: hda - Avoid quirk for HP dc5750
- ALSA: hda - proc - show which I/O NID is associated to PCM device
- ALSA: hda - Tweak OLPC XO-1.5 microphone bias
- ALSA: hda: Use model=auto quirk for Sony VAIO VGN-FW170J using ALC262
- ALSA: hda - Reset pins of IDT/STAC codecs at free
- ALSA: hda, move hp_bseries_system
- ALSA: hda - Add OLPC XO-1.5 PCI ID
- ALSA: hda - Enable GPIO control for mute LED on HP systems
- ALSA: hda - Add a proper ifdef to a debug code
- ALSA: VIA HDA: Add support for VT1818S.
- ALSA: hda - remove static intelhdmi configurations
- ALSA: hda - auto parse intelhdmi cvt/pin configurations
- ALSA: hda - get intelhdmi max channels from widget caps
- ALSA: hda - vectorize intelhdmi
- ALSA: hda - reorder intelhdmi prepare/cleanup callbacks
- ALSA: hda - use pcm prepare/cleanup callbacks for intelhdmi
- ALSA: hda - remove intelhdmi dependency on multiout
- ALSA: hda - convert intelhdmi global references to local parameters
- ALSA: hda - allow up to 4 HDMI devices
- ALSA: hda - vectorize get_empty_pcm_device()
- ALSA: hda - select IbexPeak handler for Calpella
- ALSA: hda - Don't check invalid HP pin
- ALSA: hda: Use quirk mask for Dell Inspiron Mini9/Vostro A90 using ALC268
- hda_intel: Digital PC Beep - change behaviour for input layer
- ALSA: hda - Fix capture source checks for ALC662/663 codecs
- ALSA: HDA VIA: Remove 48k sample rate limit for S/PDIF
- sound: use semicolons to end statements
- ALSA: HDA VIA: Only cosmetic changes
- ALSA: HDA VIA: comments: update copyright, changeset, etc.
- ALSA: HDA VIA: Change PW4 connect select default to to MW0.
- ALSA: HDA VIA: rename vt1708_control_templates[].
- ALSA: HDA VIA: Add VT1812 support.
- ALSA: HDA VIA: Add VT2002P support.
- ALSA: HDA VIA: Add VT1716S support.
- ALSA: HDA VIA: Add VT1828S and VT2020 support.
- ALSA: HDA VIA: Add VT1718S support.
- ALSA: HDA VIA: Move backdoor verbs to vt17xx_volume_init_verb
- ALSA: HDA VIA: Replace MIC_BOOST_VOLUME.
- ALSA: HDA VIA: Modify vt1709_auto_create_multi_out_ctls.
- ALSA: HDA VIA: Modify vt1708_auto_create_multi_out_ctls.
- ALSA: HDA VIA: Replace via_playback_pcm_prepare/cleanup
- ALSA: HDA VIA: Modify vt1708_set_pinconfig_connect function.
- ALSA: HDA VIA: Add Jack detect feature for VT1708.
- ALSA: HDA VIA: Refresh front playback mute in via_hp_automute.
- ALSA: HDA VIA: Add VIA_JACK_EVENT process in via_unsol_event.
- ALSA: HDA VIA: When changing input source, update power state.
- ALSA: HDA VIA: Add smart5.1 function.
- ALSA: HDA VIA: Rewrite via_independent_hp_put
- ALSA: HDA VIA: Change VT1708S & VT1702 hp mode controls
- ALSA: HDA VIA: Remove unused argument of via_new_analog_input
- ALSA: HDA VIA: Add low current mode for power saving.
- sound: ALSA HDA VIA: Add VIA_CTL_WIDGET_ANALOG_MUTE control type
- ALSA: HDA VIA: Limit VT1702 AA-Path max volume
- ALSA: HDA VIA: Add VT1708B-CE codec support.
- ALSA: HDA VIA: Change get_codec_type argument to hda_codec type
- ALSA: HDA VIA: Remove unused IS_VT17xx_VENDORID macro
- ALSA: hda - Clean up name string creation in patch_realtek.c
- ALSA: hda - Allow all formats as default for Nvidia HDMI
- ALSA: hda - Fix volume-knob setup for Dell laptops with STAC9228
- ALSA: hda - Fix mute sound with STAC9227/9228 codecs
- ALSA: hda - Fix overflow of spec->init_verbs in patch_realtek.c
- ALSA: hda - Add full rates/formats support for Nvidia HDMI
- ALSA: hda - Fix yet another auto-mic bug in ALC268
- ALSA: hda - Don't pick up invalid HP pins in alc_subsystem_id()
- ALSA: hda - Add a workaround for ASUS A7K
- ALSA: hda - Fix invalid initializations for ALC861 auto mode
- ALSA: hda - Fix / improve ALC66x parser
- ALSA: hda - Fix digita/analog mic auto-switching with IDT codecs
- ALSA: hda - Added quirk to enable sound on Toshiba NB200
- ALSA: hda - Resurrect input-source mixer of ALC268 model=acer
- ALSA: hda - Analog Devices AD1984A add HP Touchsmart model
- ALSA: hda - CD-audio sound for hda-intel conexant benq laptop
- ALSA: hda - Fix MSI GX620 mixer
- ALSA: hda - Fix Dell S14 pin setup
- ALSA: hda - Fix IDT92HD83* codec setup
- ALSA: hda - Add support for HP dv6
- ALSA: hda - Fix HP/line-out initialization with IDT/STAC codecs
- ALSA: hda - Set default GPIO for IDT92HD71bxx
- ALSA: hda - Set default GPIO for STAC/IDT codecs
- ALSA: hda - Add missing model=auto entry for ALC269
- ALSA: hda - Use auto model for HP laptops with ALC268 codec
- ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
- ALSA: hda - Add support of Alienware M17x laptop
- ALSA: hda - Remove dead codes from patch_sigmatel.c
- ALSA: hda - Fix input source selection of IDT92HD73xx
- ALSA: hda - Fix obsolete CONFIG_SND_DEBUG_DETECT
- ALSA: hda - Unmute docking line-out as default with AD1984A codec
- ALSA: hda - Add another entry for Nvidia HDMI device
- ALSA: hda - Add missing GPIO initialization for AD1984A laptop model
- ALSA: hda - Add support of docking auto-mute/mic for AD1984A laptop model
- ALSA: hda - Fix ALC268/ALC269 headphone pint routing
- ALSA: hda - Create "Digital Mic Capture Volume" correctly for IDT codecs
- ALSA: hda - Fix MacBookPro 3,1/4,1 quirk with ALC889A
- ALSA: hda - Add missing mux check for VT1708
HDA Intel driver
- ALSA: hda - Add PCI IDs for Nvidia G2xx-series
- intelhdmi - dont power off HDA link
- ALSA: hda - Terradici HDA controllers does not support 64-bit mode
- ALSA: hda - Add position_fix quirk for HP dv3
- ALSA: hda - Add a position_fix quirk for MSI Wind U115
- ALSA: hda - add beep_mode module parameter
- ALSA: hda - Add reboot notifier to each codec
- ALSA: hda - Don't initialize CORB/RIRB for single_cmd mode
- ALSA: hda - Switch to polling mode before disabling MSI
- ALSA: hda_intel: Add the Linux device ID for NVIDIA HDA controller
- ALSA: hda - Enable MSI as default
- ALSA: hda - Add HP Pavilion dv4t-1300 to MSI whitelist
HDA generic driver
- Fix a typo in ilog2() hack in pci/hda/hda_proc.c
- Add ilog2() wrapper to pci/hda/hda_proc.c
- hda - fix hda_beep.patch according latest alsa-kernel tree
- Revert "Revert "hda_intel: Fix hda_beep.patch according latest alsa-kernel changes""
- Revert "hda_intel: Fix hda_beep.patch according latest alsa-kernel changes"
- hda_intel: Fix hda_beep.patch according latest alsa-kernel changes
- Fix a typo in hda_intel.patch
- Make MSI white/black-list for HD-audio
- ALSA: hda - simplify usage of HDA_SUBDEV_AMP_FLAG
- ALSA: hda - introduce HDA_SUBDEV_AMP_FLAG (ControlAmp in proc)
- ALSA: hda - add more NID->Control mapping
- ALSA: intelhdmi - accept DisplayPort pin
- ALSA: hda - show HBR(High Bit Rate) pin cap in procfs
- ALSA: hda - Fix input and jack Kconfig depenencies
- ALSA: hda - show EPSS capability in proc
- ALSA: hda - introduce snd_hda_jack_detect() and snd_hda_pin_sense()
- ALSA: intelhdmi - export monitor-presence and ELD-valid status
- ALSA: hda - Fix build errors with CONFIG_SND_HDA_INPUT_BEEP=n
- ALSA: hda - Fix beep_mode option value
- ALSA: hda - Get rid of magic digits for subdev hack
- ALSA: hda - add beep_mode module parameter
- ALSA: hda - proc - add support for dynamic controls to mixer<->NID mapping
- ALSA: hda - proc - introduce Control: lines to show mixer<->NID assignment
- ALSA: hda - move snd_hda_pcm_type_name from hda_codec.h to hda_local.h
- ALSA: hda - Don't access invalid substream in proc file
- ALSA: hda - Fix build error without CONFIG_SND_HDA_HWDEP=y
- ALSA: hda - Add power on/off counter
- ALSA: hda - proc - show which I/O NID is associated to PCM device
- [ALSA] hda: beep - add missing cancel_delayed_work
- ALSA: hda - vectorize intelhdmi
- [ALSA] hda_intel: Digital PC Beep - delay input device unregistration
- hda_intel: Digital PC Beep - change behaviour for input layer
HR timer driver
- Refresh patches to remove fuzz
- ALSA: hrtimer - Fix lock-up
I2C cs8427
- Add a workaround for bitrev8() in i2c/cs8427.c
- ALSA: ice1712: Use bitrev8
ICE1712 driver
- Add a build stub for pci/ice1712/quartet.c
- ALSA: ice1724 - aureon - modify WM8770 Master & DAC volume
- tree-wide: fix a very frequent spelling mistake
- ALSA: ice1724 - make some bitfields unsigned
- ALSA: ice1724 - Fix section mismatch in prodigy_hd2_resume()
- ALSA: ice1724 - Patch for suspend/resume for ESI Juli@
- ALSA: ice1724 - Infrasonic Quartet support
- ALSA: ice1724 - Support for multiple external clock types
- ALSA: ice1724 - adding GPIO routines for mask and direction
- ALSA: ak4620 support, codec regs listed in proc
- ALSA: ICE1712/24 - Change the Multi Track Peak control (level meters) from MIXER to PCM type
ICE1724 driver
- ALSA: ice1724 - Infrasonic Quartet support
- ALSA: ice1724 - Support for multiple external clock types
- ALSA: ice1724 - pro-rate-locking makes sense only for internal clock mode
- ALSA: ice1724 - adding GPIO routines for mask and direction
- ALSA: ice1724 - Make call to set hw params succeed on ESI Juli@
- ALSA: ice1724: Fix surround on Chaintech AV-710
- ALSA: ice1724: increase SPDIF and independent stereo buffer sizes
- ALSA: ICE1712/24 - Change the Multi Track Peak control (level meters) from MIXER to PCM type
ISA
- ALSA: dt019x: merge into the als100 driver
- ALSA: sscape: convert to firmware loader framework
- ALSA: sscape: add supoort for SPEA Media FX/Reveal SC-600
ISA DMA
- ALSA: snd_dma_pointer workaround for chipsets with buggy DMA
Intel8x0 driver
- ALSA: intel8x0: Mute External Amplifier by default for Gateway 4525GZ
- ALSA: intel8x0: Mute External Amplifier by default for another Sony model
- ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-B1VP
- ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-T350P
LX6464ES
- ALSA: lx6464es - remove unused struct member
- ALSA: lx6464es - cleanup of rmh message bus function
MIPS SGI A2 Audio System
- ALSA: Fix invalid __exit in sound/mips/*.c
Memalloc module
- Refresh patches to remove fuzz
OPL3
- ALSA: opl3: circular locking in the snd_opl3_note_on() and snd_opl3_note_off()
OSS device core
- Driver-Core: extend devnode callbacks to provide permissions
Opti9xx drivers
- ALSA: opti93x: use dB scale for mixer controls
- ALSA: opti93x: move controls definitions to opti93x driver
- tree-wide: fix assorted typos all over the place
- ALSA: opti93x: fix irq releasing if the irq cannot be allocated
- ALSA: opti93x: set MC indirect registers base from PnP data
- ALSA: opti9xx: remove snd_opti9xx fields
- ALSA: opti-miro: add PnP detection
- ALSA: opti-miro: separate comon probing code
- ALSA: opti-miro: fix OOPS if hardware is not detected
- ALSA: opti-miro: expose ACI mixer to outside drivers
- ALSA: opti-miro: make miro.h header available outside the alsa directory
- ALSA: opti-miro: remove snd_card pointer from snd_miro structure
- ALSA: opti-miro: Fix missing semicolon
- ALSA: opti-miro: use variables directly in the probe function
PARISC Harmony driver
- ALSA: sound/parisc: Move dereference after NULL test
PCI drivers
- ALSA: ice1712: Use bitrev8
- ALSA: SND_CS5535AUDIO: Remove the X86 platform dependency
PDAudioCF driver
- pcmcia: rework the irq_req_t typedef
- pcmcia: remove deprecated handle_to_dev() macro
- ALSA: pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (sound)
PPC
- powerpc: Minor cleanup to sound/ppc/Kconfig
PPC AWACS driver
- [ALSA] rename "PC Speaker" controls to "Speaker"
PPC Burgundy driver
- [ALSA] rename "PC Speaker" controls to "Speaker"
PPC Keywest driver
- sound: Make keywest_driver static
- ALSA: Don't assume i2c device probing always succeeds
SB drivers
- ALSA: sb_mixer: convert pointer tables to mixer control tables
SGI O2 Audio
- ALSA: Fix invalid __exit in sound/mips/*.c
SH platform core
- ALSA: sh: add SuperH DAC audio driver for ALSA V4
Serial BUS drivers
- ALSA: ak4113 support
SoC Audio for Freecale i.MX1x i.MX2x CPUs
- ASoC: Wrong variable returned on error
- ASoC: Remove absent SYNC and TDM DAI format options from i.MX SSI
SoC Audio for the Atmel AT32/AT91 System-on-Chip
- ASoC: at91sam9g20ek_2mmc board uses same audio connexion as at91sam9g20ek
- ASoC: Add source argument to PLL configuration
- [ARM] 5596/1: at91sam9g20-ek: Register WM8731 in board file
SoC Audio for the Samsung S3C24XX chips
- ASoC: Added the CPU driver for PCM controllers
- ASoC: Rename 's3c24xx-pcm' driver to 's3c-dma'
- ASoC: Rename s3c24xx_pcm prefix to s3c_dma
- ASoC: Fixed arguments passed to SMDK64xx set_pll
- ASoC: S3C64XX I2S: Enable audio-bus clock
- ARM: S3C: Add info for supporting circular DMA buffers
- ASoC: Minor SMDK64xx WM8580 cleanups
- ASoC: S3C: Remove <plat/audio.h>
- ASoC: Fix snd_soc_dai_set_pll() calls in neo1973_*.c
- ASoC: Support WM8580 based audio subsystem on SMDK64xx machines
- ASoC: Return correct codec clock in s3c64xx-i2s
- ASoC: Add S3C64xx IIS CDCLK source selection
- ASoC: S3C I2S LRCLK polarity option.
- ASoC: S3C lrsync function made to work with IRQs disabled.
- ARM: S3C24XX: Add platform device for AC97 controller
SoC Blackfin
- ASoC: Blackfin I2S: use dai state rather than local counter
- ASoC: use set_channel_map api to reorder channels for AD1938 and AD1836
- ASoC: fix kconfig order of Blackfin drivers
- ASoC: Blackfin: fix inverted handling of SPORT0 on PORT F/G
- ASoC: Blackfin I2S: fix resuming when device hasn't been used
- ASoC: Blackfin I2S: add lost platform_device parameter to resume function
- ASoC: fix typos in Blackfin headers
- ASoC: bf5xx-sport: the irq save/restore funcs take an unsigned long
- ASoC: Blackfin AC97: add a few missing multichannel define handling
- ASoC: new board driver to connect bfin-5xx with ad1836 codec
SoC Codec AC97
- ASoC: Factor out snd_soc_init_card()
SoC Codec AD1836
- ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
- ASoC: Remove dead code and labels
- ASoC: Factor out snd_soc_init_card()
- ASoC: some minor changes for AD1836 and AD1938 codec drivers
- ASoC: remove unused #include <linux/version.h>
SoC Codec AD1938
- ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
- ASoC: Remove dead code and labels
- ASoC: Factor out snd_soc_init_card()
- ASoC: some minor changes for AD1836 and AD1938 codec drivers
- ASoC: remove unused #include <linux/version.h>
SoC Codec AK4535
- ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
SoC Codec AK4671
- ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
- ASoC: AK4671: add ak4671 codec driver
SoC Codec CS4270
- ASoC: CS4270: export de-emphasis filter as ALSA control
- ASoC: Remove snd_soc_suspend_device()
SoC Codec CX20442
- ASoC: Remove dead code and labels
SoC Codec TLV320AIC23
- ASoC: AIC23: Fixing infinite loop in resume path
- ASoC: tlv320aic23 fix rate selection
SoC Codec TLV320DAC33
- ASoC: tlv320dac33: Change RT wq to singlethread wq
- ASoC: tlv320dac33: typo fix in the header
- ASoC: Codec driver for Texas Instruments tlv320dac33 codec
SoC Codec TPA6130A2
- ASoC: TPA6130A2: Make tpa6130a2_power as static
- ASoC: Minor fixups to tpa6130a2 driver
- ASoC: TPA6130A2 amplifier driver
SoC Codec TWL4030
- ASoC: TWL4030: Do not modify the APLL_CTL register
- ASoC: TWL4030: Make sure, that the codec is powered on startup
- ASoC: TWL4030: Add APLL supply for the capture path
- ASoC: TWL4030: Change APLL powering sequence
- ASoC: TWL4030: Vibra motor stop fix when it is driven with audio
- ASoC: TWL4030: Change codec_muted to apll_enabled
- ASoC: TWL4030: Remove bypass tracking
- ASoC: TWL4030: Driver registration via twl4030_codec MFD
- ASoC: TWL4030: use the twl4030-codec.h for register descriptions
- ASoC: TWL4030: Only update the needed bits in *set_dai_sysclk
SoC Codec WM8350
- ASoC: Remove snd_soc_suspend_device()
- ASoC: WM8350 capture PGA mutes are inverted
- ASoC: Fix WM835x Out4 capture enumeration
SoC Codec WM8400
- ASoC: Remove dead code and labels
- ASoC: Remove snd_soc_suspend_device()
SoC Codec WM8580
- ASoC: Debugged improper setting of PLL fields in WM8580 driver
SoC Codec WM8711
- ASoC: Fix build errors of wm8711.c with SPI
- ASoC: Add TLV information to WM8711
- ASoC: WM8711 minor cleanups
- ASoC: Add SPI support to WM8711
- ASoC: Factor out WM8711 cache I/O
- ASoC: Update WM8711 to driver model registration method
- ASoC: Add WM8711 CODEC driver
SoC Codec WM8727
- ASoC: Staticise wm8727 driver structure
- ASoC: Add support for the WM8727 DAC.
SoC Codec WM8731
- ASoC: Add regulator support for WM8731
SoC Codec WM8753
- ASoC: wm8753: fix mapping when MONOMIX is set to Stereo
SoC Codec WM8940
- ASoC: wm8940: Fix check on error code form snd_soc_codec_set_cache_io
SoC Codec WM8974
- ASoC: Clean up WM8974 PLL configuration
- ASoC: remove unused #include <linux/version.h>
SoC Codec WM8993/4
- tree-wide: fix assorted typos all over the place
- ASoC: Rename controls with a / in wm_hubs
- ASoC: Factor out analogue platform data from WM8993
- ASoC: Fully specify DC servo bits to update in wm_hubs
SoC Codec WM9081
- trivial: remove unnecessary semicolons
SoC Codec WM9705
- ASoC: Revert missing reset_err in wm97*.c
SoC Codec WM9712
- ASoC: Revert missing reset_err in wm97*.c
SoC Codec WM9713
- ASoC: Revert missing reset_err in wm97*.c
SoC Codec ads1174/8
- ASoC: Update ads117x to current APIs
- ASoC: ADS117x ADC driver
SoC DaVinci
- ASoC: DaVinci: use edma_pause, edma_resume
- ASoC: DaVinci: pcm, fix underrun by using sram
- ASoC: DaVinci: pcm, rename variables in prep for ping/pong
- ASoC: DaVinci: i2s, reduce underruns by combining into 1 element
- ASoC: DaVinci: remove requirement that dma_params is 1st in structure
- ASoC: DaVinci: McASP FIFO related updates
- ASoC: Davinci: Add audio codec support for DM365 EVM
- ASoC: DaVinci: Correct McASP FIFO initialization
- ASoC: Davinci: Fix race with cpu_dai->dma_data
- ASoC: DaVinci: Fix divide by zero error during 1st execution
- ASoC: DaVinci: Fixes to McASP configuration
- davinci: EDMA: multiple CCs, channel mapping and API changes
- ASoC: davinci: i2c device creation moved into board files
SoC Dynamic Audio Power Management
- ASoC: Fix suspend with active audio streams
- ASoC: Serialize access to dapm_power_widgets()
- ASoC: Add virtual enumeration support for DAPM muxes
- ASoC: Push DAPM enumeration register change test out
- ASoC: Simplify code for DAPM widget updates
- ASoC: Allow per-route connectedness checks for supplies
- ASoC: Fix SND_SOC_DAPM_LINE handling
- ASoC: Fix display of stream name in DAPM debugfs
SoC Freescale
- ASoC: mpc5200: remove duplicate identical IRQ handler
- sound: ASoC/mpc5200: fix enable/disable of AC97 slots
- sound: ASoC/mpc5200: add to_psc_dma_stream() helper
- sound: ASoC/mpc5200: Improve printk debug output for trigger
- sound: ASoC/mpc5200: get rid of the appl_ptr tracking nonsense
- sound: ASoC/mpc5200: Track DMA position by period number instead of bytes
- ASoC: Clean up error handling in MPC5200 DMA setup
SoC Layer
- Add the build stub for soc/soc-utils.c
- ASoC: Add BCLK calculation utility for TDM mode too
- ASoC: ADS117x ADC driver
- ASoC: Add jack_status_check callback function for GPIO jacks
- ASoC: move setting ac97 platformdata earlier than ac97 read/write
- ASoC: Add bit clock rate calculator utility functions
- ASoC: Factor out snd_soc_init_card()
- ASoC: Move sysfs and debugfs functions to head of soc-core.c
- ASoC: Add support for the WM8727 DAC.
- ASoC: refactor snd_soc_update_bits()
- ASoC: remove io_mutex
- ASoC: TWL4030: Driver registration via twl4030_codec MFD
- ASoC: Move dereference after NULL test
- ASoC: Fix possible codec_dai->ops NULL pointer problems
- ASoC: Codec driver for Texas Instruments tlv320dac33 codec
- ASoC: Remove snd_soc_suspend_device()
- ASoC: Add SPI support to WM8711
- ASoC: TPA6130A2 amplifier driver
- ASoC: Improve the debugfs hierarchy
- ASoC: add support for multiple cards/codecs in debugfs
- ASoC: Add PDM DAI format definition
- ASoC: Convert soc-cache to use C99 style initialisers for the table
- ASoC: Provide API for reordering channels
- ASoC: AK4671: add ak4671 codec driver
- ASoC: Factor out I2C 8 bit address 8 bit data I/O
- ASoC: Add source argument to PLL configuration
- ASoC: Add WM8711 CODEC driver
- ASoC: Remove unuused hw_read_t
SoC S6000
- ASoC: Use DMA_BIT_MASK(32) instead of deprecated DMA_32BIT_MASK
SoC SH7760 AC97
- ASoC: sh: fsi: Add runtime PM support
- ASoC: sh: FSI: Add capture support
- ASoC: sh: FSI: Remove DMA support
SoC Texas Instruments OMAP
- ASoC: Fix build of OMAP sound drivers
- ASoC: Adding OMAP3517 / AM3517 EVM support in ASOC
- omap: headers: Move remaining headers from include/mach to include/plat
- ASoC: Add support for IGEP v2
- ASoC: OMAP: enable Overo driver for CM-T35
- ASoC: OMAP3 Pandora: update for TWL4030 codec changes
- ASoC: Modifying the license string GPLv2 for OMAP3 EVM
- ASoC: omap-mcbsp - add support for upto 16 channels.
- ASoC: Pandora: Pass SRG input clock frequency to the OMAP McBSP DAI
- ASoC: Modifying Kconfig/Makefile for AM3517 EVM
- ASoC: OMAP3EVM: Use the twl4030_setup_data for headset pop-removal
- ASoC: OMAP: Don't try to set unsupported OMAP_DMA_DATA_BURST_16 on OMAP1
- ASoC: Amstrad Delta minor cleanups
- ASoC: Amstrad Delta: add info about the line discipline requirement to Kconfig help text
- ASoC: OMAP: Add functionality to set CLKR and FSR sources in McBSP DAI
Soc PXA2xx Raumfeld
- ASoC: pxa/raumfeld: adopt new snd_soc_dai_set_pll() API
- ALSA: ARM: add Raumfeld audio support
Sound Scape driver
- ALSA: sscape: coding style fixes
- ALSA: sscape - Remove invalid __devinitdata to module parameters
- ALSA: sscape: force AD1848 codec mode on old Soundscape
- ALSA: sscape: remove MIDI instances counting with limit ULONG_MAX
- ALSA: sscape: convert to firmware loader framework
- ALSA: sscape: add supoort for SPEA Media FX/Reveal SC-600
SuperH DAC audio driver
- ALSA: sh: add SuperH DAC audio driver for ALSA V4
TEA575x tuner
- ALSA: tea575x-tuner: fix mute
USB
- sound: add Edirol UA-101 support
USB USX2Y
- usb: fix compilation issues against latest alsa-kernel tree
- Fix a missing patch chunk in usx2yhwdeppcm.patch
- Refresh vm_ops related patches
- ALSA: snd-usb-us122l: add product IDs of US-122MKII and US-144MKII
- sound: usxxx: cleanup chip field
- sound: usb: make the USB MIDI module more independent
- ALSA: snd-usb-us122l: corrent error number for not probing US-144 on ehci-hcd
- ALSA: snd-usb-us122l: add support for US-144
- const: mark struct vm_struct_operations
USB caiaq
- ALSA: snd-usb-caiaq: Bump version number to 1.3.20
- ALSA: snd-usb-caiaq: Lock on stream start/unpause
- ALSA: snd-usb-caiaq: Missing lock around use of buffer positions
USB generic driver
- usb: fix compilation issues against latest alsa-kernel tree
- Add hweight16() wrapper for usb/usbmidi.c
- sound: add Edirol UA-101 support
- ALSA: usb - Fix mixer map for Hercules Gamesurround Muse Pocket LT
- ALSA: sound: usbmidi: Use hweight16
- sound: usb-audio: add Roland UA-1G support
- ALSA: usb - Quirk to disable master volume control in PCM2702
- sound: usb: make the USB MIDI module more independent
- ALSA: usb-audio: fix combine_word problem
- sound: usb-audio: allow switching altsetting on Roland USB MIDI devices
- ALSA: usb - Use strlcat() correctly
- ALSA: Re-export snd_pcm_format_name() function
Utils
- Add a workaround for bitrev8() in i2c/cs8427.c
- Grammatical corrections in INSTALL and utils/setup-alsa-kernel script
VIA82xx driver
- sound: via82xx: deactivate DXS controls of inactive streams
- sound: via82xx: move DXS volume controls to PCM interface
WSS library
- ALSA: opti93x: move controls definitions to opti93x driver
- ALSA: cs4236: update control names
- ALSA: cs4236: detect chip in one pass
- ALSA: wss: reuse CS4231 controls for AD1848
- ALSA: wss: convert CS4231 mixer to dB scale
alsa-lib
Core
- Release v1.0.22
- configure.in: fix --without-softfloat
- Define _GNU_SOURCE so that <fcntl.h> gives O_CLOEXEC
- Open device nodes with close-on-exec flag
- configure.in: Add m4 check for new AM_SILENT_RULES
- cvscompile: Remove in favour of gitcompile.
- Release v1.0.21a
Control API
- Remove redefinition of _GNU_SOURCE and __USE_GNU
- Remove old commented-out FD_CLOEXEC code
- namehint: list card independent devices only once
- namehint: Allow snd_device_name_hint to search for CTL devices.
- namehint: add missing list->card initialization
- Fix corruption after snd_device_name_hint()
- hcontrol: fix compare_default function to handle also id.device and id.subdevice
- control: Remove unused variable.
HWDEP API
- Remove old commented-out FD_CLOEXEC code
Mixer API
- mixer: fix enum check
- simple_none.c uses HAVE_SOFT_FLOAT it has to include config.h
- Fix CHECK_ENUM() in simple.c
- mixer: Add Speaker and Beep names to the weight list
PCM API
- Update pcm doc strings
- Remove old commented-out FD_CLOEXEC code
- pcm_rate_linear: Annotate unused function parameter to avoid compiler warnings.
- dmix - Fix snd_pcm_info()
- pcm_hw: Always use delay ioctl in snd_pcm_delay()
- PCM - Change the hw_params determination order
RawMidi API
- Remove old commented-out FD_CLOEXEC code
Sequencer API
- Remove old commented-out FD_CLOEXEC code
Timer API
- Remove redefinition of _GNU_SOURCE and __USE_GNU
- Remove old commented-out FD_CLOEXEC code
- Defined symbols exposing the hrtimer to applications.
ALSA Lisp
- alisp: Comment out an unused function to avoid compiler warnings.
Configuration
- Change dmix.conf to accept user configuration from defaults.dmix.<driver_id>.xxx
- Revert "Fix driver conf parsing in snd_config_hook_load_for_all_cards()"
Dynamic Loader helpers
- Remove redefinition of _GNU_SOURCE and __USE_GNU
- Cache libasound.so access in snd_dlopen
Kernel Headers
- Defined symbols exposing the hrtimer to applications.
alsa-utils
Core
- Release v1.0.22
ALSA Control (alsactl)
- alsactl: fix error path code in init_parse.c
- alsactl: init - default - initialize also "Digital Input Source"
- alsactl init: Add CTL{do_search} and CTL{do_count} parsers
- alsactl init: use empty GOTOs in init/default file to increase readability
- alsactl: introduce CTL{write} to match directly written CTL values
- alsactl - Initialize Speaker volume to 0dB when Master is present
- alsactl init: Fix typo "(" -> "{" in Headphone default rule
Speaker Test
- speaker-test: not all sample formats are supported - show only supported ones
- speaker-test: add -d (--debug) option to show PCM parameters
aplay/arecord
- arecord: fix wrong chunk_size initialization when verbose and mmap flags are set
- aplay - Show available formats
alsa-tools
Core
- Release v1.0.22
Envy24 Control
- envy24control: Changing the Multi Track Peak control from MIXER to PCM type
alsa-plugins
Core
- Release v1.0.22
A52 Output plugin
- a52 - set channel layout with recent libavcodec
- a52 - fix 5.1 channel order with recent libavcodec
Automatic upmix / downmix plugins
- upmix - Add 7.1 support
alsa-python
Core
- Release v1.0.22
pyalsa.alsahcontrol module
- hcontrol: fix a typo
- hcontrol: allow constructing Elem with numid
- hcontrol: add poll_fds property
- hcontrol: fix memory leak
- hcontrol: fix variable type
Detailed changelog between 1.0.21 and 1.0.22 releases
alsa-driver
Sound Core
- - Release v1.0.22
- - Set build restrict for ua101
- It requires new stuff in 2.6.32.
- - add compilation stub for ua101.c
- - Add a workaround for bitrev8() in i2c/cs8427.c
- - Add workaround for dmi functions
- Add a wrapper file for linux/dmi.h for older kernels.
- Also, more workarounds for dmi_find_device() in pci/hda/patch_sigmatel.c.
- - Grammatical corrections in INSTALL and utils/setup-alsa-kernel script
- - Allow patching include/sound header files
- Copy or apply a patch to each header file in alsa-kernel instead of
- symliking to the directory. This will make it possible to give a
- better binary compatibility for older kernels.
- - Kconfig: Remove useless and sometimes wrong comments
- Additionally, some excessive newlines removed.
- - sound: Kconfig typo fix
- Fix a typo in the help text in sound/Kconfig.
ALSA Core
- - Add wrappers for some new macros in linux/kernel.h
- - Add a dummy wrapper for pci_clear_master()
- - Add workaround for dmi functions
- Add a wrapper file for linux/dmi.h for older kernels.
- Also, more workarounds for dmi_find_device() in pci/hda/patch_sigmatel.c.
- - add struct pid wrappers
- Add compatibilty wrappers for struct pid functions for older kernels.
- - Add true and false definitions for older kernels
- - Add wrappers for work_pending() and delayed_work_pending()
- - Fix 64bit issue in snd_compat_print_hex_dump_bytes()
- Add missing cast in snd_compat_print_hex_dump_bytes() for 64bit archs.
- - Add strict_strtoull() wrapper
- - Add snd_card_new() for ABI compatibility
- Just for other drivers.
- - Add sound/core patch for ABI compatibility
- Try to keep the field assignment of struct snd_core to be compatible.
- Also, move some stuff to here from adriver.h.
- - Add snd_verbose_printk and snd_verbose_printd
- Added snd_verbose_printk() and snd_verbose_printd() just for keeping
- ABI compatibility in some level.
- - ALSA: sscape - Remove sscap_ioctl.h from include/sound/Kbuild
- - ALSA: Add const prefix to proc helper functions
- Add appropriate const prefix to char * arguments in proc helper functions.
- Also fixed the caller side to be proper const pointers.
- - ALSA: Remove unneeded ifdef from sound/core.h
- Remove the old hack that was needed for building alsa-driver modules
- externally for old kernels.
- - ALSA: Remove struct snd_monitor_file from public sound/core.h
- The struct snd_monitor_file is used locally only in sound/core/init.c,
- thus it should be moved there from the public sound/core.h.
SoC PXA2xx Core
- - ALSA: ARM: add Raumfeld audio support
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: finally enable support for eXeda and CM-X300
- CC: Mark Brown <broonie@opensource.wolfsonmicro.com>
- CC: alsa-devel@alsa-project.org
- - ASoC: pxa-ssp increase max_channels to 8
- When running in TDM mode there can be more than 2 channels used. Datasheet has
- figures for upto 8 channels so increase max_channels on all SSP interfaces to
- this figure.
- - ASoC: Fix dependency of CONFIG_SND_PXA2XX_SOC_IMOTE2
- wm8940 requires I2C.
- - trivial: remove unnecessary semicolons
Control Midlevel
- - Refresh patches to remove fuzz
- - ALSA: remove unnecessary null check
- This function is only called from snd_ctl_ioctl() and the file parameter
- can never be null so there is no need to check it here.
- We dereference file at the start of the function:
- struct snd_card *card = file->card;
- and it confuses static checkers to dereference a pointer before
- checking it.
- - control: use reference-counted pid
- Instead of storing the PID number, take a reference to the task's pid
- structure. This protects against duplicates due to PID overflows, and
- using pid_vnr() ensures that the PID returned by snd_ctl_elem_info() is
- correct as seen from the current namespace.
- - control: remove snd_konctrol_volatile::owner_pid field
- We do not need to save the ID of the process that locked a control
- because that information is already available in the owner's file data.
PCM Midlevel
- - Refresh patches to remove fuzz
- - Refresh pcm_native.patch for changes of DMA handling
- - Refresh vm_ops related patches
- The patches got broken due to the upstream changes of vm_ops to the
- const pointer. Refreshed now.
- - Refresh pcm_natvie.patch
- - ALSA: pcm - fix page conversion on non-coherent PPC arch
- The non-cohernet PPC arch doesn't give the correct address by a simple
- virt_to_page() for pages allocated via dma_alloc_coherent().
- This patch adds a hack to fix the conversion similarly like MIPS.
- Note that this doesn't fix perfectly: the pages should be marked with
- proper pgprot value. This will be done in a future implementation like
- the conversion to dma_mmap_coherent().
- Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
- - ALSA: pcm - fix page conversion on non-coherent MIPS arch
- The non-coherent MIPS arch doesn't give the correct address by a simple
- virt_to_page() for pages allocated via dma_alloc_coherent().
- Original patch by Wu Zhangjin <wuzj@lemote.com>.
- [Ralf mentioned: "The origins of this patch go back far further.
- The oldest patch I could find which is a superset of this was written
- by Atsushi Nemoto and various incarnations of it have been sumitted
- to and reject by me a number of times through the years."]
- A proper check of the buffer allocation type was added to avoid the
- wrong conversion.
- Note that this doesn't fix perfectly: the pages should be marked with
- proper pgprot value. This will be done in a future implementation like
- the conversion to dma_mmap_coherent().
- Acked-by: Ralf Baechle <ralf@linux-mips.org>
- - ALSA: pcm - define snd_pcm_default_page_ops()
- Add a helper (inline) function as the default page ops. Any hacks wrt
- the page address conversion will be applied in this function.
- - ALSA: pcm - Use dma_mmap_coherent() if available
- Use dma_mmap_coherent() for mmapping the buffers allocated via
- dma_alloc_coherent() if available. Currently, only ARM has this function,
- so we do temporarily have an ifdef pcm_native.c. This should be handled
- better globally in future.
- - sound: pcm: record a substream's owner process
- Record the pid of the task that opened a PCM substream. For sound
- cards with hardware mixing, this allows determining which process
- is associated with a specific substream's volume control.
- - control: use reference-counted pid
- Instead of storing the PID number, take a reference to the task's pid
- structure. This protects against duplicates due to PID overflows, and
- using pid_vnr() ensures that the PID returned by snd_ctl_elem_info() is
- correct as seen from the current namespace.
- - ALSA: sound: Move dereference after NULL test and drop unnecessary NULL tests
- In pcm.c, if the NULL test on pcm is needed, then the dereference should be
- after the NULL test.
- In dummy.c and ali5451.c, the context of the calls to
- snd_card_dummy_new_mixer and snd_ali_free_voice show that dummy and pvoice,
- respectively cannot be NULL.
- A simplified version of the semantic match that detects this problem is as
- follows (http://coccinelle.lip6.fr/):
- // <smpl>
- @match exists@
- expression x, E;
- identifier fld;
- @@
- * x->fld
- ... when != \(x = E\|&x\)
- * x == NULL
- // </smpl>
- - const: mark struct vm_struct_operations
- * mark struct vm_area_struct::vm_ops as const
- * mark vm_ops in AGP code
- But leave TTM code alone, something is fishy there with global vm_ops
- being used.
- - ALSA: pcm - Simplify snd_pcm_drain() implementation
- Simplify snd_pcm_drain() implementation and avoid unneeded array-
- allocation for waitqueues. Instead, one waitqueue is used for the
- first draining stream, and wait until all streams finished.
- - ALSA: Re-export snd_pcm_format_name() function
- Re-export snd_pcm_format_name() function to be used outside the PCM core.
- As a first example, usbaudio is changed to use it now again.
RawMidi Midlevel
- - Add O_DSYNC definition in rawmidi.c
- Now O_DSYNC is used instead of O_SYNC in rawmidi.c.
- - vfs: Implement proper O_SYNC semantics
- While Linux provided an O_SYNC flag basically since day 1, it took until
- Linux 2.4.0-test12pre2 to actually get it implemented for filesystems,
- since that day we had generic_osync_around with only minor changes and the
- great "For now, when the user asks for O_SYNC, we'll actually give
- O_DSYNC" comment. This patch intends to actually give us real O_SYNC
- semantics in addition to the O_DSYNC semantics. After Jan's O_SYNC
- patches which are required before this patch it's actually surprisingly
- simple, we just need to figure out when to set the datasync flag to
- vfs_fsync_range and when not.
- This patch renames the existing O_SYNC flag to O_DSYNC while keeping it's
- numerical value to keep binary compatibility, and adds a new real O_SYNC
- flag. To guarantee backwards compatiblity it is defined as expanding to
- both the O_DSYNC and the new additional binary flag (__O_SYNC) to make
- sure we are backwards-compatible when compiled against the new headers.
- This also means that all places that don't care about the differences can
- just check O_DSYNC and get the right behaviour for O_SYNC, too - only
- places that actuall care need to check __O_SYNC in addition. Drivers and
- network filesystems have been updated in a fail safe way to always do the
- full sync magic if O_DSYNC is set. The few places setting O_SYNC for
- lower layers are kept that way for now to stay failsafe.
- We enforce that O_DSYNC is set when __O_SYNC is set early in the open path
- to make sure we always get these sane options.
- Note that parisc really screwed up their headers as they already define a
- O_DSYNC that has always been a no-op. We try to repair it by using it for
- the new O_DSYNC and redefinining O_SYNC to send both the traditional
- O_SYNC numerical value _and_ the O_DSYNC one.
- Cc: Richard Henderson <rth@twiddle.net>
- Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
- Cc: Grant Grundler <grundler@parisc-linux.org>
- Cc: "David S. Miller" <davem@davemloft.net>
- Cc: Ingo Molnar <mingo@elte.hu>
- Cc: "H. Peter Anvin" <hpa@zytor.com>
- Cc: Thomas Gleixner <tglx@linutronix.de>
- Cc: Al Viro <viro@zeniv.linux.org.uk>
- Cc: Andreas Dilger <adilger@sun.com>
- Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com>
- Acked-by: Kyle McMartin <kyle@mcmartin.ca>
- Acked-by: Ulrich Drepper <drepper@redhat.com>
- - sound: rawmidi: record a substream's owner process
- Record the pid of the task that opened a RawMIDI substream.
- - control: use reference-counted pid
- Instead of storing the PID number, take a reference to the task's pid
- structure. This protects against duplicates due to PID overflows, and
- using pid_vnr() ensures that the PID returned by snd_ctl_elem_info() is
- correct as seen from the current namespace.
- - sound: rawmidi: fix opened substreams count
- The substream_opened field is to count the number of opened substreams,
- not the number of times that any substreams have been opened.
- Furthermore, all substreams being opened does not imply that the next
- open would fail, due to the possibility of O_APPEND. With this wrong
- check, opening a substream multiple times would succeed only if the
- device had more unopened substreams.
- - sound: rawmidi: fix MIDI device O_APPEND error handling
- Commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a in 2.6.30 broke the
- error handling code in rawmidi_open_priv().
- If only the output substream of a RawMIDI device has been opened and
- if this device is then opened with O_RDWR | O_APPEND and if the
- initialization of the input substream fails (either because of low
- memory or because the device driver's open callback fails), then the
- runtime structure of the already open output substream will be freed
- and all following writes through the first handle will cause
- snd_rawmidi_write() to use the NULL runtime pointer.
- Cc: <stable@kernel.org>
- - sound: rawmidi: fix checking of O_APPEND when opening MIDI device
- Commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a in 2.6.30 dropped the
- check that a substream must already have been opened with O_APPEND to be
- able to open it a second time.
- This would make it possible for a substream to be switched to append
- mode, which would mean that non-atomic writes would fail unexpectedly.
- Cc: <stable@kernel.org>
- - sound: rawmidi: fix double init when opening MIDI device with O_APPEND
- Commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a in 2.6.30 moved the
- substream initialization code to where it would be executed every time
- the substream is opened.
- This had the consequence that any further opening would drop and leak
- the data in the existing buffer, and that the device driver's open
- callback would be called multiple times, unexpectedly.
- Cc: <stable@kernel.org>
/arm/Makefile
- - ALSA: Remove old DMA-mmap code from arm/devdma.c
- The call of dma_mmap_coherent() is done in the PCM core now.
/include/Makefile
- - Add a dummy modules_install target to include/Makefile
- - Allow patching include/sound header files
- Copy or apply a patch to each header file in alsa-kernel instead of
- symliking to the directory. This will make it possible to give a
- better binary compatibility for older kernels.
/isa/Makefile
- - Remove obsoleted dt019x build stub
- - ALSA: dt019x: merge into the als100 driver
- The als100 driver is so similar to the dt019x/als007 driver
- that one driver's source can be used for both drivers with
- only few changes. Merge the dt019x driver into the als100.
/soc/Makefile
- - ASoC: Add bit clock rate calculator utility functions
- Many devices need to calculate the bit clock rate desired to
- work out the clock configuration required for the device.
- Provide utility functions to do this using both hw_params
- structures and raw numbers.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
/soc/codecs/Makefile
- - ASoC: ADS117x ADC driver
- This patch adds support for the TI ADS117x family of multichannel ADCs
- and was sponsored by Shotspotter Inc.
- - ASoC: Add support for the WM8727 DAC.
- Add support for the Wolfson Microelectronics WM8727 DAC, this is a simple
- non-configurable DAC.
- - ASoC: Codec driver for Texas Instruments tlv320dac33 codec
- Driver for Texas Instruments TLV320DAC33 (SLAS546) low power stereo
- audio DAC.
- TLV320DAC33 is a stereo audio codec with integrated 24KB FIFO for low
- power audio playback.
- The digital interface can use I2S, DSP (A or B), Right and Left
- justified formats.
- DAC33 has stereo analog input, which can be bypassed to the analog
- outputs.
- Regarding to the internal 24KB FIFO the driver implements 'FIFO bypass'
- mode (default) and nSample mode (FIFO is in use).
- a) In 'FIFO bypass' mode the internal FIFO is not in use, the codec is
- working synchronously as a normal codec (it needs constant stream of
- data on the digital interface).
- b) The nSample mode implementation uses one interrupt line from DAC33 to
- the host:
- Alarm threshold is set to 10ms of audio data (limit by the driver
- implementation).
- DAC33 will signal an interrupt, when the FIFO level goes under the
- Alarm threshold.
- The host will write to nSample register a value (number of stereo
- samples), to tell DAC33 how many samples it should read in a burst from
- the host. When the DAC33 received the number of samples, it disables the
- clocks on the I2S bus. When the FIFO use again goes under the Alarm
- threshold, DAC33 signals the host with an interrupt, and the process is
- repeated.
- - ASoC: TPA6130A2 amplifier driver
- Driver for Texas Instruments TPA6130A2 stereo headphone
- amplifier.
- The driver provides playback gain control and also pre-defined
- DAPM_HP widgets and DAPM routings for power management.
- The DAPM_HP widget names are:
- "TPA6130A2 Headphone Left"
- "TPA6130A2 Headphone Right"
- From soc machine drivers to use with the tpa6130a2 amplifier,
- the tpa6130a2_add_controls has to be called, which adds the alsa
- controls and the DAPM routing needed for the tpa6130a2.
- After that the machine driver can connect the codec's output
- with 'TPA6130A2 Left' and 'TPA6130A2 Right':
- {"TPA6130A2 Left", NULL, "CODEC LEFT OUT"},
- {"TPA6130A2 Right", NULL, "CODEC RIGHT OUT"},
- Internally the left and right channels are powered separately.
- When none of the channels are needed the amplifier is powered
- down:
- hard power: valid GPIO number is passed within platform data
- soft power: Using the software shutdown of the amplifier
- - ASoC: AK4671: add ak4671 codec driver
- The AK4671 is a stereo CODEC with a built-in Microphone-Amplifier,
- Receiver-Amplifier and Headphone-Amplifier.
- The datasheet for the ak4671 can find at the following url:
- http://www.asahi-kasei.co.jp/akm/en/product/ak4671/ak4671_f01e.pdf
- - ASoC: Add WM8711 CODEC driver
- The WM8711 or WM8711L (WM8711/L) is a low power stereo DAC with an
- integrated headphone driver. The WM8711/L is designed specifically for
- portable MP3 audio and speech players. The WM8711/L is also ideal for
- MD, CD machines and DAT players.
/soc/pxa/Makefile
- - ALSA: ARM: add Raumfeld audio support
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
AC97 Codec
- - ALSA: ac97_codec - increase timeout for analog sections to 5 second
- I have a Soundblaster 16PCI. For many years, alsa has had a bug where
- not all of the card's controls are detected (many alsa versions,
- many kernel versions). In particular, Master Playback Volume is
- usually not detected, and so I get no sound or extremely faint sound.
- The problem has always been inconsistent: sometimes all of the controls
- are detected correctly, and sometimes a partial set is detected. It works
- correctly about 10% of the time.
- Finally, I got around to tracking down the problem. When the driver
- fails, it prints the kernel message "AC'97 0 analog subsections not
- ready". This message is generated from the function snd_ac97_mixer()
- in ac97_codec.c. The message indicates that the card failed to come
- back after reset within the time limit. The time limit is
- 120 milliseconds.
- I tried increasing the time limit to 1 second, and found that this
- made the driver work about 70% of the time. I tried increasing it
- to 5 seconds, and it now seems to work 100% of the time.
- I expect that this change would be completely harmless for
- existing cards that work, and would only introduce additional
- delay for cards that do not work.
- ALSA bug#4032.
- - comment typo fix: sybsystem -> subsystem
AK4113 receiver
- - Add a build-stub for i2c/other/ak4113.c
- - ALSA: ak4113 support
- * complete support for ak4113
- * based on code for ak4114 and ak4117
AK4114 receiver
- - ALSA: ak4114 - fix errors in output selector bits
- * the previous version had a typo - values of AK4114_OPS10-12 were
- identical with AK4114_OPS00-02
- * Since no cards actually use this feature, the bug was not identified earlier
AK4XXX AD/DA converters
- - ALSA: ak4620 support, codec regs listed in proc
- * complete support for ak4620
- * codec regs listed in proc for all codecs/chips
- * adding total regs for each codec
- * fixing nb. of steps in input attenuation controls
ALI5451 driver
- - ALSA: sound: Move dereference after NULL test and drop unnecessary NULL tests
- In pcm.c, if the NULL test on pcm is needed, then the dereference should be
- after the NULL test.
- In dummy.c and ali5451.c, the context of the calls to
- snd_card_dummy_new_mixer and snd_ali_free_voice show that dummy and pvoice,
- respectively cannot be NULL.
- A simplified version of the semantic match that detects this problem is as
- follows (http://coccinelle.lip6.fr/):
- // <smpl>
- @match exists@
- expression x, E;
- identifier fld;
- @@
- * x->fld
- ... when != \(x = E\|&x\)
- * x == NULL
- // </smpl>
ALS100 driver
- - ALSA: dt019x: merge into the als100 driver
- The als100 driver is so similar to the dt019x/als007 driver
- that one driver's source can be used for both drivers with
- only few changes. Merge the dt019x driver into the als100.
ALSA Version
- - ALSA: Release v1.0.21
ALSA<-OSS emulation
- - [ALSA] rename "PC Speaker" controls to "Speaker"
- To unify control names, rename "PC Speaker" to "Speaker" for PPC ALSA drivers.
- - ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
- To avoid confusion in control names for the standard analog PC Beep generator
- using a small Internal PC Speaker, rename all related "PC Speaker" and "PC
- Beep" controls to "Beep" only. This name is more universal and can be also
- used on more platforms without confusion.
- Introduce also "Internal Speaker" in ControlNames.txt for systems with
- full-featured build-in internal speaker.
- - ALSA: Add const prefix to proc helper functions
- Add appropriate const prefix to char * arguments in proc helper functions.
- Also fixed the caller side to be proper const pointers.
- - ALSA: allocation may fail in snd_pcm_oss_change_params()
- Allocation may fail, show if it did.
- [Additional fix for invalid runtime->oss.prepare flag set by tiwai]
ARM AACI PL041 driver
- - ALSA: aaci - Clean up duplicate code
- Now snd_ac97_pcm_open() is called with the exactly same arguments
- for both playback and capture directions. Remove the unneeded check.
- - ALSA: Remove old DMA-mmap code from arm/devdma.c
- The call of dma_mmap_coherent() is done in the PCM core now.
- - ALSA: AACI: fix recording bug
- pcm->r[1].slots is the double rate slot information, not the
- capture information. For capture, 'pcm' will already be the
- capture ac97 pcm structure.
- Cc: <stable@kernel.org>
- - ALSA: AACI: fix AC97 multiple-open bug
- Cc: <stable@kernel.org>
- - ALSA: AACI cleanup
- Fix the buffer size calculation to use the size which ALSA is expecting.
- - ALSA: aaci: ARM1176 aaci-pl041 AC97 register read timeout
- After a reboot on an ARM1176 which amounts to a softreset, it has been
- noted that the ALSA driver does not get registered and the probe fails
- with the error "aaci-pl041 fpga:04: ac97 read back fail". In the process
- of reading from a register the SL1TxBusy bit is set indicating that the
- transceiver is busy and remains so until the default timeout occurs.
- Set the Power down register 0x26 to an arbitrary value as specified in
- the PL041 manual (page: 3-18) so that AACISL1TX/AACISL2TX registers take
- their default state.
ARM DMA routines
- - ALSA: Remove old DMA-mmap code from arm/devdma.c
- The call of dma_mmap_coherent() is done in the PCM core now.
ARM PXA2XX driver
- - [ARM] pxa: update pxa2xx-ac97.c to use 'struct dev_pm_ops'
- - ASoC: fix pxa2xx-ac97.c breakage
- Today's linux-next fails to build with
- sound/arm/pxa2xx-ac97.c: In function 'pxa2xx_ac97_probe':
- sound/arm/pxa2xx-ac97.c:211: error: 'pxa2xx_audio_ops_t' has no member named 'codec_data'
- make[2]: *** [sound/arm/pxa2xx-ac97.o] Error 1
- It looks like commit e2365bf313fb21b49b1e4c911033389564428d03 has
- introduced this; patch below.
Apple Onboard Audio driver
- - ALSA: Don't assume i2c device probing always succeeds
- The client->driver pointer can be NULL when i2c-device probing fails
- in i2c_new_device(). This patch adds the NULL checks for client->driver
- and return the error instead of blind assumption of driver availability.
- Reported-by: Tim Shepard <shep@alum.mit.edu>
- Cc: Jean Delvare <khali@linux-fr.org>
- Cc: Johannes Berg <johannes@sipsolutions.net>
Asihpi driver
- - asihpi: fix compilation of hpios_linux_kernel.c
- sched.h is no longer included by interrupt.h.
Au12x0/Au1550 PSC ASoC
- - ASoC: au1x: dbdma2: plug memleak in pcm device creation error path
- free the allocated pcm platform device in the error path.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: au1x: dbdma2: fix oops on soc device removal.
- platform_device_unregister() frees resources for us, no need to
- do it explicitly. Fixes an oops when machine code removes the
- soc-audio device.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: au1x: convert to platform drivers.
- Convert psc-ac97,i2s to platform drivers similar to the davinci ones.
- - ASoC: au1x: psc-ac97: reorganize timeouts
- Codec read/write functions: wait 21us between the pokings of hardware.
- Add timeouts to unbounded loops waiting for bits to change.
- - ASoC: au1x: psc-ac97: verify correct codec register was read
- Verify that the correct register has been received from the codec.
- - ASoC: au1x: PSC-AC97 bugfixes
- This patch fixes the following bugs:
- - only reprogram bitdepth if it has changed since last call to hw_params.
- - add locking inside ac97_read/write functions:
- When reprogramming sample depth, the ac97 unit has to be disabled,
- which should not be done in the middle of codec register accesses.
- - retry timed-out codec register accesses.
- - wait for status bits to set/clear when starting/stopping various
- functional blocks; very important after reenabling AC97 unit else
- sound may be distorted (e.g. high-pitch noise in 1kHz sine wave).
- - clear fifos before/after starting/stopping RX/TX.
- - longer timeouts waiting for PSC/AC97 ready after cold reset
- with certain codecs this can take ridiculous amounts of time.
- Run-tested on various Au1200 platforms with various codecs.
BT87x driver
- - ALSA: bt87x - Add a whitelist for Pinnacle PCTV (11bd:0012)
CA0106 driver
- - tree-wide: fix assorted typos all over the place
- That is "success", "unknown", "through", "performance", "[re|un]mapping"
- , "access", "default", "reasonable", "[con]currently", "temperature"
- , "channel", "[un]used", "application", "example","hierarchy", "therefore"
- , "[over|under]flow", "contiguous", "threshold", "enough" and others.
- - ALSA: Cleanup redundant tests on unsigned
- The variables are unsigned so the test `>= 0' is always true,
- the `< 0' test always fails. In these cases the other part of
- the test catches wrapped values.
- In dac_audio_write() there does not occur a test for wrapped
- values, but the test appears redundant.
CMI8330 driver
- - ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
- To avoid confusion in control names for the standard analog PC Beep generator
- using a small Internal PC Speaker, rename all related "PC Speaker" and "PC
- Beep" controls to "Beep" only. This name is more universal and can be also
- used on more platforms without confusion.
- Introduce also "Internal Speaker" in ControlNames.txt for systems with
- full-featured build-in internal speaker.
CMI8788 (Oxygen) driver
- - oxygen: add more build stubs
- - sound: oxygen: add high-pass filter control
- Add a control that allows disabling the high-pass filter of the WM8785 ADC.
- - sound: oxygen: add digital filter control
- Add a control to select between sharp and slow roll-of filter responses
- of the DACs.
- - sound: virtuoso: add PCM1796 oversampling control
- Add a control to increase the oversampling factor to 128x on cards with
- PCM1796 or PCM1792A DACs.
- - sound: oxygen: allow custom MCLK rates
- Add a callback that allows model drivers to modify the default I2S MCLK
- rate.
- - sound: virtuoso: add headphone impedance control
- Add a mixer control to adjust the headphone amplifier output for
- headphones with different impedances.
- - sound: oxygen: cache codec registers
- Keep a cache of codec registers to avoid unnecessary writes.
- - sound: virtuoso: fix Xonar Essence ST support
- The Essence ST uses the CS2000 chip to generate the DAC master clock, so
- we better initialize and program it appropriately.
- - sound: oxygen: fix input monitor control names
- Insert "Playback" into the input monitor control names to prevent
- alsa-lib from treating these controls as global controls.
- - sound: oxygen: more hardware documentation
- Add some comments describing the hardware pin routing.
- - sound: oxygen: add stereo upmixing to center/LFE channels
- Add the possibility to route a mix of the two channels of stereo data to
- the center and LFE outputs. This is implemented only for models where
- the DACs support this, i.e., for the Xonar D1 and DX.
- - sound: oxygen: better defaults for upmixing control
- On card models with two-channel outputs, the base driver can
- automatically disable the upmixing control so that the model
- drivers do not need to do this.
- - sound: virtuoso: split virtuoso.c
- The virtuoso.c file has become rather big. This patch splits it up so
- that only code for very similar card models is in one file.
- - sound: oxygen: fix for PI7C9X110 compatibility
- If the card is used with a Pericom PI7C9X110 PCI-E/PCI bridge,
- reconfigure the latter's PCI buffering to fix an unknown problem.
- - sound: oxygen: do not try to restore nonexistent EEPROM
- On cards where the EEPROM was deliberately omitted, we do not need to
- try to restore the EEPROM's contents.
- - sound: oxygen: work around MCE when changing volume
- When the volume is changed continuously (e.g., when the user drags a
- volume slider with the mouse), the driver does lots of I2C writes.
- Apparently, the sound chip can get confused when we poll the I2C status
- register too much, and fails to complete a read from it. On the PCI-E
- models, the PCI-E/PCI bridge gets upset by this and generates a machine
- check exception.
- To avoid this, this patch replaces the polling with an unconditional
- wait that is guaranteed to be long enough.
- Tested-by: Johann Messner <johann.messner at jku.at>
- Cc: <stable@kernel.org>
- - sound: oxygen: handle cards with missing EEPROM
- The card model detection code introduced in 2.6.30 that tries to work
- around partially broken EEPROM contents by reading the EEPROM directly
- does not handle cards where the EEPROM has been omitted. In this case,
- we have to use the default ID to allow the driver to load.
- Reported-and-tested-by: Ozan Çağlayan <ozan@pardus.org.tr>
- Cc: <stable@kernel.org>
- - sound: oxygen: fix MCLK rate for 192 kHz playback
- Do not forget to program the MCLK ratio for the I2S output.
- Otherwise, the master clock frequency can be too high for
- the DACs at sample frequencies above 96 kHz.
- Cc: <stable@kernel.org>
CS4231 driver
- - ALSA: cs4236: update control names
- Update control names to be more closer to their meaning.
- Change the "Mono" name to the "Beep" as this line is usually
- used to forward the PC beeper signal to sound card's output.
- Update names for both cs423x and wss.
- Clean up cs4235 controls according to the cs4235 doc. Rename
- some of the cs4235 controls to be consistent with the cs4236's
- ones.
- Also, delete one misnamed cs4231 register define.
CS4236+ driver
- - tree-wide: fix assorted typos all over the place
- That is "success", "unknown", "through", "performance", "[re|un]mapping"
- , "access", "default", "reasonable", "[con]currently", "temperature"
- , "channel", "[un]used", "application", "example","hierarchy", "therefore"
- , "[over|under]flow", "contiguous", "threshold", "enough" and others.
- - ALSA: cs4236: add dB scale for all volume controls
- Use db scale for all volume controls according to Crystal's datasheets.
- - ALSA: cs4236: update control names
- Update control names to be more closer to their meaning.
- Change the "Mono" name to the "Beep" as this line is usually
- used to forward the PC beeper signal to sound card's output.
- Update names for both cs423x and wss.
- Clean up cs4235 controls according to the cs4235 doc. Rename
- some of the cs4235 controls to be consistent with the cs4236's
- ones.
- Also, delete one misnamed cs4231 register define.
- - ALSA: cs4236: detect chip in one pass
- The cs4236 was two step detection with call to the snd_wss_free()
- between two steps. The snd_wss_free() did not free a sound device
- created in the snd_wss_create(). This caused an OOPS during module
- removal as the same sound device was released twice. The same OOPS
- happened if the cs4236 module loading failed.
- Fix this by adapting the snd_cs4236_create() to correctly work with
- chips less capable then cs4236. The snd_cs4236_create() behaves the
- same as the snd_wss_create() if the chip is less capable than the cs4236.
CS46xx driver
- - ALSA: cs46xx - Fix minimum period size
- Fix minimum period size for cs46xx cards. This fixes a problem in the
- case where neither a period size nor a buffer size is passed to ALSA;
- this is the case in Audacious, OpenAL, and others.
- Cc: <stable@kernel.org>
Common EMU synth
- - tree-wide: fix typos "couter" -> "counter"
- This patch was generated by
- git grep -E -i -l 'couter' | xargs -r perl -p -i -e 's/couter/counter/'
Compatibility header files
- - Fix mkae rules to creating include/sound header files
- - Add include/sound/pcm.h patch
- Reassign the struct pcm and co fields to the compatible positions
- with older kernels.
- - Add sound/core patch for ABI compatibility
- Try to keep the field assignment of struct snd_core to be compatible.
- Also, move some stuff to here from adriver.h.
- - Allow patching include/sound header files
- Copy or apply a patch to each header file in alsa-kernel instead of
- symliking to the directory. This will make it possible to give a
- better binary compatibility for older kernels.
Creative Sound Blaster X-Fi (20K1/20K2)
- - ALSA: Cleanup redundant tests on unsigned
- The variables are unsigned so the test `>= 0' is always true,
- the `< 0' test always fails. In these cases the other part of
- the test catches wrapped values.
- In dac_audio_write() there does not occur a test for wrapped
- values, but the test appears redundant.
- - ALSA: ctxfi: Swapped SURROUND-SIDE mute
- On Soundblaster X-FI Titenium with emu20k2 the SIDE and SURROUND mute
- functions are swapped.
- It was checked with 'speaker-test -c 8 -s 3' and (un)mute surround or
- 'speaker-test -c 8 -s 7' and (un)mute side. The volume seems not
- to be affected and works as expected.
DT019x driver
- - Remove obsoleted dt019x build stub
- - ALSA: dt019x: merge into the als100 driver
- The als100 driver is so similar to the dt019x/als007 driver
- that one driver's source can be used for both drivers with
- only few changes. Merge the dt019x driver into the als100.
Digigram VX Pocket driver
- - pcmcia: rework the irq_req_t typedef
- Most of the irq_req_t typedef'd struct can be re-worked quite
- easily:
- (1) IRQInfo2 was unused in any case, so drop it.
- (2) IRQInfo1 was used write-only, so drop it.
- (3) Instance (private data to be passed to the IRQ handler):
- Most PCMCIA drivers using pcmcia_request_irq() to actually
- register an IRQ handler set the "dev_id" to the same pointer
- as the "priv" pointer in struct pcmcia_device. Modify the two
- exceptions (ipwireless, ibmtr_cs) to also work this waym and
- set the IRQ handler's "dev_id" to p_dev->priv unconditionally.
- (4) Handler is to be of type irq_handler_t.
- (5) Handler != NULL already tells whether an IRQ handler is present.
- Therefore, we do not need the IRQ_HANDLER_PRESENT flag in
- irq_req_t.Attributes.
- CC: netdev@vger.kernel.org
- CC: linux-bluetooth@vger.kernel.org
- CC: linux-ide@vger.kernel.org
- CC: linux-wireless@vger.kernel.org
- CC: linux-scsi@vger.kernel.org
- CC: alsa-devel@alsa-project.org
- CC: Jaroslav Kysela <perex@perex.cz>
- CC: Jiri Kosina <jkosina@suse.cz>
- CC: Karsten Keil <isdn@linux-pingi.de>
- for the Bluetooth parts: Acked-by: Marcel Holtmann <marcel@holtmann.org>
- - pcmcia: remove deprecated handle_to_dev() macro
- Update remaining users and remove deprecated handle_to_dev() macro
- CC: Harald Welte <laforge@gnumonks.org>
- CC: netdev@vger.kernel.org
- CC: linux-wireless@vger.kernel.org
- CC: linux-serial@vger.kernel.org
- - ALSA: pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (sound)
- Convert PCMCIA drivers to use the dynamic debug infrastructure, instead of
- requiring manual settings of PCMCIA_DEBUG.
- Also, remove all usages of the CS_CHECK macro and replace them with proper
- Linux style calling and return value checking. The extra error reporting may
- be dropped, as the PCMCIA core already complains about any (non-driver-author)
- errors.
Documentation
- - sound: add Edirol UA-101 support
- Add experimental support for the Edirol UA-101 audio/MIDI interface.
- - ALSA: document: Add direct git link to grub hda-analyzer
- Just to save some time, add direct git link to grub hda-analyzer
- - ALSA: hda - iMac 9,1 sound patch.
- This is an updated patch for the Apple iMac 9,1 model to add sound.
- Original patch posted here:
- http://article.gmane.org/gmane.linux.alsa.devel/61361/match=
- I have been using this patch for a while now
- and have to say it works vary well, except for a few minor
- things:
- With the iMac 24-inch 3.06GHz Intel Core 2 Duo
- everything seems to be working as it should,
- although I have not looked into the microphone
- (never really use one, nor have any apps to test,
- my guess is it doesn't work, or I never figured out how
- to get it to work).
- With the iMac 24-inch 2.66GHz Intel Core 2 Duo
- everything is the same as with the above machine
- except I'm hearing a light scratchy/distortion noise
- come out of the speakers when using headphones(above machine
- does not do this).
- Other than that the sound level is great(especially with good Dj headphones).
- Tested-by: Justin P. Mattock <justinmattock@gmail.com>
- - ALSA: hda - Fix mute-LED sync on HP laptops with IDT92HD83xxx codecs
- The mute-LED isn't synchronized with the actual mute state on some
- HP laptops with IDT 92HD83xxx codecs. A similar hack using
- check_power_status callback is added for this codec, too.
- - ALSA: hda - Add description of beep_mode in ALSA-Configuration.txt
- - [ALSA] rename "PC Speaker" controls to "Speaker"
- To unify control names, rename "PC Speaker" to "Speaker" for PPC ALSA drivers.
- - ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
- To avoid confusion in control names for the standard analog PC Beep generator
- using a small Internal PC Speaker, rename all related "PC Speaker" and "PC
- Beep" controls to "Beep" only. This name is more universal and can be also
- used on more platforms without confusion.
- Introduce also "Internal Speaker" in ControlNames.txt for systems with
- full-featured build-in internal speaker.
- - ALSA: snd-pcsp: add nopcm mode
- Currently, if the high-res timers are unavailable, snd-pcsp does not
- initialize. People who choose it over pcspkr, loose their console beeps
- in that case and get annoyed.
- With this patch, the console beeps remain regardless of the high-res
- timers. Additionally, the "nopcm" modparam is added to forcibly
- disable the PCM capabilities of the driver.
- - ALSA: dummy - Fix descriptions of pcm_substreams parameter
- Now up to 128 substreams are supported.
- Reported-by: Adrian Bridgett <adrian@smop.co.uk>
- - ALSA: sscape: force AD1848 codec mode on old Soundscape
- Old Soundscape cards (pre PnP) work only with AD1848 codecs.
- If the CS4231 codec is installed it must be used in AD1848
- compatible mode.
- Also, add gameport support and remove an unused mpu field.
- - ALSA: sscape: convert to firmware loader framework
- The conversion solves the problem that firmware size was set to 64KB
- while non PnP cards have 128KB firmware files.
- An additional firmware initialization code has been moved from the OSS
- driver.
- - ALSA: hda - Fix mute sound with STAC9227/9228 codecs
- On FSC laptops, the sound gets muted gradually when the volume is chnaged.
- This is due to the wrong volume-knob widget setup. The delta bit (bit 7)
- shouldn't be set for these devices.
- This patch adds a new quirk to set the value 0x7f to the widget 0x24
- instead of 0xff.
- Reference: Novell bnc#546006
- http://bugzilla.novell.com/show_bug.cgi?id=546006
- - ALSA: hda - Analog Devices AD1984A add HP Touchsmart model
- Reference: ALSA bug #0004614
- https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4614
- port-A (0x11) - front hp-out
- port-D (0x12) - rear line out
- port-E (0x1c) - front mic-in
- port-F (0x16) - Internal speakers
- digital-mic (0x17) - Internal mic
- init verbs, mixers, jack sensing and PCI_QUIRK to support this hardware
- - trivial: fix typos "man[ae]g?ment" -> "management"
- - ALSA: dummy - Fake buffer allocations
- Instead of allocating the real buffers, use a fake buffer and ignore
- read/write in the dummy driver so that we can save the resources.
- For mmap, a single page (unique to the direction, though) is reused
- to all buffers.
- When the app requires to read/write the real buffers, pass fake_buffer=0
- module option at loading time. This will get back to the old behavior.
- - ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
- The model clevo-m540r was created with 6-channel and digital support. All
- functions verified except spdif. Tested with a VIT D2000 laptop which has:
- [lspci extract]
- Audio device [0403]: Intel Corporation 82801H (ICH8 Family) HD Audio
- Controller [8086:284b] (rev 03)
- Subsystem: CLEVO/KAPOK Computer Device [1558:5409]
- [/proc/asound/card0/codec\#0 header]
- Codec: Realtek ALC883
- Address: 0
- Function Id: 0x1
- Vendor Id: 0x10ec0883
- Subsystem Id: 0x15585409
- Revision Id: 0x100002
- [Added a comment about HP mute and the model description by tiwai]
- - ALSA: dummy - Add more description
- - ALSA: hda - Add support of Alienware M17x laptop
- Added the quirk for Alienware M17x with IDT 92HD73* codec chip.
- It has two HP and one line-out jack, one mic jack, a built-in
- speaker and a built-in mic.
Dreamcast AICA sound (pcm) driver
- - ALSA: snd-aica: declare MODULE_FIRMWARE
ES18xx driver
- - ALSA: es18xx: code improvements
- 1. Set the third argument of the snd_device_new to not NULL, so there is
- no warning about bug during chip detection. The third argument is not
- used in this driver. It was changed in my previous patch.
- 2. Remove the fm_port and mpu_port fields from the snd_es18xx structure.
- They can be converted to function arguments.
- 3. Remove the dmaN_size fields from the snd_es18xx structure. These
- values are used only in pointer functions and can be easily calculated.
- 4. Remove the ctrl_lock spinlock which is used only in one read function
- which is called once during chip initialization. There are many
- writes to the same register and they are not protected on purpose
- (see the comment ina the snd_es18xx_config_write()).
- 5. Use the first part of the text5Sources string table as the text4Soruces
- table (they are the same).
- 6. Merge the same cases for the ES1887 and ES1888 when setting chip's caps.
- 7. Move the snd_es18xx_reset() to __devinit section.
- - ALSA: es18xx: remove snd_audiodrive structure
- Remove intermediate snd_audiodrive structure between
- snd_card structure and snd_es18xx. This reduces size of
- source code and binary driver.
- - ALSA: es18xx: remove snd_card pointer from snd_es18xx structure
- The snd_card pointer is redundant and code can be easily
- changed to work without it.
Echoaudio driver
- - ALSA: echoaudio - Re-enable the line-out control for the Mia card
- Mia has an undocumented line-out control, and it has to be exposed.
Edirol UA-101 driver
- - add compilation stub for ua101.c
- - sound: add Edirol UA-101 support
- Add experimental support for the Edirol UA-101 audio/MIDI interface.
FM801 driver
- - sound: snd-fm801: autodetect SF64-PCR (tuner-only) card
- When primary AC97 is not found, don't fail with tons of AC97 errors.
- Assume that the card is SF64-PCR (tuner-only).
- This makes the SF64-PCR radio card work "out of the box".
- Also fixes a bug that can cause an oops here:
- if (tea575x_tuner > 0 && (tea575x_tuner & 0x000f) < 4) {
- when tea575x_tuner == 16, it passes this check and causes problems
- a couple lines below:
- chip->tea.ops = &snd_fm801_tea_ops[(tea575x_tuner & 0x000f) - 1];
- Tested with SF64-PCR, but I don't have any of those sound or sound+radio cards
- to test if I didn't break anything.
GUS Library
- - ALSA: sound/isa/gus: Correct code taking the size of a pointer
- sizeof(share_id) is just the size of the pointer. On the other hand,
- block->share_id is an array, so its size seems more appropriate.
- 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>
Generic drivers
- - ALSA: rename "PC Speaker" and "PC Beep" controls to "Beep"
- To avoid confusion in control names for the standard analog PC Beep generator
- using a small Internal PC Speaker, rename all related "PC Speaker" and "PC
- Beep" controls to "Beep" only. This name is more universal and can be also
- used on more platforms without confusion.
- Introduce also "Internal Speaker" in ControlNames.txt for systems with
- full-featured build-in internal speaker.
- - ALSA: snd-pcsp: add nopcm mode
- Currently, if the high-res timers are unavailable, snd-pcsp does not
- initialize. People who choose it over pcspkr, loose their console beeps
- in that case and get annoyed.
- With this patch, the console beeps remain regardless of the high-res
- timers. Additionally, the "nopcm" modparam is added to forcibly
- disable the PCM capabilities of the driver.
- - ALSA: dummy - Fix descriptions of pcm_substreams parameter
- Now up to 128 substreams are supported.
- Reported-by: Adrian Bridgett <adrian@smop.co.uk>
- - ALSA: sound: Move dereference after NULL test and drop unnecessary NULL tests
- In pcm.c, if the NULL test on pcm is needed, then the dereference should be
- after the NULL test.
- In dummy.c and ali5451.c, the context of the calls to
- snd_card_dummy_new_mixer and snd_ali_free_voice show that dummy and pvoice,
- respectively cannot be NULL.
- A simplified version of the semantic match that detects this problem is as
- follows (http://coccinelle.lip6.fr/):
- // <smpl>
- @match exists@
- expression x, E;
- identifier fld;
- @@
- * x->fld
- ... when != \(x = E\|&x\)
- * x == NULL
- // </smpl>
- - ALSA: pcsp - Fix nforce workaround
- The attached patch fixes the problems introduced in this commit:
- http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=eea0579fc85e64e9f05361d5aacf496fe7a151aa
- - Fix nForce workaround by honouring the pointer_update var
- - Revert "ns" to u64, as per the hrtimer API
- - Revert to the zero-delay timer startup, since I can't reproduce any
- problem with it (please, give me the hint!)
- - ALSA: dummy - Increase MAX_PCM_SUBSTREAMS to 128
- Increase the limit of PCM substreams to 128. The default value is
- unchanged; only the max accept value is increased.
- - ALSA: dummy - Add debug proc file
- Added the debug proc file to see or change the snd_pcm_hardware fields
- to emulate. The parameters can be changed by writing to a proc file like:
- # echo periods_min 4 > /proc/asound/card1/dummy_pcm
- - ALSA: dummy - Fake buffer allocations
- Instead of allocating the real buffers, use a fake buffer and ignore
- read/write in the dummy driver so that we can save the resources.
- For mmap, a single page (unique to the direction, though) is reused
- to all buffers.
- When the app requires to read/write the real buffers, pass fake_buffer=0
- module option at loading time. This will get back to the old behavior.
- - ALSA: dummy - Fix the timer calculation in systimer mode
- Fix the expire-time calculation in the systimer mode when the buffer
- size isn't aligned to the period size.
- - ALSA: dummy - Better jiffies handling
- In the system-timer mode, snd-dummy driver issues each tick to update
- the position. This is highly inefficient and even inaccurate if the
- timer can't be triggered at each tick.
- Now rewritten to wake up only at the period boundary. The position
- is calculated from the current jiffies.
- - ALSA: dummy - Support high-res timer mode
- Allow snd-dummy driver to use high-res timer as its timing source
- instead of the system timer. The new module option "hrtimer" is added
- to turn on/off the high-res timer support. It can be switched even
- dynamically via sysfs.
HDA Codec driver
- - Add workaround for dmi functions
- Add a wrapper file for linux/dmi.h for older kernels.
- Also, more workarounds for dmi_find_device() in pci/hda/patch_sigmatel.c.
- - ALSA: hda - simplify usage of HDA_SUBDEV_AMP_FLAG
- The HDA_SUBDEV_NID_FLAG is duplicate for amplifier control elements. Move
- get_amp_nid_() call to the snd_hda_ctl_add() function.
- - ALSA: hda - introduce HDA_SUBDEV_AMP_FLAG (ControlAmp in proc)
- The purpose of this changeset is to show information about amplifier
- setting in the codec proc file. Something like:
- Control: name="Front Playback Volume", index=0, device=0
- ControlAmp: chs=3, dir=Out, idx=0, ofs=0
- Control: name="Front Playback Switch", index=0, device=0
- ControlAmp: chs=3, dir=In, idx=2, ofs=0
- - ALSA: hda - add more NID->Control mapping
- This set of changes add missing NID values to some static control
- elemenents. Also, it handles all "Capture Source" or "Input Source"
- controls.
- - ALSA: hda: Fix max PCM level to 0 dB for AD1981_HP
- BugLink: https://bugs.launchpad.net/bugs/461062
- The original reporter states that PCM maxes at +12 dB and results in
- very bad distortion. Cap PCM at 0 dB to resolve this symptom.
- - ALSA: hda: Use ALC260_WILL quirk for another Acer model (0x1025007f)
- BugLink: https://bugs.launchpad.net/bugs/418627
- The original reporter states that this quirk is necessary to obtain
- reasonable gain for playback. Without it, sound is inaudible. Tested
- with playback (spkr and hp) and capture.
- - ALSA: hda - Overwrite pin config on intel DG45ID board.
- The pin config provided by BIOS have some problems:
- 0x0221401f: [Jack] HP Out at Ext Front <-- other association and sequence
- 0x02a19020: [Jack] Mic at Ext Front <-- other association
- 0x01113014: [Jack] Speaker at Ext Rear <-- line out (not speaker)
- 0x01114010: [Jack] Speaker at Ext Rear <-- line out
- 0x01a19030: [Jack] Mic at Ext Rear <-- other association
- 0x01111012: [Jack] Speaker at Ext Rear <-- line out
- 0x01116011: [Jack] Speaker at Ext Rear <-- line out
- 0x40f000f0: [N/A] Other at Ext N/A
- 0x40f000f0: [N/A] Other at Ext N/A
- 0x40f000f0: [N/A] Other at Ext N/A
- 0x40f000f0: [N/A] Other at Ext N/A
- 0x40f000f0: [N/A] Other at Ext N/A
- 0x01451140: [Jack] SPDIF Out at Ext Rear
- 0x40f000f0: [N/A] Other at Ext N/A
- just overwrite it.
- - intelhdmi - dont power off HDA link
- For codecs without EPSS support (G45/IbexPeak), the hotplug event will
- be lost if the HDA is powered off during the time. After that the pin
- presence detection verb returns inaccurate info.
- So always power-on HDA link for !EPSS codecs.
- KarL offers the fact and Takashi recommends to flag hda_bus. Thanks!
- - ALSA: intelhdmi - add channel mapping for typical configurations
- IbexPeak is the first Intel HDMI audio codec to support channel mapping.
- Currently the outstanding problem is, the HDMI channel order do not
- agree with that of ALSA. This patch presents workaround for some
- typical use cases. It gives priority to the typical ALSA surround
- configurations, and defines channel mapping for them.
- We may need better kernel+userspace interactive channel mapping scheme.
- For example, in current scheme if user plays with the surround50 device,
- the kernel is unaware of this and will still select the surround41
- channel allocation and channel mapping..
- Thanks to Marcin for offering good tips!
- - ALSA: intelhdmi - channel mapping applies to Pin
- HDA036-A specifies that the Audio Sample Packet (ASP) Channel Mapping
- verbs apply to Digital Display Pin Complex instead of Converter.
- With this fix, channel mapping is working as expected for IbexPeak.
- Thanks to Marcin for pointing this out!
- - ALSA: intelhdmi - accept DisplayPort pin
- HDA036 spec states:
- DP (Display Port) indicates whether the Pin Complex Widget supports
- connection to a Display Port sink. Supported if set to 1. Note that
- it is possible for the pin widget to support more than one digital
- display connection type, e.g. HDMI and DP bit are both set to 1.
- Also export the DP pin cap in procfs.
- - ALSA: hda - show HBR(High Bit Rate) pin cap in procfs
- Note that the HBR capability only applies to HDMI pin.
- - ALSA: hda - Fix LED GPIO setup for HP laptops with IDT codecs
- This patch fixes an error in processing of the HP BIOS configuration to enable
- GPIO based mute LED indicator control. That error causes driver to enable
- such control on all HP systems with the 92HD75 IDT codecs and results in
- unnecessary toggling of the GPIO on mute control manipulation.
- It also adds support of the future HP BIOS configuration extension for the
- named control. New configuration string has a format HP_Mute_LED_P_G
- where P can be 0 or 1 and defines mute LED GPIO control state (low/high)
- that corresponds to the NOT muted state of the master volume
- and G is the index of the GPIO to use (0..9)
- Lastly, it adds more systems to the support of the audio implementation
- as found on HP B-series systems
- - ALSA: hda/realtek: quirk for D945GCLF2 mainboard
- Quirk for the ALC662 found on the Intel D945GCLF2 (and possibly other)
- mainboards.
- - ALSA: hda - Generalize EAPD inversion check in patch_analog.c
- Add a flag to spec field so that the EAPD inversion can be checked
- outside the relevant control callbacks.
- - tree-wide: fix typos "selct" + "slect" -> "select"
- This patch was generated by
- git grep -E -i -l 's(le|el)ct' | xargs -r perl -p -i -e 's/([Ss])(le|el)ct/$1elect/
- with only skipping net/netfilter/xt_SECMARK.c and
- include/linux/netfilter/xt_SECMARK.h which have a struct member called
- selctx.
- - ALSA: hda - Exclude unusable ADCs for ALC88x
- On Realtek codecs, a digital mic pin is connected often only to a single
- ADC. But the parser tries to set up all ADCs no matter whether the
- digital mic is available, and results in non-selectable input source.
- This patch adds a check of input-source availability of each ADC, and
- excludes ones that don't support all input sources.
- Reference: Novell bnc#561235
- http://bugzilla.novell.com/show_bug.cgi?id=561235
- - ALSA: hda - Add missing Line-Out and PCM switches as slave
- Realtek codecs may have "PCM" and "Line-Out" playback switches, and
- they can be slaves for vmaster.
- - ALSA: hda - iMac 9,1 sound patch.
- This is an updated patch for the Apple iMac 9,1 model to add sound.
- Original patch posted here:
- http://article.gmane.org/gmane.linux.alsa.devel/61361/match=
- I have been using this patch for a while now
- and have to say it works vary well, except for a few minor
- things:
- With the iMac 24-inch 3.06GHz Intel Core 2 Duo
- everything seems to be working as it should,
- although I have not looked into the microphone
- (never really use one, nor have any apps to test,
- my guess is it doesn't work, or I never figured out how
- to get it to work).
- With the iMac 24-inch 2.66GHz Intel Core 2 Duo
- everything is the same as with the above machine
- except I'm hearing a light scratchy/distortion noise
- come out of the speakers when using headphones(above machine
- does not do this).
- Other than that the sound level is great(especially with good Dj headphones).
- Tested-by: Justin P. Mattock <justinmattock@gmail.com>
- - ALSA: hda - Fix memory leaks in the previous patch
- The previous hack for replacing the codec name give memory leaks at
- error paths. This patch fixes them.
- - ALSA: hda - Add ALC661/259, ALC892/888VD support
- Fixed List:
- 1. Add alc_read_coef_idx function
- 2. Add ALC661 ALC259
- 3. Add ALC892 ALC888VD
- - ALSA: hda - Add a pin-fix for FSC Amilo Pi1505
- FSC Amilo Pi 1505 has a buggy BIOS and doesn't set up the HP and
- speaker pins properly. Add the pinfix entry for that.
- Reference: Novell bnc#557403
- https://bugzilla.novell.com/show_bug.cgi?id=557403
- - ALSA: hda - Fix Cxt5047 test mode
- The NID 0x1a of Conexant 5047 chip is a mic boost volume only with
- the output amp unlike 5045 chip.
- - ALSA: hda - Don't trigger pin-sense for STAC/IDT codecs
- STAC/IDT codecs seem to behave weird when SET_PIN_SENSE verb is issued
- before reading the jack-detection although the TRIG_REQ pin capability
- is given by the hardware.
- Since snd_hda_jack_detect() issues the SET_PIN_SENSE verb simply judging
- from the pincap, we have to revert the change in the commit
- d56757abc11a21996d9839c0d4e3b2c3666cd318
- ALSA: hda - Replace the rest of jack-detections with snd_hda_jack_detect()
- to plain GET_PIN_SENSE verb without triggering.
- Reported-by: Jiri Slaby <jirislaby@gmail.com>
- - ALSA: hda: Fix max PCM level to 0 dB for Fujitsu-Siemens laptops using CX20549 (Venice)
- BugLink: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4792
- Cristian reported that these models have really bad sound above 6 dB
- and proposed the original patch. I've updated the comment to reflect
- this change.
- Reported-by: Cristian Klein
- - ALSA: hda - Make Dell Vostro 1015n mic and speaker switching work
- Dell Vostro 1015n uses Conexant CX20583-10Z (0x14f1:5067). Patch is
- based on "olpc-xo-1_5" branch. Dell uses digital mic.
- - sound: Revert "ALSA: hda - Change quirk for Acer Aspire 5930G"
- This reverts commit f2624791a0c2a2d7664b12d75ca327917141fd3b.
- Łukasz Wojniłowicz reported that the change causes both internal and
- external mics not working any more. The headphone jacking issue was
- fixed by his previous patch, it's better to revert to acer-aspire-4930g
- model.
- Reported-by: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
- - ALSA: hda - 4930g mute lfe and side when pluging in headphones
- Fixes first issue from comment 0021423 in bug 0004317 for Acer Aspire 5930g
- - ALSA: hda - Change quirk for Acer Aspire 5930G
- Change the quirk for Acer Aspire 5930G from model=acer-aspire-4930g to
- model=acer-aspre-6530g. The tuba bass gets muted along with the other
- built-in speakers upon headphones insertion, the internal mic works
- perfectly etc.
- Reported-by: Claudio Viano <claudio.viano@gmail.com>
- - ALSA: hda - Fix mute-LED sync on HP laptops with IDT92HD83xxx codecs
- The mute-LED isn't synchronized with the actual mute state on some
- HP laptops with IDT 92HD83xxx codecs. A similar hack using
- check_power_status callback is added for this codec, too.
- - ALSA: hda - Fix detection of dual headphones
- The dual-headphone mode with STAC/IDT codecs is useful only for machines
- that have two (or more) built-in headphones.
- But, some HP laptops give multiple headphone pin configs, one for the
- built-in and another for the separate (likely a docking station) one.
- This results in a missing speaker volume control.
- This patch adds more check for the dual-headphone mode to avoid this
- problem.
- - ALSA: hda - Replace the rest of jack-detections with snd_hda_jack_detect()
- - ALSA: hda - show EPSS capability in proc
- - ALSA: intelhdmi - sticky channel count
- Don't change channel count if not necessary.
- - ALSA: intelhdmi - sticky stream id and format
- We tracked down the first-0.5s-hdmi-audio-samples-lost problem to the
- AC_VERB_SET_CHANNEL_STREAMID command. It is suspected that many HDMI
- sinks need some time to adapt to the new state.
- The workaround is to avoid changing stream id/format whenever possible.
- Proposed by David.
- - ALSA: intelhdmi - sticky infoframe
- Remember the active infoframe, so as to avoid stop/restart infoframe
- transmission when switching between audio clips of the same format.
- Proposed by Shang and David.
- CC: Shane W <shane-alsa@csy.ca>
- CC: David Härdeman <david@hardeman.nu>
- - ALSA: intelhdmi - separate out infoframe checksum routine
- And make it right when called for more than one times.
- - ALSA: intelhdmi - probe for monitor/eld presence at module init time
- This avoids lost of presence info on module reloading.
- The presence info used to be only updated at the (rare) hotplug events.
- Proposed by David, thanks!
- CC: David Härdeman <david@hardeman.nu>
- - ALSA: hda - introduce snd_hda_jack_detect() and snd_hda_pin_sense()
- This helps merge duplicate code.
- v2: add snd_hda_jack_detect() and comments recommended by Takashi.
- - ALSA: intelhdmi - export monitor-presence and ELD-valid status
- - ALSA: intelhdmi - fix channel mapping slot mask
- - ALSA: intelhdmi - fix audio infoframe fill size
- Reported-by: David Härdeman <david@hardeman.nu>
- - ALSA: hda - Disable default quirk for Sony VAIO with ALC262 codec
- The ALC262 has a quirk entry matching with all Sony Vaio laptops
- to use model=sony-assamd as default. But, model=auto works much better
- for new models in the recent driver versions, thus it's safer to disable
- that default quirk entry.
- - ALSA: hda - Fix build errors with CONFIG_SND_HDA_INPUT_BEEP=n
- Disable beep-related codes when CONFIG_SND_HDA_INPUT_BEEP isn't set.
- - ALSA: hda - Update / add kerneldoc comments to exported functions
- - ALSA: hda - Fix quirk for VAIO type G
- Vaio type G laptop doesn't work with the current quirk setup.
- After some tests, it turned out that it should be model=auto as default.
- Reported-by: Mattia Dongili <malattia@linux.it>
- - ALSA: hda - Get rid of magic digits for subdev hack
- Define a proper const for a magic 31bit flag for subdev / NID setup
- with a brief comment.
- - ALSA: hda - Dell Studio 1557 hd-audio quirk
- Add the Dell Studio 15 (model 1557, Core i7) laptop to the hd-audio
- quirk list, enabling audio.
- Cc: <stable@kernel.org>
- - sound: sound/pci/hda/patch_via.c: work around gcc-4.0.2 ICE
- sound/pci/hda/patch_via.c: In function 'via_hp_bind_automute':
- sound/pci/hda/patch_via.c:2074: internal compiler error: in do_SUBST, at combine.c:462
- Please submit a full bug report,
- with preprocessed source if appropriate.
- See <URL:http://gcc.gnu.org/bugs.html> for instructions.
- [added a comment by tiwai]
- - ALSA: hda - Add another Nvidia HDMI codec id (10de:0005)
- Found on Nvidia 9800M GTS.
- Reported-by: Chris Balcum <sherl0k@gmail.com>
- - ALSA: hda - add beep_mode module parameter
- The beep_mode parameter for snd-hda-intel module allows to choose among
- different digital beep device registation to the input layer.
- 0 = do not register to the input layer
- 1 = register to the input layer all time
- 2 = use "Beep Switch" control exported to user space mixer applications
- Also, introduce CONFIG_SND_HDA_INPUT_BEEP_MODE for default value.
- - ALSA: hda - proc - add support for dynamic controls to mixer<->NID mapping
- This patch adds support for dynamically created controls to proc codec file
- (Control: lines).
- - ALSA: hda - proc - introduce Control: lines to show mixer<->NID assignment
- This is an initial patch to show universal control<->NID assigment in
- proc codec file. The change helps to debug codec related problems.
- - ALSA: hda - move snd_hda_pcm_type_name from hda_codec.h to hda_local.h
- The snd_hda_pcm_type_name array is local only.
- - ALSA: hda: Use model=mb5 for MacBookPro 5,2
- BugLink: https://bugs.launchpad.net/bugs/462098
- Until we can look closer at the verbs, let's use ALC885_MB5 for
- codec SSID 0x106b4600 to enable playback and capture for MacBookPro
- 5,2s.
- - ALSA: hda - Add power on/off counter
- Added the power on/off counter and expose via sysfs files.
- The sysfs files, power_on_acct and power_off_acct, are created under
- each codec hwdep sysfs directory (e.g. /sys/class/sound/hwC0D0).
- The files show the msec length of the codec power-on and power-off,
- respectively.
- - ALSA: hda - Add missing export for snd_hda_bus_reboot_notify
- ... forgot to add for modules.
- - ALSA: hda - Add reboot notifier to each codec
- Add reboot notifier to each codec so that it can do some workarounds
- needed for reboot.
- So far, patch_sigmatel.c calls its shutup routine for avoiding noises
- at reboot on some HP machines.
- References: Novell bnc#544779
- http://bugzilla.novell.com/show_bug.cgi?id=544779
- - ALSA: hda - possible read past array alc88[02]_parse_auto_config()
- The test of index `i' is after the read - too late - and
- unsafe: if snd_hda_get_connections() fails in the last
- iteration a read beyond the array is possible.
- - ALSA: hda - Avoid quirk for HP dc5750
- The present quirk for HP dc5750 seems broken and maps the pins wrongly.
- Since the auto-parser works well for this device, set the default entry
- to use model=auto.
- Reference: Novell bnc#552154
- https://bugzilla.novell.com/show_bug.cgi?id=552154
- - ALSA: hda - proc - show which I/O NID is associated to PCM device
- Output something like:
- Node 0x02 [Audio Output] wcaps 0x11: Stereo
- Device: name="ALC888 Analog", type="Audio", device=0, substream=0
- Converter: stream=0, channel=0
- ...
- - ALSA: hda - Tweak OLPC XO-1.5 microphone bias
- Our contacts at Conexant suggested that we reduce the external
- microphone bias to 50% in order to center the input signal with
- the DC input range of the codec. This is because the microphone
- port is DC coupled for potential use with sensors.
- - ALSA: hda: Use model=auto quirk for Sony VAIO VGN-FW170J using ALC262
- BugLink: https://bugs.launchpad.net/bugs/478309
- The internal microphone on this VAIO model does not work unless the
- "auto" quirk is used.
- - ALSA: hda - Reset pins of IDT/STAC codecs at free
- Some laptops cause annoying clicks or noises at shutdown/reboot since
- the speaker pin is set still high. Apply the same procedure used for
- the suspend to avoid such clicks/noises for freeing the codec, too.
- - ALSA: hda, move hp_bseries_system
- Function hp_bseries_system() is always used, outside of
- CONFIG_ boundaries/controls, so move it.
- sound/pci/hda/patch_sigmatel.c:5458: error: implicit declaration of function 'hp_bseries_system'
- - ALSA: hda - Add OLPC XO-1.5 PCI ID
- The XO-1.5 laptop now has a unique subvendor/subproduct ID, which can
- be used to automatically select the correct CXT5066 configuration.
- - ALSA: hda - Enable GPIO control for mute LED on HP systems
- This patch enables GPIO to control mute LED indicator on the HP systems
- with the special string in BIOS and applies it with the correct polarity on
- HP B-series systems.
- It also restores configuration of the pin intended as the second Headphone
- on HP B-series systems but configured as something else in the BIOS to
- pass MS DTM.
- - ALSA: hda - Add a proper ifdef to a debug code
- Added a proper ifdef CONFIG_SND_DEBUG_VERBOSE to avoid a compile warning:
- sound/pci/hda/patch_intelhdmi.c:406: warning: ‘hdmi_get_channel_count’ defined but not used
- - ALSA: VIA HDA: Add support for VT1818S.
- Add support for VT1818S codec, which is similiar with VT1708S.
- - ALSA: hda - remove static intelhdmi configurations
- - ALSA: hda - auto parse intelhdmi cvt/pin configurations
- - ALSA: hda - get intelhdmi max channels from widget caps
- - ALSA: hda - vectorize intelhdmi
- The Intel IbexPeak HDMI codec supports 2 converters and 3 pins,
- which requires converting the cvt_nid/pin_nid to arrays.
- The active pin number (the one connected with a live HDMI monitor/sink)
- will be dynamically identified on hotplug events.
- It exports two HDMI devices, so that user space can choose the A/V pipe
- for sending the audio samples.
- It's still undefined behavior when there are two active monitors
- connected and routed to the same audio converter.
- - ALSA: hda - reorder intelhdmi prepare/cleanup callbacks
- No behavior change.
- - ALSA: hda - use pcm prepare/cleanup callbacks for intelhdmi
- Remove pcm callbacks open/close in favor of the prepare/cleanup.
- - ALSA: hda - remove intelhdmi dependency on multiout
- We'll be managing multiple HDMI audio sources/sinks on our own.
- So remove multiout dependency from intelhdmi.
- - ALSA: hda - convert intelhdmi global references to local parameters
- No behavior change.
- - ALSA: hda - allow up to 4 HDMI devices
- The new Intel HDMI codec supports 2 independant HDMI/DisplayPort pipes.
- We'll be exporting them as 2 pcm devices. So bump up the allowed number
- of HDMI devices.
- - ALSA: hda - vectorize get_empty_pcm_device()
- This unifies the code and data structure,
- and makes it easy to add more HDMI devices.
- - ALSA: hda - select IbexPeak handler for Calpella
- An earlier patch merely adds id for 0x80862804.
- It has 2/3 cvt/pin nodes and shall be tied to the IbexPeak handler.
- - ALSA: hda - Don't check invalid HP pin
- alc_automute_pin() might be called even if any HP pin is defined, and
- it will result in verbs with NID=0.
- This patch adds a check for the validity of HP widget before issuing
- any verbs.
- - ALSA: hda: Use quirk mask for Dell Inspiron Mini9/Vostro A90 using ALC268
- BugLink: https://bugs.launchpad.net/bugs/368629
- We should use a quirk mask for these Dell Inspiron Mini9s and Vostro
- A90s, as the model=dell quirk appears to enable audio on them.
- - hda_intel: Digital PC Beep - change behaviour for input layer
- Original implementation was keeping registered input device for SND_BEEP
- and SND_TONE events all time. This patch changes this behaviour:
- If digital PC Beep is turned off using universal control switch,
- the input device is unregistered.
- Explanation: The kd_mksound() send SND_BEEP and SND_TONE only to last
- registered device acceping those events. It means that the HDA Intel
- audio driver blocks also the internal PC Speaker device (pcspkr.c
- driver) even if the HDA Beep is muted. The user can easy disable
- all beeps using 'setterm -blength 0' or 'xset b off' command.
- - ALSA: hda - Fix capture source checks for ALC662/663 codecs
- The ALC662/663 parser calls wrongly alc880_auto_create_input_ctls()
- to check the capture source selections. This should be alc882, instead.
- Reference: Novell bnc#546918
- http://bugzilla.novell.com/show_bug.cgi?id=546918
- - ALSA: HDA VIA: Remove 48k sample rate limit for S/PDIF
- 48 kHz limit is for slightly better stability, and sample rates other
- than 48k (like 96k/192k) are for better sound quality.
- We choose better quality, so remove the 48k limit.
- - sound: use semicolons to end statements
- Fixes:
- sound/pci/hda/patch_via.c: In function 'patch_vt1718S':
- sound/pci/hda/patch_via.c:4951: error: expected expression before 'return'
- sound/pci/hda/patch_via.c: In function 'patch_vt1716S':
- sound/pci/hda/patch_via.c:5441: error: expected expression before 'return'
- sound/pci/hda/patch_via.c: In function 'patch_vt2002P':
- sound/pci/hda/patch_via.c:5794: error: expected expression before 'return'
- sound/pci/hda/patch_via.c: In function 'patch_vt1812':
- sound/pci/hda/patch_via.c:6148: error: expected expression before 'return'
- - ALSA: HDA VIA: Only cosmetic changes
- - ALSA: HDA VIA: comments: update copyright, changeset, etc.
- - ALSA: HDA VIA: Change PW4 connect select default to to MW0.
- According to customer request, hp should be default to redirected mode,
- i.e. PW4 connect select default to to MW0.
- - ALSA: HDA VIA: rename vt1708_control_templates[].
- To via_control_templates[].
- - ALSA: HDA VIA: Add VT1812 support.
- - ALSA: HDA VIA: Add VT2002P support.
- - ALSA: HDA VIA: Add VT1716S support.
- - ALSA: HDA VIA: Add VT1828S and VT2020 support.
- - ALSA: HDA VIA: Add VT1718S support.
- - ALSA: HDA VIA: Move backdoor verbs to vt17xx_volume_init_verb
- As init verbs, vt17xx_volume_init_verb is a better place to hold them.
- - ALSA: HDA VIA: Replace MIC_BOOST_VOLUME.
- With snd_hda_override_amp_caps.
- - ALSA: HDA VIA: Modify vt1709_auto_create_multi_out_ctls.
- Rewrite nid_vol/mute assignment for clearity, and check line connection
- before adding control for it.
- - ALSA: HDA VIA: Modify vt1708_auto_create_multi_out_ctls.
- Rewrite nid_vol/mute assignment for clearity, and check line connection
- before adding control for it.
- - ALSA: HDA VIA: Replace via_playback_pcm_prepare/cleanup
- Replaced with via_playback_multi_pcm_prepare/cleanup to support
- multi-stream operations
- - ALSA: HDA VIA: Modify vt1708_set_pinconfig_connect function.
- like seqassoc 0xff, seqassoc 0xf0 of vt1708 should override Port
- Connectivity field into 'AC_JACK_PORT_COMPLEX'
- - ALSA: HDA VIA: Add Jack detect feature for VT1708.
- VT1708 does not support unsolicited response, but we need hp detect to
- automute speaker. Implemented in workqueue.
- - ALSA: HDA VIA: Refresh front playback mute in via_hp_automute.
- - ALSA: HDA VIA: Add VIA_JACK_EVENT process in via_unsol_event.
- - ALSA: HDA VIA: When changing input source, update power state.
- - ALSA: HDA VIA: Add smart5.1 function.
- Smart 5.1 is for 3-jacks model, to reuse input pins as outputs.
- While off, they act as "line out" / "line in" / "mic in".
- While on, they acts as "line out" / "back left/right" / "center/lfe".
- - ALSA: HDA VIA: Rewrite via_independent_hp_put
- Use hp_independent_mode_index to store hp index, and simplify function
- via_independent_hp_put with it.
- - ALSA: HDA VIA: Change VT1708S & VT1702 hp mode controls
- For VT1708S and VT1702, deactivate "Headphone Playback Volume" and
- "Headphone Playback Mute" control if "Independent HP" mode is OFF.
- and rename VT1702 "Independent HP" text.
- - ALSA: HDA VIA: Remove unused argument of via_new_analog_input
- - ALSA: HDA VIA: Add low current mode for power saving.
- For VT1708B, VT1708S and VT1702, enter low current mode if no analog
- stream is opened and all aa path mute.
- - sound: ALSA HDA VIA: Add VIA_CTL_WIDGET_ANALOG_MUTE control type
- Enter low power state if AA-Path volume is muted.
- - ALSA: HDA VIA: Limit VT1702 AA-Path max volume
- according to customer request, VT1702 AA-Path max volume (12 dB) is too
- high, so limit to 0 dB.
- - ALSA: HDA VIA: Add VT1708B-CE codec support.
- - ALSA: HDA VIA: Change get_codec_type argument to hda_codec type
- - ALSA: HDA VIA: Remove unused IS_VT17xx_VENDORID macro
- IS_VT17*_VENDORID macros are used nowhere, so clean them up.
- - ALSA: hda - Clean up name string creation in patch_realtek.c
- Use a common helper to create playback controls.
- This gives less chance of typos.
- - ALSA: hda - Allow all formats as default for Nvidia HDMI
- In the commit f0613d5752d8f7d1d02e6d40947f38877fdf9c90
- ALSA: hda - Add full rates/formats support for Nvidia HDMI
- the flag LIMITIED_RATE_FMT_SUPPORT was set as default, as I forgot
- to clear before commit.
- Let's enable all formats/rates as default.
- - ALSA: hda - Fix volume-knob setup for Dell laptops with STAC9228
- The volume-knob widget needs to be set with 0x7f instead of 0xff
- for Dell laptops with STAC9228 codec, too, like the previous commit.
- Reference: Novell bnc#545013
- http://bugzilla.novell.com/show_bug.cgi?id=545013
- - ALSA: hda - Fix mute sound with STAC9227/9228 codecs
- On FSC laptops, the sound gets muted gradually when the volume is chnaged.
- This is due to the wrong volume-knob widget setup. The delta bit (bit 7)
- shouldn't be set for these devices.
- This patch adds a new quirk to set the value 0x7f to the widget 0x24
- instead of 0xff.
- Reference: Novell bnc#546006
- http://bugzilla.novell.com/show_bug.cgi?id=546006
- - ALSA: hda - Fix overflow of spec->init_verbs in patch_realtek.c
- ALC861-VD lenovo model causes overflow of spec->init_verbs entries due to
- the recent changes. Simply increase the array size to avoid the overflow.
- Reported-by: Luca Tettamanti <kronos.it@gmail.com>
- - ALSA: hda - Add full rates/formats support for Nvidia HDMI
- Allow Nvidia HDMI to support more possible sample rates and formats.
- At best, the really supported rates and formats should be determined
- together with the negotiation with the HDMI receiver, but it's currently
- not implemented yet (Nvidia stuff seems incompatible with HDMI 1.3
- standard in this regard). As a compromise, we enable all bits, assuming
- that all recent devices do support such rates/formats.
- Tested-by: Alan Alan <alanwww1@gmail.com>
- - ALSA: hda - Fix yet another auto-mic bug in ALC268
- Since patch_alc268() doesn't call set_capture_mixer() (due to its h/w
- design different from other siblings), it needs to call fixup_automic_adc()
- explicitly to set up the auto-mic routing. Otherwise the indices for
- int/ext mics aren't set properly.
- Reference: Novell bnc#544899
- http://bugzilla.novell.com/show_bug.cgi?id=544899
- - ALSA: hda - Don't pick up invalid HP pins in alc_subsystem_id()
- alc_subsystem_id() tries to pick up a headphone pin if not configured,
- but this caused side-effects as the problem in commit
- 15870f05e90a365f8022da416e713be0c5024e2f.
- This patch fixes the driver behavior to pick up invalid HP pins; at least,
- the pins that are listed as the primary outputs aren't taken any more.
- - ALSA: hda - Add a workaround for ASUS A7K
- ASUS A7K needs additional GPIO1 bit setup; it has to be cleared.
- Added a new fixup hook for this laptop so that it works as is.
- Refernece: Novell bnc#494309
- http://bugzilla.novell.com/show_bug.cgi?id=494309
- - ALSA: hda - Fix invalid initializations for ALC861 auto mode
- The recent auto-parser doesn't work for machines with a single output
- with ALC861, such as Toshiba laptops, because alc_subsystem_id() sets
- the hp_pins[0] while it's listed in line_outs[0].
- This ends up with the doubled initialization of the same mixer widget,
- and it mutes the DAC route because hp_pins has no DAC assigned.
- To fix this problem, just check spec->autocfg.hp_outs and speaker_outs
- so that they are really detected pins.
- Reference: Novell bnc#544161
- http://bugzilla.novell.com/show_bug.cgi?id=544161
- - ALSA: hda - Fix / improve ALC66x parser
- The auto-parser for ALC662/663/272 codecs doesn't work properly when
- a speaker is connected to mono NID 0x17, and doesn't handle the dynamic
- DAC assignment properly.
- This patch fixes the issues and also improves the assignment of DACs
- so that HP and speakers can have independent volume controls.
- - ALSA: hda - Fix digita/analog mic auto-switching with IDT codecs
- When the auto-mic switching between an analog and a digital mic is
- needed with IDT codecs, the current driver doesn't reset the connection
- of the digital mux.
- This patch fixes the behavior by checking both mux connections properly.
- - ALSA: hda - Added quirk to enable sound on Toshiba NB200
- Patch was tested on Toshiba NB200 and is found to enable sound.
- Cc: stable@kernel.org
- - ALSA: hda - Resurrect input-source mixer of ALC268 model=acer
- In the commit fdbc66266c21976027938642f60e0f047149a61a, I mistakenly
- replaced the capture mixer array for ALC268_ACER to nosrc version
- although this should be kept to alt_mixer. Now fixed back.
- - ALSA: hda - Analog Devices AD1984A add HP Touchsmart model
- Reference: ALSA bug #0004614
- https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4614
- port-A (0x11) - front hp-out
- port-D (0x12) - rear line out
- port-E (0x1c) - front mic-in
- port-F (0x16) - Internal speakers
- digital-mic (0x17) - Internal mic
- init verbs, mixers, jack sensing and PCI_QUIRK to support this hardware
- - ALSA: hda - CD-audio sound for hda-intel conexant benq laptop
- After puting a cd-audio inside my laptop there was no sound out here,
- so I decided to install alsa-driver with debug level and setup a
- model=test, it didn't help, but then I look at source code and added
- this few lines, now cd-audio is working both when playback/recording.
- [Additional minor fixes of mixer element/item names by tiwai]
- - ALSA: hda - Fix MSI GX620 mixer
- The headphone and speaker mixer elements aren't properly set for
- MSI GX620 with targa-8ch-dig quirk.
- Also fixed the speaker volume control for other ALC883-targa quirks,
- too.
- - ALSA: hda - Fix Dell S14 pin setup
- The pin setup for Dell S14 quirk is rather wrong for the latest driver.
- Fixed pin 0x0a, 0x0b, 0x0d and 0x0f.
- - ALSA: hda - Fix IDT92HD83* codec setup
- Remove unnecessary (and buggy) init sequences left for IDT92HD83*
- codecs in the previous fixes. The DACs are now dynamically connected,
- thus shouldn't be set statically in init verbs. Also, the mono_nid
- is detected dynamically, thus shouldn't be set staticaly, too.
- - ALSA: hda - Add support for HP dv6
- Add the quirk entry for HP dv6. Also add a workaround for the headphone
- detection by setting hp_detect=1 beforehand. Without this, the driver
- won't do auto-muting because BIOS doesn't give any HP pin but only a
- line-out pin.
- - ALSA: hda - Fix HP/line-out initialization with IDT/STAC codecs
- It's possible that hp_detect is set even though no headphone pin is
- detected. The driver issues, however, an unsol event only to hp_pins[0],
- which can be invalid.
- This patch adds the check of the valid pin to send an unsol event
- at initialization and resume callbacks.
- - ALSA: hda - Set default GPIO for IDT92HD71bxx
- A smiliar fix for IDT 92HD71Bxx codecs like the previous commit for
- other IDT/STAC codecs.
- - ALSA: hda - Set default GPIO for STAC/IDT codecs
- IDT92HD73xx and STAC927x codecs use GPIO0 bit as EAPD on many machines.
- However, currently we don't set it unless the model is specified just
- for safety reason. But, most machines do need this bit, so this safety
- handling is rather annoying.
- This patch enables GPIO0 setup as default for them. Many HP / Dell
- laptops should work even without model override with this change.
- - ALSA: hda - Add missing model=auto entry for ALC269
- - ALSA: hda - Use auto model for HP laptops with ALC268 codec
- The HP laptops with ALC268 codec seem working better with model=auto
- than model=toshiba; e.g. the auto model fixes missing digital outputs.
- Let's fix quirk entry to choose auto model explicitly.
- Tested-by: Jens Jorgensen <jbj1@ultraemail.net>
- - ALSA: hda/realtek: Added support for CLEVO M540R subsystem, 6 channel + digital
- The model clevo-m540r was created with 6-channel and digital support. All
- functions verified except spdif. Tested with a VIT D2000 laptop which has:
- [lspci extract]
- Audio device [0403]: Intel Corporation 82801H (ICH8 Family) HD Audio
- Controller [8086:284b] (rev 03)
- Subsystem: CLEVO/KAPOK Computer Device [1558:5409]
- [/proc/asound/card0/codec\#0 header]
- Codec: Realtek ALC883
- Address: 0
- Function Id: 0x1
- Vendor Id: 0x10ec0883
- Subsystem Id: 0x15585409
- Revision Id: 0x100002
- [Added a comment about HP mute and the model description by tiwai]
- - ALSA: hda - Add support of Alienware M17x laptop
- Added the quirk for Alienware M17x with IDT 92HD73* codec chip.
- It has two HP and one line-out jack, one mic jack, a built-in
- speaker and a built-in mic.
- - ALSA: hda - Remove dead codes from patch_sigmatel.c
- Due to the previous fix of input source for IDT92HD73xx, the amp mux
- and amp vol stuff became unused. Let's rip off dead codes.
- - ALSA: hda - Fix input source selection of IDT92HD73xx
- Fix the mux_nids to select directly the input source instead of mux
- mixers so that it works with the current mux enum handler for IDT
- 92HD73xx codecs.
- Also, clean up useless / unnecessary mixer controls and init verbs.
- - ALSA: hda - Fix obsolete CONFIG_SND_DEBUG_DETECT
- Fix the old dead CONFIG_SND_DEBUG_DETECT to CONFIG_SND_DEBUG_VERBOSE.
- - ALSA: hda - Unmute docking line-out as default with AD1984A codec
- Unmute the docking-station line-out as default on machines with
- AD1984A codec chip. It can be still muted via "Dock" mixer switch.
- - ALSA: hda - Add another entry for Nvidia HDMI device
- Added another entry for Nvidia HDMI device (10de:0003).
- Reference: kernel bug#14097
- http://bugzilla.kernel.org/show_bug.cgi?id=14097
- - ALSA: hda - Add missing GPIO initialization for AD1984A laptop model
- A similar initialization of GPIO1 pin like mobile model is needed
- for laptop model, too.
- - ALSA: hda - Add support of docking auto-mute/mic for AD1984A laptop model
- Add the support of automatic mute and mic-switching of the docking
- station HP and mic plugs for AD1984A laptop model for some HP machines.
- - ALSA: hda - Fix ALC268/ALC269 headphone pint routing
- Fix the headphone pin routing of ALC268/ALC269 codecs. Using alc882
- routine doesn't work because alc268/alc269 parser assumes the
- independent DACs for both HP and speaker outputs. Need to assign the
- DAC depending on the pin.
- - ALSA: hda - Create "Digital Mic Capture Volume" correctly for IDT codecs
- So far, the digital mic capture volume wasn't created. This is because
- IDT codecs have output amps for digital mics, not input amps, while
- input amps should be used for other analog pins. Thus the automatic
- capture volume creation should check both directions for digital mics.
- - ALSA: hda - Fix MacBookPro 3,1/4,1 quirk with ALC889A
- This patch fixes the wrong headphone output routing for MacBookPro 3,1/4,1
- quirk with ALC889A codec, which caused the silent headphone output.
- Also, this gives the individual Headphone and Speaker volume controls.
- Reference: kernel bug#14078
- http://bugzilla.kernel.org/show_bug.cgi?id=14078
- Cc: <stable@kernel.org>
- - ALSA: hda - Add missing mux check for VT1708
- In patch_vt1708(), the check of MUX nids is missing and this results in
- the -EINVAL error in accessing Input Source mixer element. Simpliy
- adding the call of get_mux_nids() fixes the problem.
- Reference: Novell bnc#534904
- https://bugzilla.novell.com/show_bug.cgi?id=534904
HDA Intel driver
- - ALSA: hda - Add PCI IDs for Nvidia G2xx-series
- - intelhdmi - dont power off HDA link
- For codecs without EPSS support (G45/IbexPeak), the hotplug event will
- be lost if the HDA is powered off during the time. After that the pin
- presence detection verb returns inaccurate info.
- So always power-on HDA link for !EPSS codecs.
- KarL offers the fact and Takashi recommends to flag hda_bus. Thanks!
- - ALSA: hda - Terradici HDA controllers does not support 64-bit mode
- Confirmed from vendor and tests in RedHat bugzilla #536782 .
- Cc: <stable@kernel.org>
- - ALSA: hda - Add position_fix quirk for HP dv3
- HP dv3 requires position_fix=1.
- Reference: Novell bnc#555935
- https://bugzilla.novell.com/show_bug.cgi?id=555935
- - ALSA: hda - Add a position_fix quirk for MSI Wind U115
- MSI Wind U115 seems to require position_fix=1 explicitly.
- Otherwise it screws up PulseAudio.
- - ALSA: hda - add beep_mode module parameter
- The beep_mode parameter for snd-hda-intel module allows to choose among
- different digital beep device registation to the input layer.
- 0 = do not register to the input layer
- 1 = register to the input layer all time
- 2 = use "Beep Switch" control exported to user space mixer applications
- Also, introduce CONFIG_SND_HDA_INPUT_BEEP_MODE for default value.
- - ALSA: hda - Add reboot notifier to each codec
- Add reboot notifier to each codec so that it can do some workarounds
- needed for reboot.
- So far, patch_sigmatel.c calls its shutup routine for avoiding noises
- at reboot on some HP machines.
- References: Novell bnc#544779
- http://bugzilla.novell.com/show_bug.cgi?id=544779
- - ALSA: hda - Don't initialize CORB/RIRB for single_cmd mode
- So far, CORB/RIRB still remains even if the driver is switched to the
- single_cmd mode. The specification says that this should be disabled,
- but I hoped this isn't the case; indeed most devices worked together with
- CORB/RIRB.
- However, Poulsbo (US15W) seems problematic with this setup, and it
- requires to disable CORB/RIRB when single_cmd is used.
- Now this patch disables CORB/RIRB initialization when the single_cmd
- mode is used. Also the unsolicited event is disabled because it can't
- work without RIRB.
- Reported-and-tested-by: Troy Kisky <troy.kisky@boundarydevices.com>
- - ALSA: hda - Switch to polling mode before disabling MSI
- When any codec communication error happens, try to switch to the polling
- mode first before turning off MSI. MSI gets more stable nowadays, thus
- we should keep it on as much as possible.
- - ALSA: hda_intel: Add the Linux device ID for NVIDIA HDA controller
- Add the generic device ID for NVIDIA HDA controller.
- - ALSA: hda - Enable MSI as default
- Since the recent kernel can handle MSI properly on non-Intel platforms,
- let's enable MSI as default.
- If any borken device is found, we can add the quirk entry to the list,
- which is currently empty.
- - ALSA: hda - Add HP Pavilion dv4t-1300 to MSI whitelist
- BugLink: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=547994
- Enable MSI by default for this Pavilion model.
HDA generic driver
- - Fix a typo in ilog2() hack in pci/hda/hda_proc.c
- - Add ilog2() wrapper to pci/hda/hda_proc.c
- - hda - fix hda_beep.patch according latest alsa-kernel tree
- - Revert "Revert "hda_intel: Fix hda_beep.patch according latest alsa-kernel changes""
- This reverts commit e83ac9bd623e779af1d1553f12ca7d7a001e0db5.
- - Revert "hda_intel: Fix hda_beep.patch according latest alsa-kernel changes"
- This reverts commit 1f3eb4be072393539baf5e533f16321a485d9a0f.
- The change isn't merged yet.
- - hda_intel: Fix hda_beep.patch according latest alsa-kernel changes
- - Fix a typo in hda_intel.patch
- Must be #ifdef instead of #if.
- - Make MSI white/black-list for HD-audio
- Whie the recent kernel works with MSI on non-Intel boards, it doesn't
- on older kernels. So, we need to disable MSI as default on such.
- - ALSA: hda - simplify usage of HDA_SUBDEV_AMP_FLAG
- The HDA_SUBDEV_NID_FLAG is duplicate for amplifier control elements. Move
- get_amp_nid_() call to the snd_hda_ctl_add() function.
- - ALSA: hda - introduce HDA_SUBDEV_AMP_FLAG (ControlAmp in proc)
- The purpose of this changeset is to show information about amplifier
- setting in the codec proc file. Something like:
- Control: name="Front Playback Volume", index=0, device=0
- ControlAmp: chs=3, dir=Out, idx=0, ofs=0
- Control: name="Front Playback Switch", index=0, device=0
- ControlAmp: chs=3, dir=In, idx=2, ofs=0
- - ALSA: hda - add more NID->Control mapping
- This set of changes add missing NID values to some static control
- elemenents. Also, it handles all "Capture Source" or "Input Source"
- controls.
- - ALSA: intelhdmi - accept DisplayPort pin
- HDA036 spec states:
- DP (Display Port) indicates whether the Pin Complex Widget supports
- connection to a Display Port sink. Supported if set to 1. Note that
- it is possible for the pin widget to support more than one digital
- display connection type, e.g. HDMI and DP bit are both set to 1.
- Also export the DP pin cap in procfs.
- - ALSA: hda - show HBR(High Bit Rate) pin cap in procfs
- Note that the HBR capability only applies to HDMI pin.
- - ALSA: hda - Fix input and jack Kconfig depenencies
- CONFIG_SND_JACK needs to be selected explicitly only when INPUT=y or
- INPUT_SND. The current way, INPUT=SND_HDA_INTEL isn't strict enough.
- Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
- - ALSA: hda - show EPSS capability in proc
- - ALSA: hda - introduce snd_hda_jack_detect() and snd_hda_pin_sense()
- This helps merge duplicate code.
- v2: add snd_hda_jack_detect() and comments recommended by Takashi.
- - ALSA: intelhdmi - export monitor-presence and ELD-valid status
- - ALSA: hda - Fix build errors with CONFIG_SND_HDA_INPUT_BEEP=n
- Disable beep-related codes when CONFIG_SND_HDA_INPUT_BEEP isn't set.
- - ALSA: hda - Fix beep_mode option value
- The beep_mode option value was wrongly defined: it must be 0 = off and
- 1 = on.
- Also, evaluate the beep_mode value at snd_hda_attach_beep_device()
- properly so that no device is created when beep_mode=0 is given.
- - ALSA: hda - Get rid of magic digits for subdev hack
- Define a proper const for a magic 31bit flag for subdev / NID setup
- with a brief comment.
- - ALSA: hda - add beep_mode module parameter
- The beep_mode parameter for snd-hda-intel module allows to choose among
- different digital beep device registation to the input layer.
- 0 = do not register to the input layer
- 1 = register to the input layer all time
- 2 = use "Beep Switch" control exported to user space mixer applications
- Also, introduce CONFIG_SND_HDA_INPUT_BEEP_MODE for default value.
- - ALSA: hda - proc - add support for dynamic controls to mixer<->NID mapping
- This patch adds support for dynamically created controls to proc codec file
- (Control: lines).
- - ALSA: hda - proc - introduce Control: lines to show mixer<->NID assignment
- This is an initial patch to show universal control<->NID assigment in
- proc codec file. The change helps to debug codec related problems.
- - ALSA: hda - move snd_hda_pcm_type_name from hda_codec.h to hda_local.h
- The snd_hda_pcm_type_name array is local only.
- - ALSA: hda - Don't access invalid substream in proc file
- The commit e3303235209c0496b490e10ab131e72a9568c153
- "ALSA: hda - proc - show which I/O NID is associated to PCM device"
- introduces the access to substream pointer. But, PCMs may have no
- substreams in one or both directions, and this results in NULL
- dereference. Also, print the first substream number doesn't make
- sense.
- This patch removes the access to the substream pointer, and reformat
- to fit to the standard coding style.
- - ALSA: hda - Fix build error without CONFIG_SND_HDA_HWDEP=y
- CONFIG_SND_HDA_POWER_SAVE is independent from CONFIG_SND_HDA_HWDEP.
- Thus snd_hda_hwdep_add_power_sysfs() needs the check of both kconfigs.
- - ALSA: hda - Add power on/off counter
- Added the power on/off counter and expose via sysfs files.
- The sysfs files, power_on_acct and power_off_acct, are created under
- each codec hwdep sysfs directory (e.g. /sys/class/sound/hwC0D0).
- The files show the msec length of the codec power-on and power-off,
- respectively.
- - ALSA: hda - proc - show which I/O NID is associated to PCM device
- Output something like:
- Node 0x02 [Audio Output] wcaps 0x11: Stereo
- Device: name="ALC888 Analog", type="Audio", device=0, substream=0
- Converter: stream=0, channel=0
- ...
- - [ALSA] hda: beep - add missing cancel_delayed_work
- The unregister work should be also canceled in snd_hda_detach_beep_device()
- function.
- - ALSA: hda - vectorize intelhdmi
- The Intel IbexPeak HDMI codec supports 2 converters and 3 pins,
- which requires converting the cvt_nid/pin_nid to arrays.
- The active pin number (the one connected with a live HDMI monitor/sink)
- will be dynamically identified on hotplug events.
- It exports two HDMI devices, so that user space can choose the A/V pipe
- for sending the audio samples.
- It's still undefined behavior when there are two active monitors
- connected and routed to the same audio converter.
- - [ALSA] hda_intel: Digital PC Beep - delay input device unregistration
- The massive register/unregister calls for input device layer might be
- overkill. Delay unregister call by one HZ as workaround.
- Also, as benefit, beep->enabled variable is changed immediately now
- (not from workqueue).
- - hda_intel: Digital PC Beep - change behaviour for input layer
- Original implementation was keeping registered input device for SND_BEEP
- and SND_TONE events all time. This patch changes this behaviour:
- If digital PC Beep is turned off using universal control switch,
- the input device is unregistered.
- Explanation: The kd_mksound() send SND_BEEP and SND_TONE only to last
- registered device acceping those events. It means that the HDA Intel
- audio driver blocks also the internal PC Speaker device (pcspkr.c
- driver) even if the HDA Beep is muted. The user can easy disable
- all beeps using 'setterm -blength 0' or 'xset b off' command.
HR timer driver
- - Refresh patches to remove fuzz
- - ALSA: hrtimer - Fix lock-up
- The timer stop callback can be called from snd_timer_interrupt(), which
- is called from the hrtimer callback. Since hrtimer_cancel() waits for
- the callback completion, this eventually results in a lock-up.
- This patch fixes the problem by just toggling a flag at stop callback
- and call hrtimer_cancel() later.
- Reported-and-tested-by: Wojtek Zabolotny <W.Zabolotny@elka.pw.edu.pl>
- Cc: <stable@kernel.org>
I2C cs8427
- - Add a workaround for bitrev8() in i2c/cs8427.c
- - ALSA: ice1712: Use bitrev8
ICE1712 driver
- - Add a build stub for pci/ice1712/quartet.c
- - ALSA: ice1724 - aureon - modify WM8770 Master & DAC volume
- The volume levels in original implementation are incorrect and does
- not match the dB scale. The real range is linear (in the sense of
- the dB scale) from 0dB to -100dB. Remove logaritmic table and make
- all volumes from range 0dB..100dB.
- The tests are in RedHat's bugzilla #540817.
- - tree-wide: fix a very frequent spelling mistake
- something-bility is spelled as something-blity
- so a grep for 'blit' would find these lines
- this is so trivial that I didn't split it by subsystem / copy
- additional maintainers - all changes are to comments
- The only purpose is to get fewer false positives when grepping
- around the kernel sources.
- - ALSA: ice1724 - make some bitfields unsigned
- This is a clean up and doesn't change the behavior.
- Bit fields should always be unsigned. Otherwise pm_suspend_enabled will
- be -1 when you want it to be 1. The other bad thing is that the sparse
- checker will complain 36 times if they aren't unsigned.
- The other bitfields in that struct are unsigned already.
- - ALSA: ice1724 - Fix section mismatch in prodigy_hd2_resume()
- Remove invlid __devinit prefix from the suspend callback.
- - ALSA: ice1724 - Patch for suspend/resume for ESI Juli@
- Add proper suspend/resume code for Juli@ cards. Based on ice1724
- suspend/resume work of Igor Chernyshev.
- Fixes bug https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4413
- Tested on linux-2.6.31.6
- - ALSA: ice1724 - Infrasonic Quartet support
- * three external clock types
- * all controls supported
- - ALSA: ice1724 - Support for multiple external clock types
- * Support for customization of the external clock names
- * Adding hooks to playback_pro_open and capture_pro_open, allowing e.g.
- limiting available stream rates to a single value when the external
- clock rate is detected
- - ALSA: ice1724 - adding GPIO routines for mask and direction
- * get/set routines for GPIO mask and direction
- - ALSA: ak4620 support, codec regs listed in proc
- * complete support for ak4620
- * codec regs listed in proc for all codecs/chips
- * adding total regs for each codec
- * fixing nb. of steps in input attenuation controls
- - ALSA: ICE1712/24 - Change the Multi Track Peak control (level meters) from MIXER to PCM type
- * PLEASE NOTE - this change requires the corresponding update of
- envy24control for ice1712 - kind of an ABI change.
- * The "Multi Track Peak" control is read-only level meters indicator.
- * The control is VERY confusing to most users since it is currently displayed
- in regular mixers. E.g. alsamixer ignores its read-only status
- and allows changing the levels with keys which makes no sense.
- Acked-by: Jaroslav Kysela <perex@perex.cz>
ICE1724 driver
- - ALSA: ice1724 - Infrasonic Quartet support
- * three external clock types
- * all controls supported
- - ALSA: ice1724 - Support for multiple external clock types
- * Support for customization of the external clock names
- * Adding hooks to playback_pro_open and capture_pro_open, allowing e.g.
- limiting available stream rates to a single value when the external
- clock rate is detected
- - ALSA: ice1724 - pro-rate-locking makes sense only for internal clock mode
- * pro-rate-locking applies to internal clock mode only
- * required rate and current rate are compared for internal clock mode only
- - ALSA: ice1724 - adding GPIO routines for mask and direction
- * get/set routines for GPIO mask and direction
- - ALSA: ice1724 - Make call to set hw params succeed on ESI Juli@
- If two streams are started immediately after one another (such as a
- playback and a recording stream), the call to set hw params fails with
- EBUSY. This patch makes the call succeed, so playback and recording will
- work properly.
- - ALSA: ice1724: Fix surround on Chaintech AV-710
- Fix the num_total_dacs setting for Chaintech AV710. The existing comment
- that only PSDOUT0 is connected is correct, but since the card is using
- packed AC97 mode to send 6 channels to the codec, num_total_dacs should be
- set to 6 and not 2. This allows 6-channel surround to work. Also clarify
- a comment regarding the additional WM8728 codec on this card (it's connected
- to the SPDIF output and always receives the same data).
- - ALSA: ice1724: increase SPDIF and independent stereo buffer sizes
- Increase the default and maximum PCM buffer prellocation size for ice1724's
- SPDIF and independent stereo pair outputs to 256K, which is the hardware's
- maximum supported size. This allows a reduction in interrupt rate and
- potentially power usage when an application is not latency-critical.
- - ALSA: ICE1712/24 - Change the Multi Track Peak control (level meters) from MIXER to PCM type
- * PLEASE NOTE - this change requires the corresponding update of
- envy24control for ice1712 - kind of an ABI change.
- * The "Multi Track Peak" control is read-only level meters indicator.
- * The control is VERY confusing to most users since it is currently displayed
- in regular mixers. E.g. alsamixer ignores its read-only status
- and allows changing the levels with keys which makes no sense.
- Acked-by: Jaroslav Kysela <perex@perex.cz>
ISA
- - ALSA: dt019x: merge into the als100 driver
- The als100 driver is so similar to the dt019x/als007 driver
- that one driver's source can be used for both drivers with
- only few changes. Merge the dt019x driver into the als100.
- - ALSA: sscape: convert to firmware loader framework
- The conversion solves the problem that firmware size was set to 64KB
- while non PnP cards have 128KB firmware files.
- An additional firmware initialization code has been moved from the OSS
- driver.
- - ALSA: sscape: add supoort for SPEA Media FX/Reveal SC-600
- Move code from the OSS sscape driver in order to support old Soundscape OEM models.
ISA DMA
- - ALSA: snd_dma_pointer workaround for chipsets with buggy DMA
- The chipsets with the isa_dma_bridge_buggy set do not stop DMA during
- DMA counter reads. The DMA counter is read in two 8-bit read steps
- on x86 platform. Sometimes, such reads happen during higher byte
- change so the lower byte is already decremented (rolled over) but
- the higher byte is not. It introduces an error that position is
- moved 256 bytes ahead of the true position. Thus, the next DMA
- position read can return a lower value then the previous read.
- If the DMA position is decreased (reversed) the ALSA subsystem is
- tricked into the playback underrun error and resets the playback.
- It results in a "pop" during a playback.
- Work around the issue by reading the counter twice and choosing a higher
- value.
Intel8x0 driver
- - ALSA: intel8x0: Mute External Amplifier by default for Gateway 4525GZ
- BugLink: https://bugs.launchpad.net/bugs/487884
- This Gateway model needs External Amplifier muted for audible playback,
- so set the inv_eapd quirk for it.
- - ALSA: intel8x0: Mute External Amplifier by default for another Sony model
- BugLink: https://bugs.launchpad.net/bugs/474972
- This Sony model needs External Amplifier muted for audible playback, so
- make sure we set the inv_eapd quirk.
- - ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-B1VP
- BugLink: https://bugs.launchpad.net/bugs/410933
- This Sony VAIO model also needs External Amplifier unmuted for audible
- playback, so make sure we set the inv_eapd quirk.
- - ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-T350P
- BugLink: https://bugs.launchpad.net/bugs/410933
- This Sony VAIO model needs External Amplifier unmuted for audible
- playback, so make sure we set the inv_eapd quirk.
LX6464ES
- - ALSA: lx6464es - remove unused struct member
- we cannot set the sampling rate of the device, but can only read it
- from the board, so we don't need the member for it.
- - ALSA: lx6464es - cleanup of rmh message bus function
- the rmh bus is not used asynchronously, so it is safe to remove the
- specific code pieces.
MIPS SGI A2 Audio System
- - ALSA: Fix invalid __exit in sound/mips/*.c
- The remove callback has to be marked as __devexit, as the dynamic unbind
- is possible.
- Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Memalloc module
- - Refresh patches to remove fuzz
OPL3
- - ALSA: opl3: circular locking in the snd_opl3_note_on() and snd_opl3_note_off()
- Fix following circular locking in the opl3 driver.
- =======================================================
- [ INFO: possible circular locking dependency detected ]
- 2.6.32-rc3 #87
- -------------------------------------------------------
- swapper/0 is trying to acquire lock:
- (&opl3->voice_lock){..-...}, at: [<cca748fe>] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
- but task is already holding lock:
- (&opl3->sys_timer_lock){..-...}, at: [<cca75169>] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth]
- which lock already depends on the new lock.
- the existing dependency chain (in reverse order) is:
- -> #1 (&opl3->sys_timer_lock){..-...}:
- [<c02461d5>] validate_chain+0xa25/0x1040
- [<c0246aca>] __lock_acquire+0x2da/0xab0
- [<c024731a>] lock_acquire+0x7a/0xa0
- [<c044c300>] _spin_lock_irqsave+0x40/0x60
- [<cca75046>] snd_opl3_note_on+0x686/0x790 [snd_opl3_synth]
- [<cca68912>] snd_midi_process_event+0x322/0x590 [snd_seq_midi_emul]
- [<cca74245>] snd_opl3_synth_event_input+0x15/0x20 [snd_opl3_synth]
- [<cca4dcc0>] snd_seq_deliver_single_event+0x100/0x200 [snd_seq]
- [<cca4de07>] snd_seq_deliver_event+0x47/0x1f0 [snd_seq]
- [<cca4e50b>] snd_seq_dispatch_event+0x3b/0x140 [snd_seq]
- [<cca5008c>] snd_seq_check_queue+0x10c/0x120 [snd_seq]
- [<cca5037b>] snd_seq_enqueue_event+0x6b/0xe0 [snd_seq]
- [<cca4e0fd>] snd_seq_client_enqueue_event+0xdd/0x100 [snd_seq]
- [<cca4eb7a>] snd_seq_write+0xea/0x190 [snd_seq]
- [<c02827b6>] vfs_write+0x96/0x160
- [<c0282c9d>] sys_write+0x3d/0x70
- [<c0202c45>] syscall_call+0x7/0xb
- -> #0 (&opl3->voice_lock){..-...}:
- [<c02467e6>] validate_chain+0x1036/0x1040
- [<c0246aca>] __lock_acquire+0x2da/0xab0
- [<c024731a>] lock_acquire+0x7a/0xa0
- [<c044c300>] _spin_lock_irqsave+0x40/0x60
- [<cca748fe>] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
- [<cca751f0>] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth]
- [<c022ac46>] run_timer_softirq+0x166/0x1e0
- [<c02269e8>] __do_softirq+0x78/0x110
- [<c0226ac6>] do_softirq+0x46/0x50
- [<c0226e26>] irq_exit+0x36/0x40
- [<c0204bd2>] do_IRQ+0x42/0xb0
- [<c020328e>] common_interrupt+0x2e/0x40
- [<c021092f>] apm_cpu_idle+0x10f/0x290
- [<c0201b11>] cpu_idle+0x21/0x40
- [<c04443cd>] rest_init+0x4d/0x60
- [<c055c835>] start_kernel+0x235/0x280
- [<c055c066>] i386_start_kernel+0x66/0x70
- other info that might help us debug this:
- 2 locks held by swapper/0:
- #0: (&opl3->tlist){+.-...}, at: [<c022abd0>] run_timer_softirq+0xf0/0x1e0
- #1: (&opl3->sys_timer_lock){..-...}, at: [<cca75169>] snd_opl3_timer_func+0x19/0xc0 [snd_opl3_synth]
- stack backtrace:
- Pid: 0, comm: swapper Not tainted 2.6.32-rc3 #87
- Call Trace:
- [<c0245188>] print_circular_bug+0xc8/0xd0
- [<c02467e6>] validate_chain+0x1036/0x1040
- [<c0247f14>] ? check_usage_forwards+0x54/0xd0
- [<c0246aca>] __lock_acquire+0x2da/0xab0
- [<c024731a>] lock_acquire+0x7a/0xa0
- [<cca748fe>] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
- [<c044c300>] _spin_lock_irqsave+0x40/0x60
- [<cca748fe>] ? snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
- [<cca748fe>] snd_opl3_note_off+0x1e/0xe0 [snd_opl3_synth]
- [<c044c307>] ? _spin_lock_irqsave+0x47/0x60
- [<cca751f0>] snd_opl3_timer_func+0xa0/0xc0 [snd_opl3_synth]
- [<c022ac46>] run_timer_softirq+0x166/0x1e0
- [<c022abd0>] ? run_timer_softirq+0xf0/0x1e0
- [<cca75150>] ? snd_opl3_timer_func+0x0/0xc0 [snd_opl3_synth]
- [<c02269e8>] __do_softirq+0x78/0x110
- [<c044c0fd>] ? _spin_unlock+0x1d/0x20
- [<c025915f>] ? handle_level_irq+0xaf/0xe0
- [<c0226ac6>] do_softirq+0x46/0x50
- [<c0226e26>] irq_exit+0x36/0x40
- [<c0204bd2>] do_IRQ+0x42/0xb0
- [<c024463c>] ? trace_hardirqs_on_caller+0x12c/0x180
- [<c020328e>] common_interrupt+0x2e/0x40
- [<c0208d88>] ? default_idle+0x38/0x50
- [<c021092f>] apm_cpu_idle+0x10f/0x290
- [<c0201b11>] cpu_idle+0x21/0x40
- [<c04443cd>] rest_init+0x4d/0x60
- [<c055c835>] start_kernel+0x235/0x280
- [<c055c210>] ? unknown_bootoption+0x0/0x210
- [<c055c066>] i386_start_kernel+0x66/0x70
OSS device core
- - Driver-Core: extend devnode callbacks to provide permissions
- This allows subsytems to provide devtmpfs with non-default permissions
- for the device node. Instead of the default mode of 0600, null, zero,
- random, urandom, full, tty, ptmx now have a mode of 0666, which allows
- non-privileged processes to access standard device nodes in case no
- other userspace process applies the expected permissions.
- This also fixes a wrong assignment in pktcdvd and a checkpatch.pl complain.
Opti9xx drivers
- - ALSA: opti93x: use dB scale for mixer controls
- Add dB scale for mixer controls. Fix dB scale for
- Master Volume control.
- - ALSA: opti93x: move controls definitions to opti93x driver
- Move OPTi93x controls definitions to the opti93x driver
- from the common wss-lib library module. These controls
- are used only by the opti93x driver.
- Also, fix capture source names. They are the same as
- opl3sa2 names.
- - tree-wide: fix assorted typos all over the place
- That is "success", "unknown", "through", "performance", "[re|un]mapping"
- , "access", "default", "reasonable", "[con]currently", "temperature"
- , "channel", "[un]used", "application", "example","hierarchy", "therefore"
- , "[over|under]flow", "contiguous", "threshold", "enough" and others.
- - ALSA: opti93x: fix irq releasing if the irq cannot be allocated
- Use the chip->irq to check if the irq should be released so the irq is not released
- if it has not been allocated.
- - ALSA: opti93x: set MC indirect registers base from PnP data
- The PnP data on the OPTI931 and OPTI933 contains io port
- range for the MC indirect registers. Use the PnP range
- instead of hardwired value 0xE0E.
- Also, request region of MC indirect registers so it is
- marked as used to other drivers (this was missing previously).
- - ALSA: opti9xx: remove snd_opti9xx fields
- Remove snd_opti9xx fields which are indirect arguments to
- the snd_opti9xx_configure(). Pass these values as function
- arguments.
- - ALSA: opti-miro: add PnP detection
- The PCM12 and PCM20 can be set into the ISA PnP mode. The PCM12 PnP
- was sold as the PnP device.
- Add code to handle detection of these cards using ISA PnP framework.
- Tested on the PCM20 in PnP mode. The PCM12 PnP has the same MS Windows
- INF file except for a card name displayed for user.
- - ALSA: opti-miro: separate comon probing code
- Separate common probing code in order to use it
- for PnP probing.
- - ALSA: opti-miro: fix OOPS if hardware is not detected
- If a hardware is not detected there is a kernel crash
- due to not initialized snd_miro->aci pointer. This pointer
- is initialized after detection of the opti (miro) chip.
- This bug was introduced by patches to expose
- ACI mikser outside the snd-miro driver.
- - ALSA: opti-miro: expose ACI mixer to outside drivers
- The ACI mixer is used to control the radio FM module
- installed on the Miro PCM20 sound card. Expose ACI mixer
- outside the sound card driver.
- - ALSA: opti-miro: make miro.h header available outside the alsa directory
- Move the miro.h header to the include/sound directory. It can
- be used in the Miro PCM20 radio driver (v4l).
- - ALSA: opti-miro: remove snd_card pointer from snd_miro structure
- Remove the snd_card pointer from the snd_miro structure and
- do some small code improvements.
- Also, move Opti chipset detection before detection of the
- ACI mixer, so the mci_base value is set in one place only.
- - ALSA: opti-miro: Fix missing semicolon
- To fix a build error
- sound/isa/opti9xx/miro.c:1281: error: expected ';' before '}' token
- - ALSA: opti-miro: use variables directly in the probe function
- Use the fm_port and mpu_port variables directly in a probe function.
- This completely eliminates a need to copy the fm_port value to
- the snd_miro structure.
PARISC Harmony driver
- - ALSA: sound/parisc: Move dereference after NULL test
- If the NULL test on h is needed in snd_harmony_mixer_init, then the
- dereference should be after the NULL test.
- Actually, there is a sequence of calls: snd_harmony_create, then
- snd_harmony_pcm_init, and then snd_harmony_mixer_init. snd_harmony_create
- initializes h, but may indeed leave it as NULL. There was no NULL test at
- the beginning of snd_harmony_pcm_init, so I have added one. The NULL test
- in snd_harmony_mixer_init is then not necessary, but in case the ordering
- of the calls changes, I have left it, and moved the dereference after it.
- A simplified version of the semantic match that detects this problem is as
- follows (http://coccinelle.lip6.fr/):
- // <smpl>
- @match exists@
- expression x, E;
- identifier fld;
- @@
- * x->fld
- ... when != \(x = E\|&x\)
- * x == NULL
- // </smpl>
PCI drivers
- - ALSA: ice1712: Use bitrev8
- - ALSA: SND_CS5535AUDIO: Remove the X86 platform dependency
- SND_CS5535AUDIO is available on Loongson(MIPS compatible) family
- machines, and checked it with ARCH=x86_64, no relative compiling
- warnings & errors, so, remove the platform dependency directly.
- Reported-by: rixed@happyleptic.org
- Acked-by: Andres Salomon <dilinger@collabora.co.uk>
PDAudioCF driver
- - pcmcia: rework the irq_req_t typedef
- Most of the irq_req_t typedef'd struct can be re-worked quite
- easily:
- (1) IRQInfo2 was unused in any case, so drop it.
- (2) IRQInfo1 was used write-only, so drop it.
- (3) Instance (private data to be passed to the IRQ handler):
- Most PCMCIA drivers using pcmcia_request_irq() to actually
- register an IRQ handler set the "dev_id" to the same pointer
- as the "priv" pointer in struct pcmcia_device. Modify the two
- exceptions (ipwireless, ibmtr_cs) to also work this waym and
- set the IRQ handler's "dev_id" to p_dev->priv unconditionally.
- (4) Handler is to be of type irq_handler_t.
- (5) Handler != NULL already tells whether an IRQ handler is present.
- Therefore, we do not need the IRQ_HANDLER_PRESENT flag in
- irq_req_t.Attributes.
- CC: netdev@vger.kernel.org
- CC: linux-bluetooth@vger.kernel.org
- CC: linux-ide@vger.kernel.org
- CC: linux-wireless@vger.kernel.org
- CC: linux-scsi@vger.kernel.org
- CC: alsa-devel@alsa-project.org
- CC: Jaroslav Kysela <perex@perex.cz>
- CC: Jiri Kosina <jkosina@suse.cz>
- CC: Karsten Keil <isdn@linux-pingi.de>
- for the Bluetooth parts: Acked-by: Marcel Holtmann <marcel@holtmann.org>
- - pcmcia: remove deprecated handle_to_dev() macro
- Update remaining users and remove deprecated handle_to_dev() macro
- CC: Harald Welte <laforge@gnumonks.org>
- CC: netdev@vger.kernel.org
- CC: linux-wireless@vger.kernel.org
- CC: linux-serial@vger.kernel.org
- - ALSA: pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (sound)
- Convert PCMCIA drivers to use the dynamic debug infrastructure, instead of
- requiring manual settings of PCMCIA_DEBUG.
- Also, remove all usages of the CS_CHECK macro and replace them with proper
- Linux style calling and return value checking. The extra error reporting may
- be dropped, as the PCMCIA core already complains about any (non-driver-author)
- errors.
PPC
- - powerpc: Minor cleanup to sound/ppc/Kconfig
- We can replace PPC32 || PPC64 as a dependancy with just PPC as all
- powerpc platforms (32-bit and 64-bit) define PPC now.
PPC AWACS driver
- - [ALSA] rename "PC Speaker" controls to "Speaker"
- To unify control names, rename "PC Speaker" to "Speaker" for PPC ALSA drivers.
PPC Burgundy driver
- - [ALSA] rename "PC Speaker" controls to "Speaker"
- To unify control names, rename "PC Speaker" to "Speaker" for PPC ALSA drivers.
PPC Keywest driver
- - sound: Make keywest_driver static
- I can't see any reason for struct i2c_driver keywest_driver to not be
- static.
- - ALSA: Don't assume i2c device probing always succeeds
- The client->driver pointer can be NULL when i2c-device probing fails
- in i2c_new_device(). This patch adds the NULL checks for client->driver
- and return the error instead of blind assumption of driver availability.
- Reported-by: Tim Shepard <shep@alum.mit.edu>
- Cc: Jean Delvare <khali@linux-fr.org>
- Cc: Johannes Berg <johannes@sipsolutions.net>
SB drivers
- - ALSA: sb_mixer: convert pointer tables to mixer control tables
- Convert table of pointers to mixer controls into tables
- of the mixer controls. It saves about 20% of the snd-sb-common
- module size reported by lsmod.
- The als4000 uses part of sb16's control table.
SGI O2 Audio
- - ALSA: Fix invalid __exit in sound/mips/*.c
- The remove callback has to be marked as __devexit, as the dynamic unbind
- is possible.
- Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
SH platform core
- - ALSA: sh: add SuperH DAC audio driver for ALSA V4
- This is a port of the sound/oss/sh_dac_audio.c driver.
- The driver uses an on-chip 8-bit D/A converter, which has a speaker connected
- to one of its channels, found in several ancient HP machines.
- For interrupts it uses a high-resolution timer (hrtimer).
- Tested on SH7709 based hp6xx (HP Jornada 680/690 and HP Palmtop 620lx/660lx).
- Also, since OSS Emulation works, the old OSS sound/oss/sh_dac_audio.c driver
- would be obsolete soon, and it could be removed.
- Acked-by: Paul Mundt <lethal@linux-sh.org>
Serial BUS drivers
- - ALSA: ak4113 support
- * complete support for ak4113
- * based on code for ak4114 and ak4117
SoC Audio for Freecale i.MX1x i.MX2x CPUs
- - ASoC: Wrong variable returned on error
- The wrong variable was returned in the case of an error
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Remove absent SYNC and TDM DAI format options from i.MX SSI
- These should be handled via set_tdm_slot() now and cause build
- failures as-is.
SoC Audio for the Atmel AT32/AT91 System-on-Chip
- - ASoC: at91sam9g20ek_2mmc board uses same audio connexion as at91sam9g20ek
- The modified revision of at91sam9g20 Evaluation Kit rev. C and onwards share
- with previous ones its audio connexion to Wolfson wm8731. Modify the SoC file
- to extend the machine ID checking.
- - ASoC: Add source argument to PLL configuration
- More and more devices feature PLLs and FLLs with the ability to select
- between multiple input clocks. In order to better support these devices
- a new argument, source, has been added to the set_pll() configuration
- API. Using set_clkdiv() is often difficult due to the need to stop the
- PLL/FLL before any reconfiguration can be done.
- - [ARM] 5596/1: at91sam9g20-ek: Register WM8731 in board file
- The WM8731 driver has been updated to allow registration via normal
- device model methods rather than from within the ASoC driver probe
- so update the AT91SAM9G20-EK to make use of this.
- Acked-by: Andrew Victor <linux@maxim.org.za>
SoC Audio for the Samsung S3C24XX chips
- - ASoC: Added the CPU driver for PCM controllers
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Rename 's3c24xx-pcm' driver to 's3c-dma'
- Making room for namespace for the PCM Controller driver
- the platform driver(s3c24xx-pcm) has been renamed to SoC
- agnostic name 's3c-dma'.
- Acked-by: Ben Dooks <ben-linux@fluff.org>
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Rename s3c24xx_pcm prefix to s3c_dma
- The s3c24xx_pcm prefix for the soc_platform is inappropriate when
- some Samsung SoCs have PCM controllers which will eventually have
- drivers and hence namespace ambiguities.
- To resolve naming ambiguities in future the following have been
- renamed in order
- 1) s3c24xx_pcm_dma_params -> s3c_dma_params
- 2) s3c24xx_pcm_preallocate_dma_buffer -> s3c_preallocate_dma_buffer
- 3) s3c24xx_pcm_dmamask -> s3c_dma_mask
- 4) s3c24xx_pcm_XXX -> s3c_dma_XXX
- Acked-by: Ben Dooks <ben-linux@fluff.org>
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Fixed arguments passed to SMDK64xx set_pll
- Corrected the order of 'source' and 'pll_id' arguments.
- - ASoC: S3C64XX I2S: Enable audio-bus clock
- Added the missing clk_enable after acquiring the 'audio-bus' clock.
- - ARM: S3C: Add info for supporting circular DMA buffers
- The S3C64XX DMA implementation will work a lot better with the ability
- to enqueue circular buffers as the hardware can do it's own linked-list
- management.
- Add a function s3c_dma_has_circular() to show that the system can do this
- and a flag for the channel.
- Update the s3c24xx/s3c64xx I2S DMA code to deal with this.
- Acked-by: Mark Brown <broonie@@opensource.wolfsonmicro.com>
- - ASoC: Minor SMDK64xx WM8580 cleanups
- Fix up some comments, remove all enable_pin() calls (edge widgets
- are all enabled by default) and mark the microphone as disabled by
- default since it requires a resistor fit to connect it.
- - ASoC: S3C: Remove <plat/audio.h>
- Remove the <plat/audio.h> include from arch/arm/plat-s3c/include/plat/audio.h
- as it provides nothing to the current kernel and is not in any future plans
- for the system.
- - ASoC: Fix snd_soc_dai_set_pll() calls in neo1973_*.c
- Fix the missing argument of snd_soc_dai_set_pll() in neo1973_*.c,
- which was forgotten in the commit 85488037bb.
- - ASoC: Support WM8580 based audio subsystem on SMDK64xx machines
- New machine driver for WM8580 I2S i/f on SMDK64XX.
- By default SoC-Slave is set and WM8580 is configured to use it's
- PLLA to generate clocks from a 12MHz crystal attached to WM8580.
- [Added dependency on BROKEN since the IISv4 interface hasn't been merged
- yet, fixed the PLL API usage and removed the disabling of the PLL in the
- hw_free function since that'll break simultaneous playback and record
- -- broonie.]
- - ASoC: Return correct codec clock in s3c64xx-i2s
- Instead of always returnig pointer to the 'audio-bus' clock,
- check which clock is used to generate internal clocks and
- then return it's pointer.
- - ASoC: Add S3C64xx IIS CDCLK source selection
- CDCLK can either be an output generated by the CPU, intended for use
- as the CODEC master clock, or an input (probably from the CODEC)
- providing a master clock for the IIS block.
- - ASoC: S3C I2S LRCLK polarity option.
- 1) Explicitly set LRCLK polarity for I2S Vs LSM/MSB modes.
- 2) Convert from numerical to bit-field values for BCLK selection.
- 3) Use proper error checking for return value from clk_get
- - ASoC: S3C lrsync function made to work with IRQs disabled.
- s3c2412_snd_lrsync() maybe reached with IRQs disabled and if LRCLK
- is dead due to improper initialization of CPU or CODEC, the system
- gets stuck in the loop because jiffies may never get updated.
- Implemented counter based wait mechanism for atleast the same
- timeout period.
- - ARM: S3C24XX: Add platform device for AC97 controller
- Move the definition of the "generic" IRQ in the process.
SoC Blackfin
- - ASoC: Blackfin I2S: use dai state rather than local counter
- Since the active field of the dai already tells us the stream activity,
- the local counter variable is redundant and can be replaced.
- - ASoC: use set_channel_map api to reorder channels for AD1938 and AD1836
- - ASoC: fix kconfig order of Blackfin drivers
- Some of the Blackfin options don't directly follow the kconfig options
- they depend on, so kconfig is unable to display the proper tree. So sort
- the options such they expand/collapse properly.
- - ASoC: Blackfin: fix inverted handling of SPORT0 on PORT F/G
- - ASoC: Blackfin I2S: fix resuming when device hasn't been used
- If the sound system hasn't been utilized yet and we suspend, then we
- attempt to save/restore using state that doesn't exist. So use a global
- handle instead to reconfigure properly.
- - ASoC: Blackfin I2S: add lost platform_device parameter to resume function
- Commit dc7d7b830ee1 trimmed the platform_device parameter from all of the
- suspend functions, but it also accidentally removed it from the resume
- function in the Blackfin I2S driver. So restore it.
- - ASoC: fix typos in Blackfin headers
- - ASoC: bf5xx-sport: the irq save/restore funcs take an unsigned long
- - ASoC: Blackfin AC97: add a few missing multichannel define handling
- Somewhere along the line, most of SND_BF5XX_MULTICHAN_SUPPORT handling was
- merged, but two places were missed (the probe/resume functions). Restore
- handling of this option so it gets initialized properly.
- - ASoC: new board driver to connect bfin-5xx with ad1836 codec
- As discussed, the patch uses the original TDM order without rewriting.
- For the match between TDM slot number and audio channel number, a new
- API need be added.
SoC Codec AC97
- - ASoC: Factor out snd_soc_init_card()
- snd_soc_init_card() is always called as the last part of the CODEC probe
- function so we can factor it out into the core card setup rather than
- have each CODEC replicate the code to do the initialiastation. This will
- be required to support multiple CODECs per card.
SoC Codec AD1836
- - ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
- The DAPM widgets are now insntantiated by the core when creating the card
- so there is no need for the individual CODEC drivers to do so.
- - ASoC: Remove dead code and labels
- Remove the dead code and labels "card_err" in the error paths of
- some codec drivers.
- - ASoC: Factor out snd_soc_init_card()
- snd_soc_init_card() is always called as the last part of the CODEC probe
- function so we can factor it out into the core card setup rather than
- have each CODEC replicate the code to do the initialiastation. This will
- be required to support multiple CODECs per card.
- - ASoC: some minor changes for AD1836 and AD1938 codec drivers
- 1. delete redundant assignment to bus field in spi_driver structure
- 2. fix lost assignment to set_bias_level entry in ad1938 codec dai
- 3. change spi driver name of ad1836 from "ad1836-spi" to "ad1836"
- - ASoC: remove unused #include <linux/version.h>
- Remove unused #include <linux/version.h>('s) in
- sound/soc/codecs/ad1836.c
- sound/soc/codecs/ad1938.c
- sound/soc/codecs/wm8974.c
SoC Codec AD1938
- - ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
- The DAPM widgets are now insntantiated by the core when creating the card
- so there is no need for the individual CODEC drivers to do so.
- - ASoC: Remove dead code and labels
- Remove the dead code and labels "card_err" in the error paths of
- some codec drivers.
- - ASoC: Factor out snd_soc_init_card()
- snd_soc_init_card() is always called as the last part of the CODEC probe
- function so we can factor it out into the core card setup rather than
- have each CODEC replicate the code to do the initialiastation. This will
- be required to support multiple CODECs per card.
- - ASoC: some minor changes for AD1836 and AD1938 codec drivers
- 1. delete redundant assignment to bus field in spi_driver structure
- 2. fix lost assignment to set_bias_level entry in ad1938 codec dai
- 3. change spi driver name of ad1836 from "ad1836-spi" to "ad1836"
- - ASoC: remove unused #include <linux/version.h>
- Remove unused #include <linux/version.h>('s) in
- sound/soc/codecs/ad1836.c
- sound/soc/codecs/ad1938.c
- sound/soc/codecs/wm8974.c
SoC Codec AK4535
- - ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
- The DAPM widgets are now insntantiated by the core when creating the card
- so there is no need for the individual CODEC drivers to do so.
SoC Codec AK4671
- - ASoC: Remove redundant snd_soc_dapm_new_widgets() calls
- The DAPM widgets are now insntantiated by the core when creating the card
- so there is no need for the individual CODEC drivers to do so.
- - ASoC: AK4671: add ak4671 codec driver
- The AK4671 is a stereo CODEC with a built-in Microphone-Amplifier,
- Receiver-Amplifier and Headphone-Amplifier.
- The datasheet for the ak4671 can find at the following url:
- http://www.asahi-kasei.co.jp/akm/en/product/ak4671/ak4671_f01e.pdf
SoC Codec CS4270
- - ASoC: CS4270: export de-emphasis filter as ALSA control
- The CS4270 codec features an de-emphasis filter for compensation of
- audio material filtered by an 50/15 uS algorithm. Not sure whether we
- should always enable it for 44100Hz sampling frequency, but it should at
- least be configurable by the user.
- Acked-by: Timur Tabi <timur@freescale.com>
- - ASoC: Remove snd_soc_suspend_device()
- The PM core will grow pm_link infrastructure in 2.6.33 which can be
- used to implement the intended functionality of the ASoC-specific
- device suspend and resume callbacks so drop them.
SoC Codec CX20442
- - ASoC: Remove dead code and labels
- Remove the dead code and labels "card_err" in the error paths of
- some codec drivers.
SoC Codec TLV320AIC23
- - ASoC: AIC23: Fixing infinite loop in resume path
- This patch fixes two issues:
- a) Infinite loop in resume function
- b) Writes to non-existing registers in resume function
- Cc: stable@kernel.org
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: tlv320aic23 fix rate selection
- Fix the ordering of sr_valid_mask array.
- The lower bit of the index represents USB
- not bosr.
- Reported-by: Anuj Aggarwal <anuj.aggarwal@ti.com>
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
SoC Codec TLV320DAC33
- - ASoC: tlv320dac33: Change RT wq to singlethread wq
- RT workqueue is going away in the near future, replace it with
- singlethread wq for now, which is still supported.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: tlv320dac33: typo fix in the header
- Fix the definition of DAC33_LTM field, the LTM bits in
- FIFO_IRQ_MODE_B register are starting at bit 6.
- - ASoC: Codec driver for Texas Instruments tlv320dac33 codec
- Driver for Texas Instruments TLV320DAC33 (SLAS546) low power stereo
- audio DAC.
- TLV320DAC33 is a stereo audio codec with integrated 24KB FIFO for low
- power audio playback.
- The digital interface can use I2S, DSP (A or B), Right and Left
- justified formats.
- DAC33 has stereo analog input, which can be bypassed to the analog
- outputs.
- Regarding to the internal 24KB FIFO the driver implements 'FIFO bypass'
- mode (default) and nSample mode (FIFO is in use).
- a) In 'FIFO bypass' mode the internal FIFO is not in use, the codec is
- working synchronously as a normal codec (it needs constant stream of
- data on the digital interface).
- b) The nSample mode implementation uses one interrupt line from DAC33 to
- the host:
- Alarm threshold is set to 10ms of audio data (limit by the driver
- implementation).
- DAC33 will signal an interrupt, when the FIFO level goes under the
- Alarm threshold.
- The host will write to nSample register a value (number of stereo
- samples), to tell DAC33 how many samples it should read in a burst from
- the host. When the DAC33 received the number of samples, it disables the
- clocks on the I2S bus. When the FIFO use again goes under the Alarm
- threshold, DAC33 signals the host with an interrupt, and the process is
- repeated.
SoC Codec TPA6130A2
- - ASoC: TPA6130A2: Make tpa6130a2_power as static
- The power for the amplifier should be handled internally
- by the tpa6130a2 driver.
- - ASoC: Minor fixups to tpa6130a2 driver
- - Staticise ttpa6130a2_client.
- - Remove unneeded cast from void.
- - Use explict NULL rather than 0.
- - ASoC: TPA6130A2 amplifier driver
- Driver for Texas Instruments TPA6130A2 stereo headphone
- amplifier.
- The driver provides playback gain control and also pre-defined
- DAPM_HP widgets and DAPM routings for power management.
- The DAPM_HP widget names are:
- "TPA6130A2 Headphone Left"
- "TPA6130A2 Headphone Right"
- From soc machine drivers to use with the tpa6130a2 amplifier,
- the tpa6130a2_add_controls has to be called, which adds the alsa
- controls and the DAPM routing needed for the tpa6130a2.
- After that the machine driver can connect the codec's output
- with 'TPA6130A2 Left' and 'TPA6130A2 Right':
- {"TPA6130A2 Left", NULL, "CODEC LEFT OUT"},
- {"TPA6130A2 Right", NULL, "CODEC RIGHT OUT"},
- Internally the left and right channels are powered separately.
- When none of the channels are needed the amplifier is powered
- down:
- hard power: valid GPIO number is passed within platform data
- soft power: Using the software shutdown of the amplifier
SoC Codec TWL4030
- - ASoC: TWL4030: Do not modify the APLL_CTL register
- APLL_CTL register is configured by the twl4030-codec MFD
- driver.
- Remove code, which makes changes in the APLL_CTL register,
- and replace those with checks against the configured
- audio_mclk configuration done in the MFD driver.
- - ASoC: TWL4030: Make sure, that the codec is powered on startup
- Set the codec->bias_level to SND_SOC_BIAS_OFF before changing
- the initial bias level to STANDBY.
- - ASoC: TWL4030: Add APLL supply for the capture path
- Capture path also need the APLL enabled, adding DAPM_SUPPLY
- for the Virtual ADCs.
- - ASoC: TWL4030: Change APLL powering sequence
- It seams that certain part of the twl4030 codec needs the APLL
- enabled before they are enabled.
- Paths which has any digital processing needs need the APLL
- enabled before they can function.
- For example the vibra output will have some random data after
- it is enabled and before the APLL also enabled.
- If only analog components are in use (analog bypass), than it
- seams, that the APLL does not need to be enabled. This lowers
- the power consumption with around ~0.005A.
- Adding DAPM_SUPPLY to the Digital playback route and also
- to the capture route to enable and disable the APLL.
- - ASoC: TWL4030: Vibra motor stop fix when it is driven with audio
- This patch fixes vibrator playing incoherently, when driven
- with audio. There is something wrong in switch 3 at
- H-bridge and VIBRA_SET still affects PWM generator.
- Slowest value fixes things.
- - ASoC: TWL4030: Change codec_muted to apll_enabled
- codec_muted is missleading, change it to apll_enabled,
- which is what it is doing: enabing and disabling the APLL.
- - ASoC: TWL4030: Remove bypass tracking
- Since ASoC core now handling the codec bias differently
- there is no need to do the tracking of bypass switch states
- anymore.
- Handling of the common bit for analog loopbacks is done with
- DAPM_SUPPLY for the bypass paths.
- Now this bit is only enabled when there is a complete analog
- bypass path, compared to the previous implementation, when the
- global switch was enabled if there were any of the analog
- bypass switch was on (regardless if there were complete path or
- not)
- - ASoC: TWL4030: Driver registration via twl4030_codec MFD
- Change the way how the twl4030 soc codec driver is
- loaded/probed.
- Use the device probing via tlw4030_codec MFD device.
- - ASoC: TWL4030: use the twl4030-codec.h for register descriptions
- Remove the register descriptions from the twl4030.h file and use
- the linux/mfd/twl4030-codec.h instead, which has the codec
- related register descriptions also.
- - ASoC: TWL4030: Only update the needed bits in *set_dai_sysclk
- Do not rewrite the whole register, but only update the needed
- bits in set_dai_sysclk functions.
SoC Codec WM8350
- - ASoC: Remove snd_soc_suspend_device()
- The PM core will grow pm_link infrastructure in 2.6.33 which can be
- used to implement the intended functionality of the ASoC-specific
- device suspend and resume callbacks so drop them.
- - ASoC: WM8350 capture PGA mutes are inverted
- Cc: stable@kernel.org
- - ASoC: Fix WM835x Out4 capture enumeration
- It's the 8th enum of a zero indexed array. This is why I don't let
- new drivers use these arrays of enums...
- Cc: stable@kernel.org
SoC Codec WM8400
- - ASoC: Remove dead code and labels
- Remove the dead code and labels "card_err" in the error paths of
- some codec drivers.
- - ASoC: Remove snd_soc_suspend_device()
- The PM core will grow pm_link infrastructure in 2.6.33 which can be
- used to implement the intended functionality of the ASoC-specific
- device suspend and resume callbacks so drop them.
SoC Codec WM8580
- - ASoC: Debugged improper setting of PLL fields in WM8580 driver
- Bug was caught while trying to use WM8580 as I2S master on SMDK.
- Symptoms were lesser LRCLK read by CRO(41.02 instead of 44.1 KHz) Solved
- by referring to WM8580A manual and setting mask value correctly and
- making the code to not touch 'reserved' bits of PLL4 register.
SoC Codec WM8711
- - ASoC: Fix build errors of wm8711.c with SPI
- Fix a couple of typos and a missing header file inclusion to build wm8711.c
- properly with CONFIG_SPI_MASTER.
- - ASoC: Add TLV information to WM8711
- - ASoC: WM8711 minor cleanups
- Coding style changes only.
- - ASoC: Add SPI support to WM8711
- - ASoC: Factor out WM8711 cache I/O
- - ASoC: Update WM8711 to driver model registration method
- - ASoC: Add WM8711 CODEC driver
- The WM8711 or WM8711L (WM8711/L) is a low power stereo DAC with an
- integrated headphone driver. The WM8711/L is designed specifically for
- portable MP3 audio and speech players. The WM8711/L is also ideal for
- MD, CD machines and DAT players.
SoC Codec WM8727
- - ASoC: Staticise wm8727 driver structure
- - ASoC: Add support for the WM8727 DAC.
- Add support for the Wolfson Microelectronics WM8727 DAC, this is a simple
- non-configurable DAC.
SoC Codec WM8731
- - ASoC: Add regulator support for WM8731
SoC Codec WM8753
- - ASoC: wm8753: fix mapping when MONOMIX is set to Stereo
- When MONOMIX is set to Stereo, Left PGA was not powered on but should be.
- Add a mapping from Capture Left Mux to Capture Left Mixer to fix the issue.
SoC Codec WM8940
- - ASoC: wm8940: Fix check on error code form snd_soc_codec_set_cache_io
- Fix for typo in commit 8d50e447d19fec64adebeef55f2b60d695435412
- ASoC: Factor out I/O for Wolfson 8 bit data 16 bit register CODECs
SoC Codec WM8974
- - ASoC: Clean up WM8974 PLL configuration
- Don't use a static for WM8974 PLL factors - we don't support more than
- one device so it won't happen but no sense in leaving the race condition
- hanging around. Also, pre_div is a single bit and it's a bit simpler if
- we move the handling of the factor of 4 in the output into the
- coefficient setup.
- - ASoC: remove unused #include <linux/version.h>
- Remove unused #include <linux/version.h>('s) in
- sound/soc/codecs/ad1836.c
- sound/soc/codecs/ad1938.c
- sound/soc/codecs/wm8974.c
SoC Codec WM8993/4
- - tree-wide: fix assorted typos all over the place
- That is "success", "unknown", "through", "performance", "[re|un]mapping"
- , "access", "default", "reasonable", "[con]currently", "temperature"
- , "channel", "[un]used", "application", "example","hierarchy", "therefore"
- , "[over|under]flow", "contiguous", "threshold", "enough" and others.
- - ASoC: Rename controls with a / in wm_hubs
- This renames from a character / to : of controls. A / occurs below error
- messages.
- ASoC: Failed to create IN2RP/VXRP debugfs file
- ASoC: Failed to create IN2LP/VXRN debugfs file
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Factor out analogue platform data from WM8993
- This is also shared with newer CODECs.
- - ASoC: Fully specify DC servo bits to update in wm_hubs
- Avoids potential issues if we read back unexpected values during
- a read/modify/write cycle.
SoC Codec WM9081
- - trivial: remove unnecessary semicolons
SoC Codec WM9705
- - ASoC: Revert missing reset_err in wm97*.c
- The commit fe3e78e073d25308756f38019956061153267769
- ASoC: Factor out snd_soc_init_card()
- removed the error paths that are still valid for wm97* codecs, causing
- the compile errors like
- sound/soc/codecs/wm9705.c:399: error: label 'reset_err' used but not defined
- sound/soc/codecs/wm9712.c:687: error: label 'reset_err' used but not defined
- sound/soc/codecs/wm9713.c:1237: error: label 'reset_err' used but not defined
- Revert the removed error path codes.
SoC Codec WM9712
- - ASoC: Revert missing reset_err in wm97*.c
- The commit fe3e78e073d25308756f38019956061153267769
- ASoC: Factor out snd_soc_init_card()
- removed the error paths that are still valid for wm97* codecs, causing
- the compile errors like
- sound/soc/codecs/wm9705.c:399: error: label 'reset_err' used but not defined
- sound/soc/codecs/wm9712.c:687: error: label 'reset_err' used but not defined
- sound/soc/codecs/wm9713.c:1237: error: label 'reset_err' used but not defined
- Revert the removed error path codes.
SoC Codec WM9713
- - ASoC: Revert missing reset_err in wm97*.c
- The commit fe3e78e073d25308756f38019956061153267769
- ASoC: Factor out snd_soc_init_card()
- removed the error paths that are still valid for wm97* codecs, causing
- the compile errors like
- sound/soc/codecs/wm9705.c:399: error: label 'reset_err' used but not defined
- sound/soc/codecs/wm9712.c:687: error: label 'reset_err' used but not defined
- sound/soc/codecs/wm9713.c:1237: error: label 'reset_err' used but not defined
- Revert the removed error path codes.
SoC Codec ads1174/8
- - ASoC: Update ads117x to current APIs
- Probe as a platform driver (ads117x) and remove the call to
- snd_soc_init_card().
- - ASoC: ADS117x ADC driver
- This patch adds support for the TI ADS117x family of multichannel ADCs
- and was sponsored by Shotspotter Inc.
SoC DaVinci
- - ASoC: DaVinci: use edma_pause, edma_resume
- Use edma_pause and edma_resume to make missing dma_events
- less likely. This may not be needed, but it looks better.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: DaVinci: pcm, fix underrun by using sram
- Fix underruns by using dma to copy 1st to sram
- in a ping/pong buffer style and then copying from
- the sram to the ASP. This also has the advantage
- of tolerating very long interrupt latency on dma
- completion.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: DaVinci: pcm, rename variables in prep for ping/pong
- Rename variable master_lch to asp_channel
- Rename variable slave_lch to asp_link[0]
- Rename local variables:
- lch to link
- count to asp_count
- src to asp_src
- dst to asp_dst
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: DaVinci: i2s, reduce underruns by combining into 1 element
- Allow the left and right 16 bit samples to be shifted out as 1
- 32 bit sample.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: DaVinci: remove requirement that dma_params is 1st in structure
- Remove requirement that dma_params is 1st in the structures
- davinci_audio_dev and davinci_mcbsp_dev.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: DaVinci: McASP FIFO related updates
- The DMA params for McASP with FIFO has been updated so that it works for
- various FIFO levels. A member- 'fifo_level' has been added to the DMA
- params data structure. The fifo_level can be adjusted by the tx[rx]_numevt
- platform data. This is relevant only for DA8xx/OMAP-L1xx platforms. This
- implementation has been tested for numevt values 1, 2, 4, 8.
- - ASoC: Davinci: Add audio codec support for DM365 EVM
- This patch enables tlv320aic3101 support on DM365 EVM and
- it was tested on DM365 EVM rev c.
- Note: this patch was created based on temp/asoc branch.
- - ASoC: DaVinci: Correct McASP FIFO initialization
- McASP write FIFO registers should be modified for playback and read FIFO
- registers for capture. Check the PCM mode before manipulating the
- FIFO registers. Currently, irrespective of playback/capture both the
- FIFOs are enabled or disbaled. This resulted in errors in audio loopback
- mode.
- - ASoC: Davinci: Fix race with cpu_dai->dma_data
- This patch removes references to cpu_dai->dma_data.
- It makes struct davinci_pcm_dma_params part of
- struct davinci_mcbsp_dev or struct davinci_audio_dev.
- It removes the unused name variable from davinci_pcm_dma_params.
- - ASoC: DaVinci: Fix divide by zero error during 1st execution
- When both playback and capture stream were open
- davinci_i2s_hw_params was setting parameters for
- the wrong stream. The fix for davinci_i2s_hw_params
- is sufficient, but it looks like a race still happens
- in davici_pcm_open. This patch also makes the race smaller
- but the next patch provides a better fix.
- - ASoC: DaVinci: Fixes to McASP configuration
- McASP register settings are not correct for DSP mode of operation.
- There is a channel swap initally. This patch provides fixes to
- the register values for proper working.
- Tested on DA830/OMAP-L137 EVM, DM6467 EVM.
- - davinci: EDMA: multiple CCs, channel mapping and API changes
- - restructure to support multiple channel controllers by using
- additional struct resources for each CC
- - interface changes visible to EDMA clients
- Introduce macros to build IDs from controller and channel number,
- and to extract them. Modify the edma_alloc_slot function to take an
- extra argument for the controller.
- Also update ASoC drivers to use API. ASoC changes
- Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- - Move queue related mappings to dm<soc>.c
- EDMA in DM355 and DM644x has two transfer controllers while DM646x
- has four transfer controllers. Moving the queue to tc mapping and
- queue priority mapping to dm<soc>.c will be helpful to probe these
- mappings from platform device so that the machine_is_* testing will
- be avoided.
- - add channel mapping logic
- Channel mapping logic is introduced in dm646x EDMA. This implies
- that there is no fixed association for a channel number to a
- parameter entry number. In other words, using the DMA channel
- mapping registers (DCHMAPn), a PaRAM entry can be mapped to any
- channel. While in the case of dm644x and dm355 there is a fixed
- mapping between the EDMA channel and Param entry number.
- Reviewed-by: David Brownell <dbrownell@users.sourceforge.net>
- - ASoC: davinci: i2c device creation moved into board files
- Also, the codec setup data structure has to remain for successful
- probe.
SoC Dynamic Audio Power Management
- - ASoC: Fix suspend with active audio streams
- When we get a stream suspend event force the power down since otherwise
- the stream would remain marked as active. In future we'll probably want
- to make this stream-specific and add an interface to make the power down
- of other widgets optional in order to support leaving bypass paths
- active while suspending the processor.
- Cc: stable@kernel.org
- Reported-by: Joonyoung Shim <jy0922.shim@samsung.com>
- Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Serialize access to dapm_power_widgets()
- Access to damp_power_widgets() is assumed to be single-threaded.
- Concurrent accesses to dapm_power_widgets() may result in
- unpredictable behavior.
- Calls from:
- close_delayed_work()
- soc_codec_close()
- soc_pcm_prepare()
- soc_suspend()
- soc_resume_deferred()
- to snd_soc_dapm_stream_event() do not have the codec->mutex
- taken to cover the call to dapm_power_widgets(). Thus, take
- the mutex in these paths also to assure single-threaded use
- of dapm_power_widgets().
- - ASoC: Add virtual enumeration support for DAPM muxes
- Sometimes it is desirable to have a mux which does not reflect any
- direct register configuration but which will instead only have an
- effect implicitly (for example, as a result of changing which parts
- of the device are powered up). Provide a virtual mux for this purpose.
- - ASoC: Push DAPM enumeration register change test out
- Don't assume that enumerations are backed by registers when updating
- mux power.
- - ASoC: Simplify code for DAPM widget updates
- We don't need to check for an event callback since we also check for
- an appropriate event flag when applying mux status changes.
- - ASoC: Allow per-route connectedness checks for supplies
- Some chips with complex internal supply (particularly clocking)
- arragements may have multiple options for some of the supply
- connections. Since these don't affect user-visible audio routing
- the expectation would be that they would be managed automatically
- by one of the drivers.
- Support these users by allowing routes to have a connected function
- which is queried before the connectedness of the path is checked as
- normal. Currently this is only done for supplies, other widgets
- could be supported but are not currently since the expectation for
- them is that audio routing will be under the control of userspace.
- - ASoC: Fix SND_SOC_DAPM_LINE handling
- Since the SND_SOC_DAPM_LINE can be input or output, additional check is
- needed in order to determine if the widget is connected as input or
- output.
- When checking for connected outputs, if the widget is line, than check
- if the sources list is not empty (line is connected as output)
- For input endpoint check, when the widget is line, also check if the
- sinks list is not empty (line is connected as input).
- - ASoC: Fix display of stream name in DAPM debugfs
- Also display streams all the time while we're here.
SoC Freescale
- - ASoC: mpc5200: remove duplicate identical IRQ handler
- The TX and RX irq handlers are identical. Merge them
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - sound: ASoC/mpc5200: fix enable/disable of AC97 slots
- The MPC5200 AC97 driver is disabling the slots when a stop
- trigger is received, but not reenabling them if the stream
- is started again without processing the hw_params again.
- This patch fixes the problem by caching the slot enable bit
- settings calculated at hw_params time so that they can be
- reapplied every time the start trigger is received.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - sound: ASoC/mpc5200: add to_psc_dma_stream() helper
- Move the resolving of the psc_dma_stream pointer to a helper function
- to reduce duplicate code
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - sound: ASoC/mpc5200: Improve printk debug output for trigger
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - sound: ASoC/mpc5200: get rid of the appl_ptr tracking nonsense
- Sound drivers PCM DMA is supposed to free-run until told to stop
- by the trigger callback. The current code tries to track appl_ptr,
- to avoid stale buffer data getting played out at the end of the
- data stream. Unfortunately it also results in race conditions
- which can cause the audio to stall.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - sound: ASoC/mpc5200: Track DMA position by period number instead of bytes
- All DMA blocks are lined up to period boundaries, but the DMA
- handling code tracks bytes instead. This patch reworks the code
- to track the period index into the DMA buffer instead of the
- physical address pointer. Doing so makes the code simpler and
- easier to understand.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Clean up error handling in MPC5200 DMA setup
- Error handling code following a kzalloc should free the allocated data.
- Error handling code following an ioremap should iounmap the allocated data.
- The semantic match that finds the first problem is as follows:
- (http://www.emn.fr/x-info/coccinelle/)
- // <smpl>
- @r exists@
- local idexpression x;
- statement S;
- expression E;
- identifier f,f1,l;
- position p1,p2;
- expression *ptr != NULL;
- @@
- x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
- ...
- if (x == NULL) S
- <... when != x
- when != if (...) { <+...x...+> }
- (
- x->f1 = E
- |
- (x->f1 == NULL || ...)
- |
- f(...,x->f1,...)
- )
- ...>
- (
- return \(0\|<+...x...+>\|ptr\);
- |
- return@p2 ...;
- )
- @script:python@
- p1 << r.p1;
- p2 << r.p2;
- @@
- print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
- // </smpl>
SoC Layer
- - Add the build stub for soc/soc-utils.c
- - ASoC: Add BCLK calculation utility for TDM mode too
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: ADS117x ADC driver
- This patch adds support for the TI ADS117x family of multichannel ADCs
- and was sponsored by Shotspotter Inc.
- - ASoC: Add jack_status_check callback function for GPIO jacks
- The jack_status_check callback function is the interface to check the
- status of the jack. Some target provides the method to distinguish what
- is the jack inserted - headphone jack, microphone jack, tvout jack, etc,
- so we can implement it using the jack_status_check function.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: move setting ac97 platformdata earlier than ac97 read/write
- While probing, AC97 codec drivers and soc-core generically execute the
- following sequence:
- snd_soc_new_ac97_codec -> snd_soc_new_pcms -> reset ac-link/read AC97 ID
- to detect ->... -> set platform_data to ac97 by soc-core
- commit 474828a40f6ddab6e2a3475a19c5c84aa3ec7d60 adds platform_data to
- snd_ac97 instance. But ac97 platform data hasn't given to snd_ac97
- before actual ac97 operations. Then while ac97_read access platform_data
- of snd_ac97 for detecting, NULL pointer oops will fire. That means old
- platform_data patch doesn't work in real-life cases.
- This patch moves the operation of setting ac97 platform_data earlier
- than ac97 reading/writing operations. Then it makes platform_data of
- AC97 become practically useful.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Add bit clock rate calculator utility functions
- Many devices need to calculate the bit clock rate desired to
- work out the clock configuration required for the device.
- Provide utility functions to do this using both hw_params
- structures and raw numbers.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Factor out snd_soc_init_card()
- snd_soc_init_card() is always called as the last part of the CODEC probe
- function so we can factor it out into the core card setup rather than
- have each CODEC replicate the code to do the initialiastation. This will
- be required to support multiple CODECs per card.
- - ASoC: Move sysfs and debugfs functions to head of soc-core.c
- A fairly hefty change in diff terms but no actual code changes, will be
- used by the next commit.
- - ASoC: Add support for the WM8727 DAC.
- Add support for the Wolfson Microelectronics WM8727 DAC, this is a simple
- non-configurable DAC.
- - ASoC: refactor snd_soc_update_bits()
- Introduce a wrapper call snd_soc_update_bits_locked()
- that will take the codec mutex. This call is used
- when the codec mutex is not already taken.
- Drivers calling snd_soc_update_bits() may wish to
- make sure the codec mutex is taken from the driver.
- - ASoC: remove io_mutex
- Remove the io_mutex. It has a drawback of serializing
- all accesses to snd_soc_update_bits() even when multiple
- codecs are in use. In addition, it fails to actually do
- its task - during snd_soc_update_bits(), dapm_update_bits()
- may also be accessing the same register which may result in
- an outdated register value.
- - ASoC: TWL4030: Driver registration via twl4030_codec MFD
- Change the way how the twl4030 soc codec driver is
- loaded/probed.
- Use the device probing via tlw4030_codec MFD device.
- - ASoC: Move dereference after NULL test
- If the NULL test on jack is needed, then the derefernce should be after the
- NULL test.
- A simplified version of the semantic match that detects this problem is as
- follows (http://coccinelle.lip6.fr/):
- // <smpl>
- @match exists@
- expression x, E;
- identifier fld;
- @@
- * x->fld
- ... when != \(x = E\|&x\)
- * x == NULL
- // </smpl>
- - ASoC: Fix possible codec_dai->ops NULL pointer problems
- Some codec DAIs like stac9766, wm9712, wm9713, ad1980 don't register themselves
- then it loses to the chance to be given a null_dai_ops in snd_soc_register_dai
- if they have no ops. When functions like soc_pcm_open, soc_pcm_hw_params etc.
- access the ops field in these DAIs, panic will happen.
- - ASoC: Codec driver for Texas Instruments tlv320dac33 codec
- Driver for Texas Instruments TLV320DAC33 (SLAS546) low power stereo
- audio DAC.
- TLV320DAC33 is a stereo audio codec with integrated 24KB FIFO for low
- power audio playback.
- The digital interface can use I2S, DSP (A or B), Right and Left
- justified formats.
- DAC33 has stereo analog input, which can be bypassed to the analog
- outputs.
- Regarding to the internal 24KB FIFO the driver implements 'FIFO bypass'
- mode (default) and nSample mode (FIFO is in use).
- a) In 'FIFO bypass' mode the internal FIFO is not in use, the codec is
- working synchronously as a normal codec (it needs constant stream of
- data on the digital interface).
- b) The nSample mode implementation uses one interrupt line from DAC33 to
- the host:
- Alarm threshold is set to 10ms of audio data (limit by the driver
- implementation).
- DAC33 will signal an interrupt, when the FIFO level goes under the
- Alarm threshold.
- The host will write to nSample register a value (number of stereo
- samples), to tell DAC33 how many samples it should read in a burst from
- the host. When the DAC33 received the number of samples, it disables the
- clocks on the I2S bus. When the FIFO use again goes under the Alarm
- threshold, DAC33 signals the host with an interrupt, and the process is
- repeated.
- - ASoC: Remove snd_soc_suspend_device()
- The PM core will grow pm_link infrastructure in 2.6.33 which can be
- used to implement the intended functionality of the ASoC-specific
- device suspend and resume callbacks so drop them.
- - ASoC: Add SPI support to WM8711
- - ASoC: TPA6130A2 amplifier driver
- Driver for Texas Instruments TPA6130A2 stereo headphone
- amplifier.
- The driver provides playback gain control and also pre-defined
- DAPM_HP widgets and DAPM routings for power management.
- The DAPM_HP widget names are:
- "TPA6130A2 Headphone Left"
- "TPA6130A2 Headphone Right"
- From soc machine drivers to use with the tpa6130a2 amplifier,
- the tpa6130a2_add_controls has to be called, which adds the alsa
- controls and the DAPM routing needed for the tpa6130a2.
- After that the machine driver can connect the codec's output
- with 'TPA6130A2 Left' and 'TPA6130A2 Right':
- {"TPA6130A2 Left", NULL, "CODEC LEFT OUT"},
- {"TPA6130A2 Right", NULL, "CODEC RIGHT OUT"},
- Internally the left and right channels are powered separately.
- When none of the channels are needed the amplifier is powered
- down:
- hard power: valid GPIO number is passed within platform data
- soft power: Using the software shutdown of the amplifier
- - ASoC: Improve the debugfs hierarchy
- Change the way the debugfs entries are created:
- If the codec->dev is valid, than use:
- debugfs/asoc/{codec->name}.{dev_name(codec->dev)}/
- if the codec->dev is NULL:
- debugfs/asoc/{codec->name}/
- as root for the debugfs entries.
- - ASoC: add support for multiple cards/codecs in debugfs
- In order to support multiple codecs on the same system in the debugfs
- the directory hierarchy need to be changed by adding directory per codec
- under the asoc direcorty:
- debugfs/asoc/{dev_name(socdev->dev)}-{codec->name}/codec_reg
- /dapm_pop_time
- /dapm/{widgets}
- With the original implementation only the debugfs files are only
- created for the first codec, other codecs loaded later would fail to
- create the debugfs files (since they are already exist).
- Furthermore in this situation any of the codecs has been removed, would
- cause the debugfs entries to disappear, regardless if the codec, which
- created them are still loaded (the one which loaded first).
- - ASoC: Add PDM DAI format definition
- Add DAI format definition for PDM interfaces.
- - ASoC: Convert soc-cache to use C99 style initialisers for the table
- - ASoC: Provide API for reordering channels
- The patch adds an interface to set the relationship between audio
- channel number and slot number. The interface should be really useful
- because audio channel n doesn't always use slot n in all platforms. And
- for some devices, the relationship even can change with sound mode
- switch in 2.1,3.1,4.1,5.1,6.1,7.1 etc.
- - ASoC: AK4671: add ak4671 codec driver
- The AK4671 is a stereo CODEC with a built-in Microphone-Amplifier,
- Receiver-Amplifier and Headphone-Amplifier.
- The datasheet for the ak4671 can find at the following url:
- http://www.asahi-kasei.co.jp/akm/en/product/ak4671/ak4671_f01e.pdf
- - ASoC: Factor out I2C 8 bit address 8 bit data I/O
- This patch is for the AK4671 codec driver using this format.
- - ASoC: Add source argument to PLL configuration
- More and more devices feature PLLs and FLLs with the ability to select
- between multiple input clocks. In order to better support these devices
- a new argument, source, has been added to the set_pll() configuration
- API. Using set_clkdiv() is often difficult due to the need to stop the
- PLL/FLL before any reconfiguration can be done.
- - ASoC: Add WM8711 CODEC driver
- The WM8711 or WM8711L (WM8711/L) is a low power stereo DAC with an
- integrated headphone driver. The WM8711/L is designed specifically for
- portable MP3 audio and speech players. The WM8711/L is also ideal for
- MD, CD machines and DAT players.
- - ASoC: Remove unuused hw_read_t
SoC S6000
- - ASoC: Use DMA_BIT_MASK(32) instead of deprecated DMA_32BIT_MASK
SoC SH7760 AC97
- - ASoC: sh: fsi: Add runtime PM support
- This patch add support runtime PM.
- Driver callbacks for Runtime PM are empty because
- the device registers are always re-initialized after
- pm_runtime_get_sync(). The Runtime PM functions replaces the
- clock framework module stop bit handling in this driver.
- Acked-by: Paul Mundt <lethal@linux-sh.org>
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: sh: FSI: Add capture support
- - ASoC: sh: FSI: Remove DMA support
- SuperH FSI device have the hardware limitation to use DMA.
- If DMA is used, LCD output will be broken.
- Maybe there are some solution. But I don't know how to do it now.
- This patch remove DMA support and use soft transfer.
SoC Texas Instruments OMAP
- - ASoC: Fix build of OMAP sound drivers
- There are build errors when building for some of the omap2/3 boards without
- enabling sound:
- sound/built-in.o:(.data+0x43bc): undefined reference to `soc_codec_dev_tlv320aic23'
- sound/built-in.o:(.data+0x43cc): undefined reference to `tlv320aic23_dai'
- Confused me quite a bit since the drivers that had references to the
- codec weren't enabled. Turns out the Makefile was using the wrong
- config option to enable them. Patch below.
- Reported-by: Anand Gadiyar <gadiyar@ti.com>
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Adding OMAP3517 / AM3517 EVM support in ASOC
- Adding support for OMAP3517 / AM3517 EVM in Alsa SoC.
- - omap: headers: Move remaining headers from include/mach to include/plat
- Move the remaining headers under plat-omap/include/mach
- to plat-omap/include/plat. Also search and replace the
- files using these headers to include using the right path.
- This was done with:
- #!/bin/bash
- mach_dir_old="arch/arm/plat-omap/include/mach"
- plat_dir_new="arch/arm/plat-omap/include/plat"
- headers=$(cd $mach_dir_old && ls *.h)
- omap_dirs="arch/arm/*omap*/ \
- drivers/video/omap \
- sound/soc/omap"
- other_files="drivers/leds/leds-ams-delta.c \
- drivers/mfd/menelaus.c \
- drivers/mfd/twl4030-core.c \
- drivers/mtd/nand/ams-delta.c"
- for header in $headers; do
- old="#include <mach\/$header"
- new="#include <plat\/$header"
- for dir in $omap_dirs; do
- find $dir -type f -name \*.[chS] | \
- xargs sed -i "s/$old/$new/"
- done
- find drivers/ -type f -name \*omap*.[chS] | \
- xargs sed -i "s/$old/$new/"
- for file in $other_files; do
- sed -i "s/$old/$new/" $file
- done
- done
- for header in $(ls $mach_dir_old/*.h); do
- git mv $header $plat_dir_new/
- done
- - ASoC: Add support for IGEP v2
- - ASoC: OMAP: enable Overo driver for CM-T35
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- Acked-by: Steve Sakoman <steve@sakoman.com>
- - ASoC: OMAP3 Pandora: update for TWL4030 codec changes
- A while ago TWL4030 had it's playback stream name changed, but
- pandora needs it for it's playback path. Update to correct stream
- name so that playback works again.
- Also mark VIBRA output as not connected.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Modifying the license string GPLv2 for OMAP3 EVM
- Correcting the license string from GPLv2 -> GPL v2.
- Found the problem while building OMAP3 ASoC driver as
- module.
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: omap-mcbsp - add support for upto 16 channels.
- This patch increases the number of supported audio channels from 4
- to 16 and has been sponsored by Shotspotter Inc. It also fixes a
- FSYNC rate calculation bug when McBSP is FSYNC master.
- Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
- Tested-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
- Acked-by: Jarkko Nikula <jhnikula@gmail.com>
- - ASoC: Pandora: Pass SRG input clock frequency to the OMAP McBSP DAI
- Upcoming change to omap-mcbsp.c require that machine drivers using OMAP
- as a DAI master to pass sample rate generator input clock frequency to
- the omap-mcbsp.c DAI driver.
- Pandora is using 256*Fs output from the TWL4030 codec as an input clock to
- the McBSP sample rate generator.
- Tested-by: Grazvydas Ignotas <notasas@gmail.com>
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ASoC: Modifying Kconfig/Makefile for AM3517 EVM
- Modifying the Kconfig and Makefile in sound/soc/omap folder
- to add support for OMAP3517 / AM3517 EVM in Alsa SoC.
- - ASoC: OMAP3EVM: Use the twl4030_setup_data for headset pop-removal
- The pop-removal specific values are configured for TWL4030 codec
- for OMAP3EVM through this patch.
- Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
- - ASoC: OMAP: Don't try to set unsupported OMAP_DMA_DATA_BURST_16 on OMAP1
- After DMA burst mode has been introduced in sound/soc/omap/omap-pcm.c,
- omap_pcm_prepare() unconditionally calls:
- omap_set_dma_src_burst_mode(prtd->dma_ch, OMAP_DMA_DATA_BURST_16);
- omap_set_dma_dest_burst_mode(prtd->dma_ch, OMAP_DMA_DATA_BURST_16);
- Current implementation of those two functions found in
- arch/arm/plat-ompa/dma.c doesn't support OMAP_DMA_DATA_BURST_16 on OMAP1 at
- all, so they both end with BUG() on that machine. That results in
- ASoC being completely unusable, at least on my OMAP5910 based Amstrad Delta.
- The patch corrects the problem by not calling those two functions when run on
- OMAP1 class based machines.
- Created against linux-2.6.32-rc5.
- Tested on Amstrad Delta.
- Acked-by: Jarkko Nikula <jhnikula@gmail.com>
- - ASoC: Amstrad Delta minor cleanups
- Hi Mark,
- Here is a patch that corrects small omissions I have found in my code.
- - ASoC: Amstrad Delta: add info about the line discipline requirement to Kconfig help text
- I thought it could be usefull to add some information on how to get the device
- fully supported by loading a line discipline on the modem line.
- - ASoC: OMAP: Add functionality to set CLKR and FSR sources in McBSP DAI
- The McBSP1 port in OMAP3 processors (I believe OMAP2 too but I don't have
- specifications to check it) have additional CLKR and FSR pins for McBSP1
- receiver. Reset default is that receiver is using bit clock and frame
- sync signal from those pins but it is possible to configure to use
- also CLKX and FSX pins as well. In fact, other McBSP ports are doing that
- internally that transmitter and receiver share the CLKX and FSX.
- Add functionaly that machine drivers can set the CLKR and FSR sources by
- using the snd_soc_dai_set_sysclk.
- Thanks to "Aggarwal, Anuj" <anuj.aggarwal@ti.com> for reporting the issue.
Soc PXA2xx Raumfeld
- - ASoC: pxa/raumfeld: adopt new snd_soc_dai_set_pll() API
- ALSA's for-2.6.33 branch has a new source argument to
- snd_soc_dai_set_pll().
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- - ALSA: ARM: add Raumfeld audio support
- Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Sound Scape driver
- - ALSA: sscape: coding style fixes
- Fix coding style errors in the driver.
- Also, add missing argument for CMD_XXX_MIDI_VOL command.
- - ALSA: sscape - Remove invalid __devinitdata to module parameters
- Module parameters shouldn't be marked as __devinitdata since they can be
- referred via sysfs even after probing.
- - ALSA: sscape: force AD1848 codec mode on old Soundscape
- Old Soundscape cards (pre PnP) work only with AD1848 codecs.
- If the CS4231 codec is installed it must be used in AD1848
- compatible mode.
- Also, add gameport support and remove an unused mpu field.
- - ALSA: sscape: remove MIDI instances counting with limit ULONG_MAX
- There is no sense to limit open MIDI connections with limit
- as high as ULONG_MAX.
- Also, convert more messages to use the snd_printk.
- Correct few old and misleading comments as well.
- - ALSA: sscape: convert to firmware loader framework
- The conversion solves the problem that firmware size was set to 64KB
- while non PnP cards have 128KB firmware files.
- An additional firmware initialization code has been moved from the OSS
- driver.
- - ALSA: sscape: add supoort for SPEA Media FX/Reveal SC-600
- Move code from the OSS sscape driver in order to support old Soundscape OEM models.
SuperH DAC audio driver
- - ALSA: sh: add SuperH DAC audio driver for ALSA V4
- This is a port of the sound/oss/sh_dac_audio.c driver.
- The driver uses an on-chip 8-bit D/A converter, which has a speaker connected
- to one of its channels, found in several ancient HP machines.
- For interrupts it uses a high-resolution timer (hrtimer).
- Tested on SH7709 based hp6xx (HP Jornada 680/690 and HP Palmtop 620lx/660lx).
- Also, since OSS Emulation works, the old OSS sound/oss/sh_dac_audio.c driver
- would be obsolete soon, and it could be removed.
- Acked-by: Paul Mundt <lethal@linux-sh.org>
TEA575x tuner
- - ALSA: tea575x-tuner: fix mute
- Fix mute state reporting in tea575x-tuner.
- This fixes mute function in kradio on SF64-PCR radio card.
USB
- - sound: add Edirol UA-101 support
- Add experimental support for the Edirol UA-101 audio/MIDI interface.
USB USX2Y
- - usb: fix compilation issues against latest alsa-kernel tree
- - Fix a missing patch chunk in usx2yhwdeppcm.patch
- - Refresh vm_ops related patches
- The patches got broken due to the upstream changes of vm_ops to the
- const pointer. Refreshed now.
- - ALSA: snd-usb-us122l: add product IDs of US-122MKII and US-144MKII
- I added the product IDs of the new revisions of the devices, so owners
- can test whether this suffices to make them work. Patched against ALSA
- snapshot 20091207.
- - sound: usxxx: cleanup chip field
- The chip field is no longer needed. Move those of its fields that are
- actually used to the device structure itself.
- - sound: usb: make the USB MIDI module more independent
- Remove the dependecy from the USB MIDI code on the snd_usb_audio
- structure. This allows using the USB MIDI module from another driver
- without having to pretend to be the generic USB audio driver.
- - ALSA: snd-usb-us122l: corrent error number for not probing US-144 on ehci-hcd
- snd-usb-us122l: corrent error number for not probing US-144 on ehci-hcd
- This is the correct error number for telling the USB system that this
- driver is not for the device.
- - ALSA: snd-usb-us122l: add support for US-144
- Adds support for US-144 when attached on USB1.1.
- Unlike the US-122L it uses both USB interfaces 0 and 1.
- - const: mark struct vm_struct_operations
- * mark struct vm_area_struct::vm_ops as const
- * mark vm_ops in AGP code
- But leave TTM code alone, something is fishy there with global vm_ops
- being used.
USB caiaq
- - ALSA: snd-usb-caiaq: Bump version number to 1.3.20
- Acked-by: Daniel Mack <daniel@caiaq.de>
- - ALSA: snd-usb-caiaq: Lock on stream start/unpause
- Fix a bug which can result in white noise from the driver after stream
- start or unpause.
- Acked-by: Daniel Mack <daniel@caiaq.de>
- - ALSA: snd-usb-caiaq: Missing lock around use of buffer positions
- Fix a race which causes snd_pcm_update_hw_ptr_pos() to report a bug.
- Acked-by: Daniel Mack <daniel@caiaq.de>
USB generic driver
- - usb: fix compilation issues against latest alsa-kernel tree
- - Add hweight16() wrapper for usb/usbmidi.c
- - sound: add Edirol UA-101 support
- Add experimental support for the Edirol UA-101 audio/MIDI interface.
- - ALSA: usb - Fix mixer map for Hercules Gamesurround Muse Pocket LT
- Muse Pocket use brocken mixer names, so alsamixer and PA can't use it correctly
- This patch add quirk to overwirte default mixers.
- - ALSA: sound: usbmidi: Use hweight16
- Use hweight16 instead of Brian Kernighan's/Peter Wegner's method
- - sound: usb-audio: add Roland UA-1G support
- Add support for the Roland UA-1G audio interface.
- - ALSA: usb - Quirk to disable master volume control in PCM2702
- Disable the master volume control in the PCM2702 chipset.
- The datasheet documents two independent channel volume controls, one
- master mute control and one master volume control. All controls are
- fully functional except for the master volume control, which returns
- USB stalls on all GET requests.
- - sound: usb: make the USB MIDI module more independent
- Remove the dependecy from the USB MIDI code on the snd_usb_audio
- structure. This allows using the USB MIDI module from another driver
- without having to pretend to be the generic USB audio driver.
- - ALSA: usb-audio: fix combine_word problem
- Fix combine_word problem where first octet is not
- read properly. The only affected place seems to be the
- INPUT_TERMINAL type. Before now, sound controls can be created
- with the output terminal's name which is a fallback mechanism
- used only for unknown input terminal types. For example,
- Line can wrongly appear as Speaker. After the change it
- should appear as Line.
- The side effect of this change can be that users
- can expect the wrong control name in their scripts or
- programs while now we return the correct one.
- Probably, these defines should use get_unaligned_le16 and
- friends.
- Cc: <stable@kernel.org>
- - sound: usb-audio: allow switching altsetting on Roland USB MIDI devices
- Add a mixer control to select between the two altsettings on Roland USB
- MIDI devices where the input endpoint is either bulk or interrupt.
- - ALSA: usb - Use strlcat() correctly
- Don't pass the advanced position to strlcat() but just gives the buffer
- head position so that the max size limit can be checked correctly.
- Introduced a new helper function to standaralize strlcat() calls.
- - ALSA: Re-export snd_pcm_format_name() function
- Re-export snd_pcm_format_name() function to be used outside the PCM core.
- As a first example, usbaudio is changed to use it now again.
Utils
- - Add a workaround for bitrev8() in i2c/cs8427.c
- - Grammatical corrections in INSTALL and utils/setup-alsa-kernel script
VIA82xx driver
- - sound: via82xx: deactivate DXS controls of inactive streams
- Activate the DXS volume controls only when the corresponding stream is
- being used. This makes the behaviour consistent with the other drivers
- that have per-stream volume controls.
- - sound: via82xx: move DXS volume controls to PCM interface
- The "VIA DXS" controls are actually volume controls that apply to the
- four PCM substreams, so we better indicate this connection by moving the
- controls to the PCM interface.
- Commit b452e08e73c0e3dbb0be82130217be4b7084299e in 2.6.30 broke the
- restoring of these volumes by "alsactl restore" that most distributions
- use; the renaming in this patch cures that regression by preventing
- alsactl from applying the old, wrong volume levels to the new controls.
- http://bugzilla.kernel.org/show_bug.cgi?id=14151
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=532613
- Cc: <stable@kernel.org>
WSS library
- - ALSA: opti93x: move controls definitions to opti93x driver
- Move OPTi93x controls definitions to the opti93x driver
- from the common wss-lib library module. These controls
- are used only by the opti93x driver.
- Also, fix capture source names. They are the same as
- opl3sa2 names.
- - ALSA: cs4236: update control names
- Update control names to be more closer to their meaning.
- Change the "Mono" name to the "Beep" as this line is usually
- used to forward the PC beeper signal to sound card's output.
- Update names for both cs423x and wss.
- Clean up cs4235 controls according to the cs4235 doc. Rename
- some of the cs4235 controls to be consistent with the cs4236's
- ones.
- Also, delete one misnamed cs4231 register define.
- - ALSA: cs4236: detect chip in one pass
- The cs4236 was two step detection with call to the snd_wss_free()
- between two steps. The snd_wss_free() did not free a sound device
- created in the snd_wss_create(). This caused an OOPS during module
- removal as the same sound device was released twice. The same OOPS
- happened if the cs4236 module loading failed.
- Fix this by adapting the snd_cs4236_create() to correctly work with
- chips less capable then cs4236. The snd_cs4236_create() behaves the
- same as the snd_wss_create() if the chip is less capable than the cs4236.
- - ALSA: wss: reuse CS4231 controls for AD1848
- The C4231 control set is a superset of the AD1848 control
- set so reuse the CS4231 controls definitions for the AD1848.
- - ALSA: wss: convert CS4231 mixer to dB scale
- Convert CS4231 mixer to dB scale after AD1848 mixer.
- Also, add missing microphone boost control for the AD1848
- and correct wrong bits for loopback volume on the AD1848.
alsa-lib
Core
- - Release v1.0.22
- - configure.in: fix --without-softfloat
- Using --without-softfloat or --with-softfloat=no results in using
- softfloat. This patch fixes the problem.
- - Define _GNU_SOURCE so that <fcntl.h> gives O_CLOEXEC
- - Open device nodes with close-on-exec flag
- - configure.in: Add m4 check for new AM_SILENT_RULES
- Kbuild like output for automake (>=1.11). It's no hard dependency as it needs
- the newest automake, but enable it by default if it is available. To turn it off
- you can either use --disable-silent-rules at configure time or make V=0 at
- compile time.
- - cvscompile: Remove in favour of gitcompile.
- Alsa-lib is no longer hosted in cvs but in git and the only difference between
- both helper scripts is the name of the NO_MAKE env VAR check.
- - Release v1.0.21a
Control API
- - Remove redefinition of _GNU_SOURCE and __USE_GNU
- Now _GNU_SOURCE is already defined globally in configure.in.
- - Remove old commented-out FD_CLOEXEC code
- - namehint: list card independent devices only once
- Card-independent devices such as "null" or "pulse" should only be
- added once, not once for each card.
- - namehint: Allow snd_device_name_hint to search for CTL devices.
- - namehint: add missing list->card initialization
- list->card is wrongly assumed to be initialized, but the previous
- initialization is within a conditional that is false when only
- card-independent devices are found. (This is the case when searching
- for mixers on my system; the end result is that the "pulse" mixer is
- listed three times.)
- - Fix corruption after snd_device_name_hint()
- snd_device_name_hint() corrupts the config name space after its call.
- This results in the error from the suceeding calls of snd_pcm_open()
- after snd_device_name_hint().
- The bug is in try_config() in namehint.c; it calls snd_config_delete(res)
- but res can be two different objects in the function. One is the object
- obtained via snd_config_search_definition(), and another is the one from
- snd_config_search_alias_hooks(). The former is the expanded objects,
- thus it should be freed. But, the latter is a reference, and must not be
- freed.
- This patch adds the check to free or not.
- Reported-by: John Lindgren <john.lindgren@tds.net>
- - hcontrol: fix compare_default function to handle also id.device and id.subdevice
- In case when kcontrol differs only by device or subdevice numbers, the
- find function can give wrong results.
- - control: Remove unused variable.
HWDEP API
- - Remove old commented-out FD_CLOEXEC code
Mixer API
- - mixer: fix enum check
- The recent CHECK_ENUM fix uncovered a bug in snd_mixer_selem_is_enumerated()
- which would now return -EINVAL for any non-enum control, which would be
- interpreted as 'true' by callers like amixer or alsamixer.
- - simple_none.c uses HAVE_SOFT_FLOAT it has to include config.h
- for this to work properly.
- - Fix CHECK_ENUM() in simple.c
- simple.c: In function ‘snd_mixer_selem_is_enumerated’:
- simple.c:881: warning: suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’
- - mixer: Add Speaker and Beep names to the weight list
- Added strings "Speaker" and "Beep" to the weight list so that the entries
- appear in more appropriate positions.
PCM API
- - Update pcm doc strings
- This is information I needed and is based on my understanding of information
- from Takashi Iwai.
- - Remove old commented-out FD_CLOEXEC code
- - pcm_rate_linear: Annotate unused function parameter to avoid compiler warnings.
- - dmix - Fix snd_pcm_info()
- Call the slave snd_pcm_info() as long as possible in the direct plugins
- (i.e. when the PCM device could be opened with O_APPEND mode).
- This allows dmix/dsnoop as a salve for PCM hook controls.
- - pcm_hw: Always use delay ioctl in snd_pcm_delay()
- As the result of snd_pcm_delay() is affected not only by hw_ptr
- and appl_ptr, but also by 'runtime->delay' property,
- either SNDRV_PCM_IOCTL_DELAY or SNDRV_PCM_IOCTL_STATUS ioctl
- must be used to get the correct result.
- Previously 'runtime->delay' was ignored in case 'hw->sync_ptr'
- was used.
- - PCM - Change the hw_params determination order
- In snd_pcm_hw_params_choose(), set the buffer size before the period
- size and time as default. This will give more useful configuration for
- most of apps, i.e. larger buffer size.
- For apps that require the old behavior, now the function checks the
- environment variable $LIBASOUND_COMPAT. If this variable is set to
- non-empty, the hw_params is determined in the old way, first period
- then buffer sizes.
RawMidi API
- - Remove old commented-out FD_CLOEXEC code
Sequencer API
- - Remove old commented-out FD_CLOEXEC code
Timer API
- - Remove redefinition of _GNU_SOURCE and __USE_GNU
- Now _GNU_SOURCE is already defined globally in configure.in.
- - Remove old commented-out FD_CLOEXEC code
- - Defined symbols exposing the hrtimer to applications.
ALSA Lisp
- - alisp: Comment out an unused function to avoid compiler warnings.
- The function should be useful later so keep it in place and just comment it out
- until it is actually used.
Configuration
- - Change dmix.conf to accept user configuration from defaults.dmix.<driver_id>.xxx
- An attempt to fix problem described in reverted patch "Fix driver conf
- parsing in snd_config_hook_load_for_all_cards()".
- - Revert "Fix driver conf parsing in snd_config_hook_load_for_all_cards()"
- This reverts commit 96da0c842d14b40ce8e37726b259229634b3aa21.
- This way of fix brokes card-specific configuration loading.
- See http://bugzilla.redhat.com bug#521988 for details.
- Appropriate way to handle this problem is to fix the dmix configuration file.
Dynamic Loader helpers
- - Remove redefinition of _GNU_SOURCE and __USE_GNU
- Now _GNU_SOURCE is already defined globally in configure.in.
- - Cache libasound.so access in snd_dlopen
- Speed up repeated calls to snd_dlopen by caching the path to
- libasound.so; this reduces the instructions executed by
- snd_device_name_hint by 40 percent.
Kernel Headers
- - Defined symbols exposing the hrtimer to applications.
alsa-utils
Core
- - Release v1.0.22
ALSA Control (alsactl)
- - alsactl: fix error path code in init_parse.c
- If initialization file (-i option) does not exists, the free_space()
- function was called with NULL pointer.
- - alsactl: init - default - initialize also "Digital Input Source"
- Set "Digital Input Source" to "Digital Mic 1" or "Mic" (fallback).
- - alsactl init: Add CTL{do_search} and CTL{do_count} parsers
- To increase configuration readability, add CTL{do_search} and CTL{do_count}
- actions. The old PROGRAM=="__ctl_search" notion is also allowed.
- Add CTL{write} to XML documentation.
- - alsactl init: use empty GOTOs in init/default file to increase readability
- - alsactl: introduce CTL{write} to match directly written CTL values
- - alsactl - Initialize Speaker volume to 0dB when Master is present
- Initialize Speaker volume to 0dB as well as Headphone when Master
- is present. Also initialize Headphone,1 for machines with dual
- headphones.
- - alsactl init: Fix typo "(" -> "{" in Headphone default rule
- Reported-by: Philipp Jocham <philipp.jocham@gmx.net>
Speaker Test
- - speaker-test: not all sample formats are supported - show only supported ones
- Also, check if given format is supported.
- - speaker-test: add -d (--debug) option to show PCM parameters
aplay/arecord
- - arecord: fix wrong chunk_size initialization when verbose and mmap flags are set
- - aplay - Show available formats
- Report available sample formats in aplay/arecord when currently selected
- one doesn't work.
alsa-tools
Core
- - Release v1.0.22
Envy24 Control
- - envy24control: Changing the Multi Track Peak control from MIXER to PCM type
- * The "Multi Track Peak" control is now of PCM type, to avoid
- confusing users in other alsa mixers.
alsa-plugins
Core
- - Release v1.0.22
A52 Output plugin
- - a52 - set channel layout with recent libavcodec
- As of SVN r18631 (2009-04-20) A52 encoder of libavcodec outputs a
- warning at run-time if channel layout is not specified.
- Fix that by setting the channel layout in a52_prepare() when building
- against libavcodec revision that supports this.
- - a52 - fix 5.1 channel order with recent libavcodec
- As of SVN r18540 libavcodec expects 5.1 channel audio with SMPTE channel
- order. Fix ALSA a52 plugin to use that order when built against such a
- libavcodec. Minor version of libavcodec was raised on the same day (Apr
- 17th 2009), so use that for the check.
Automatic upmix / downmix plugins
- - upmix - Add 7.1 support
alsa-python
Core
- - Release v1.0.22
pyalsa.alsahcontrol module
- - hcontrol: fix a typo
- - hcontrol: allow constructing Elem with numid
- snd_hctl_find_elem has the (undocumented) requirement that the ID must
- have all fields set. Copy the necessary workaround from amixer.
- - hcontrol: add poll_fds property
- The existing register_poll function works with Python's select.poll
- object, but not with the main loop of GUI toolkits that use their own
- event source implementation. Therefore, add a property to get the raw
- file handles.
- - hcontrol: fix memory leak
- The pfd array was never freed. In this function, we can just replace
- malloc with alloca.
- - hcontrol: fix variable type
- The last parameter of PyString_AsStringAndSize is Py_ssize_t, not int.
- This shuts up a compiler warning.