Changes v1.0.22 v1.0.22.1

From AlsaProject
Jump to: navigation, search

Contents

Changelog between 1.0.22 and 1.0.22.1 releases

alsa-driver

Sound Core

Release v1.0.22.1
Add gcd() wrapper
Fix pack target and improve newalsakernel target
fix typo in $(ALSAKERNELFILE) target
Change alsa-kernel/sound_core.c to ALSAKERNELFILE and add this dep to pack target
Remove whole alsa-kernel tree before creating of symlinks
introduce --with-alsakernel option for ./configure

ALSA Core

Don't define gcd() when already exists
Fix acore/Makefile for pcm_memory.patch
Handle __GFP_ZERO for older kernels
Add missing EXPORT_SYMBOL() for gcd wrapper
Add gcd() wrapper
Add skip_spaces() wrapper
ALSA: sound/core/pcm_timer.c: use lib/gcd.c

PCM Midlevel

Handle __GFP_ZERO for older kernels
ALSA: Fix indentation in pcm_native.c
ALSA: sound/core/pcm_timer.c: use lib/gcd.c
ALSA: refine rate selection in snd_interval_ratnum()
ALSA: pcm - Add missing inclusion of linux/vmalloc.h
ALSA: fix incorrect rounding direction in snd_interval_ratnum()
sound: pcm: add vmalloc buffer helper functions

/isa/Makefile

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

/soc/codecs/Makefile

ASoC: Add initial WM8955 CODEC driver
ASoC: Fix sorting of codecs Makefile entries
ASoC: Add DA7210 codec device support for ALSA
ASoC: Initial WM8904 CODEC driver

ALSA Version

ALSA: Release v1.0.22

ARM AACI PL041 driver

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

ARM PXA2XX driver

const: constify remaining dev_pm_ops

ATIIXP driver

ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2

CS46xx driver

ALSA: cs46xx - Fix suspend/resume with new DSP

CS5535 driver

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

Conexant Riptide driver

ALSA: test off by one in setsamplerate()

DT019x driver

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

Digigram VX core

sound: vx: use vmalloc buffer helper functions

Documentation

ALSA: Fix a typo in Procfile.txt
ALSA: jazz16: refine dma and irq selection
ALSA: hda - Add support for the new 27 inch IMacs

EMU8000 driver

ALSA: sbawe: fix memory detection

Edirol UA-101 driver

sound: ua101: use vmalloc buffer helper functions

HDA Codec driver

ALSA: hda: Refactor powerdown for Realtek HDA codecs
ALSA: hda: Add powerdown for Analog Devices HDA codecs
ALSA: hda - Use strict_strtoul()
ALSA: hda - Add sanity check for storing the user-defined pin configs
ALSA: hda - Fix click noises at suspend/free with Realtek codecs
ALSA: hda - Add snd_hda_shutup_pins() helper function
ALSA: hda - Add more hints for GPIO setup of IDT/STAC codecs
ALSA: hda - use snd_hda_jack_detect() again in patch_sigmatel.c
ALSA: hda - Disable tigger at pin-sensing on AD codecs
ALSA: hda - Add STAC9205 PCI_QUIRK for Dell Vostro 1700
ALSA: hda - Set mixer name after codec patch
ALSA: hda - Fix NID association for capture mixers
ALSA: hda - Add Bass Speaker switch for HP dv7
ALSA: hda - Add support for the new 27 inch IMacs
ALSA: hda - Fix NULL dereference with enable_beep=0 option
ALSA: HDA: add powersaving hook for Realtek
ALSA: HDA: remove useless mixers on Aspire 8930G
ALSA: HDA: simplify Aspire 8930G verb array
ALSA: hda: Set Front Mic to input vref 50% for Lenovo 3000 Y410
ALSA: hda/realtek: Remove extra .capsrc_nids initialization for ALC889_INTEL
ALSA: Use kzalloc for allocating only one thing
ALSA: hda - Fix quirk for Maxdata obook4-1
ALSA: hda - Fix NULL dereference in kctl-NID mapping in patch_realtek.c
ALSA: hda - Fix missing capsrc_nids for ALC88x
ALSA: hda - Make use of beep device found in Dell Vostro 1015n
ALSA: hda - Fixed internal mic initialization for Dell Vostro 1015
ALSA: hda - More ALC663 fixes and support of compatible chips

HDA Intel driver

ALSA: hda - HDMI sticky stream tag support
ALSA: hda - Add MSI blacklist
ALSA: hda - Check class to identify Nvidia controller chips

HDA generic driver

Fix hda_intel.patch
ALSA: hda - Use strict_strtoul()
ALSA: hda - Fix Oops at reloading beep devices
ALSA: hda - Don't cache beep controls
ALSA: hda - Fix NID association for capture mixers
tree-wide: convert open calls to remove spaces to skip_spaces() lib function

ISA

ALSA: jazz16: Add support for Media Vision Jazz16 chipset

MSND driver

ALSA: Use kzalloc for allocating only one thing

PDAudioCF driver

sound: pdaudiocf: use vmalloc buffer helper functions
sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
pcmcia: remove unused IRQ_FIRST_SHARED

SB drivers

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

SB8 driver

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

SGI O2 Audio

sound: sgio2audio: use vmalloc buffer helper functions
sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer

SoC Audio for Freecale i.MX1x i.MX2x CPUs

ASoC: add missing parameter to mx27vis_hifi_hw_free()

SoC Audio for the Samsung S3C24XX chips

ASoC: S3C64XX: Compress and generalize the CPU driver
ASoC: S3C64XX: Remove unnecessary header includes
const: constify remaining dev_pm_ops

SoC Codec AK4642

ASoC: ak4642: Add default return value in ak4642_modinit

SoC Codec CS4270

ASoC: Add regulator support to CS4270 codec driver

SoC Codec DA7210

ASoC: Fix build of DA7210
ASoC: Add DA7210 codec device support for ALSA

SoC Codec STAC9766

ASoC: Fix disable of SPDIF on STAC9766 codec

SoC Codec TLV320AIC3X

ASoC: PLL computation in TLV320AIC3x SoC driver

SoC Codec TLV320DAC33

ASoC: tlv320dac33: Add support for regulator framework

SoC Codec TPA6130A2

ASoC: tpa6130a2: Add support for regulator framework

SoC Codec TWL4030

mfd: Rename all twl4030_i2c*
mfd: Rename twl4030* driver files to enable re-use

SoC Codec WM8350

mfd: Mask and unmask wm8350 IRQs on request and free
mfd: Convert wm8350 IRQ handlers to irq_handler_t

SoC Codec WM8727

ASoC: Register the CODEC in WM8727

SoC Codec WM8900

ASoC: Correct code taking the size of a pointer

SoC Codec WM8904

ASoC: Host clock2 read up in WM8904 FLL configuration
ASoC: Set AIF word length for WM8904
ASoC: Initial WM8904 CODEC driver

SoC Codec WM8955

ASoC: Add initial WM8955 CODEC driver

SoC Codec WM8974

ASoC: wm8974: fix a wrong bit definition

SoC Codec WM9712

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

SoC DaVinci

ASoC: DaVinci: Update suspend/resume support for McASP driver

SoC Dynamic Audio Power Management

ASoC: Sort DAPM sequences by CODEC as well
ASoC: Push registers out of mixer power decision
ASoC: Display the power register in DAPM widget debugfs

SoC Layer

Fix soc/soc-core.patch
ASoC: Add initial WM8955 CODEC driver
ASoC: Add DA7210 codec device support for ALSA
ASoC: Initial WM8904 CODEC driver
ASoC: Export snd_soc_update_bits_unlocked()
const: constify remaining dev_pm_ops

SoC SH7760 AC97

ASoC: sh: FSI:: don't check platform_get_irq's return value against zero
ASoC: Add FSI-DA7210 sound support for SuperH
ASoC: sh_fsi: avoid using global variable

SoC Texas Instruments OMAP

mfd: twl: fix twl4030 rename for remaining driver, board files

USB generic driver

ALSA: usb-audio: use usbquirk.h for detection of HVR-950Q/850
ALSA: usb-audio: relax urb data align. restriction HVR-950Q and HVR-850 only
ALSA: usb-audio: make buffer pointer based on bytes instead on frames
ALSA: usb-audio - Added functionality for E-mu 0404USB/0202USB/TrackerPre
ALSA: usb-audio - Avoid Oops after disconnect
sound: usb-audio: use vmalloc buffer helper functions
sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer

Utils

Add gcd() wrapper

Detailed changelog between 1.0.22 and 1.0.22.1 releases

alsa-driver

Sound Core

- Release v1.0.22.1
- Add gcd() wrapper
- Fix pack target and improve newalsakernel target
- fix typo in $(ALSAKERNELFILE) target
- Change alsa-kernel/sound_core.c to ALSAKERNELFILE and add this dep to pack target
- Remove whole alsa-kernel tree before creating of symlinks
- introduce --with-alsakernel option for ./configure
This patch allows to choose the ALSA kernel tree. It adds support to
specify own path for the standard Linux 2.6 kernel tree.
The alsa-kmirror mode was untouched.
Also, missing isa/dt019x.c is added.

ALSA Core

- Don't define gcd() when already exists
Define compatible gcd() only when linux/gcd. doesn't exist.
CONFIG_GCD isn't defined for 2.6.31/32, so it can'be used reliablty
as the compile condition.
Reported-by: Ozan Çağlayan <ozan@pardus.org.tr>
- Fix acore/Makefile for pcm_memory.patch
- Handle __GFP_ZERO for older kernels
- Add missing EXPORT_SYMBOL() for gcd wrapper
- Add gcd() wrapper
- Add skip_spaces() wrapper
- ALSA: sound/core/pcm_timer.c: use lib/gcd.c
Make sound/core/pcm_timer.c use lib/gcd.c

PCM Midlevel

- Handle __GFP_ZERO for older kernels
- ALSA: Fix indentation in pcm_native.c
- ALSA: sound/core/pcm_timer.c: use lib/gcd.c
Make sound/core/pcm_timer.c use lib/gcd.c
- ALSA: refine rate selection in snd_interval_ratnum()
Refine the rate selection by choosing the rate
closer to the requested one in case of selecting
single frequency. Previously, the higher rate was
always selected.
Also, fix problem with the best_diff unsigned int
value wrapping (turning negative).
- ALSA: pcm - Add missing inclusion of linux/vmalloc.h
- ALSA: fix incorrect rounding direction in snd_interval_ratnum()
The direction of rounding is incorrect in the snd_interval_ratnum()
It was detected with following parameters (sb8 driver playing
8kHz stereo file):
- num is always 1000000
- requested frequency rate is from 7999 to 7999 (single frequency)
The first loop calculates div_down(num, freq->min) which is 125.
Thus, a frequency range's minimum value is 1000000 / 125 = 8000 Hz.
The second loop calculates div_up(num, freq->max) which is 126
The frequency range's maximum value is 1000000 / 126 = 7936 Hz.
The range maximum is lower than the range minimum so the function
fails due to empty result range.
- sound: pcm: add vmalloc buffer helper functions
There are now five copies of the code to allocate a PCM buffer using
vmalloc(). Add a sixth in the core so that the others can be removed.

/isa/Makefile

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

/soc/codecs/Makefile

- ASoC: Add initial WM8955 CODEC driver
The WM8955 is a low power, high quality stereo DAC with integrated
headphone and loudspeaker amplifiers, designed to reduce external
component requirements in portable digital audio applications. This is
an initial driver implementing support for the majority of the
functionality in the device, currently OUT3 is not supported.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Fix sorting of codecs Makefile entries
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Add DA7210 codec device support for ALSA
This original driver was created by Dialog Semiconductor,
and cleanuped by Kuninori Morimoto.
Special thanks to David Chen.
This became very simple ASoC codec driver,
and it is tested by EcoVec24 board.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Initial WM8904 CODEC driver
The WM8904 is a high performance ultra-low power stereo CODEC
optimised for portable audio applications, with features including
a class W amplifier, FLL with free running mode, Mobile ReTune and
ground referenced headphone and line outputs.
Support for some features, most particularly the digital microphone
interface, is not yet present.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

ALSA Version

- ALSA: Release v1.0.22

ARM AACI PL041 driver

- ALSA: sound/arm: Fix build failure caused by missing struct aaci definition
This patch fixes a build failure introduced by the patch
ALSA: AACI: factor common hw_params logic into aaci_pcm_hw_params [1]
by adding/moving the aaci struct to the right position.
The patch mentioned above merged common source parts into one function,
but unfortunately left out the aaci struct and consequently caused a
build failure e.g. for arm versatile_config [2]
References:
[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d3aee7996c30f928bbbbfd0994148e35d2e83084
[2] http://kisskb.ellerman.id.au/kisskb/buildresult/1893605/
Patch against Linus' tree.
- ALSA: AACI: switch to per-pcm locking
We can use finer-grained locking, which makes things easier when
we gain DMA support.
- ALSA: AACI: add double-rate support
- ALSA: AACI: factor common hw_params logic into aaci_pcm_hw_params
- ALSA: AACI: cleanup aaci_pcm_hw_params
Since the recording and playback paths are now the same, eliminate
the needless conditionals.
- ALSA: AACI: simplify codec rate information
There's no need for a specific rule; ALSA's generic AC'97 support
calculates the necessary rate constraint information itself, and
we can use this directly.
- ALSA: aaci - Fix a typo
Fixed a typo of the max buffer size specified for buffer allocation
changed in the commit d6797322231af98b9bb4afb175dd614cf511e5f7.

ARM PXA2XX driver

- const: constify remaining dev_pm_ops

ATIIXP driver

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

CS46xx driver

- ALSA: cs46xx - Fix suspend/resume with new DSP
Fix the basic suspend/resume of snd-cs46xx drivers with new DSP.
References:
https://bugzilla.redhat.com/show_bug.cgi?id=498287
https://bugzilla.redhat.com/show_bug.cgi?id=160751
Tested-by: Florian Zumbiehl <florz@florz.de>

CS5535 driver

- ALSA: cs5535audio: free OLPC quirks from reliance on MGEODE_LX cpu optimization
Previously, OLPC support for the mic extensions was only enabled in the
ALSA driver if CONFIG_OLPC and CONFIG_MGEODE_LX were both set. This was
because the old geode GPIO code was written in a manner that assumed
CONFIG_MGEODE_LX. With the new cs553x-gpio driver, this is no longer the
case; as such, we can drop the requirement on CONFIG_MGEODE_LX and instead
include a requirement on GPIOLIB.
We use the generic GPIO API rather than the cs553x-specific API.
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jordan Crouse <jordan@cosmicpenguin.net>
Cc: David Brownell <david-b@pacbell.net>

Conexant Riptide driver

- ALSA: test off by one in setsamplerate()
With `while (i++ < MAX_WRITE_RETRY)' i reaches MAX_WRITE_RETRY + 1 after the loop

DT019x driver

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

Digigram VX core

- sound: vx: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.

Documentation

- ALSA: Fix a typo in Procfile.txt
Fix a typo in Documentation/sound/alsa/Procfile.txt
Signed-off-by Masanari Iida <standby24x7@gmail.com>
- ALSA: jazz16: refine dma and irq selection
Narrow the dma and irq selection after the DOS driver.
Add ALSA configuration description as well.
- ALSA: hda - Add support for the new 27 inch IMacs
With the attached patch I am able to use the sound on a new IMac 27.
What works:
*) Internal speakers
*) Internal microphone
*) Headphone
I don't have an external mic or a SPDIF device to test the rest.

EMU8000 driver

- ALSA: sbawe: fix memory detection
Memory amount is increased before a successful write-read
sequence is done. Thus, 512 kB of onboard memory is detected
on memoryless cards like SB32.
Move the increasing of memory counter after successful read
is done.

Edirol UA-101 driver

- sound: ua101: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.

HDA Codec driver

- ALSA: hda: Refactor powerdown for Realtek HDA codecs
This patch converts the alc889 Aspire-specific powerdown to a generic
one. Like the previous effort, it currently only handles Front and PCM
but can be easily extended to cover other nids. The existing hook for
alc889 Aspire-specific remains enabled. Upon further testing, I've added
its use for ALC861_AUTO as well. Following patches will enable them for
other quirks.
Tested-by: Dr. David Alan Gilbert <linux@treblig.org>
- ALSA: hda: Add powerdown for Analog Devices HDA codecs
This patch ports powerdown fixes to AD198x. Currently we only turn off
Front and HP for suspend, but this is easily extended for additional
nids.
- ALSA: hda - Use strict_strtoul()
Rewrite the codes to use strict_strtoul() instead of simple_strtoul().
- ALSA: hda - Add sanity check for storing the user-defined pin configs
Check whether the given NID is a pin widget before storing the
user-defined pin configs.
- ALSA: hda - Fix click noises at suspend/free with Realtek codecs
Call snd_hda_shutup_pins() at suspend and free for avoiding click noises.
- ALSA: hda - Add snd_hda_shutup_pins() helper function
Add a common helper function for clearing pin controls before suspend.
Use the pincfg array instead of looking through all widget tree.
- ALSA: hda - Add more hints for GPIO setup of IDT/STAC codecs
gpio_led, gpio_led_polarity and gpio_mute are added now.
- ALSA: hda - use snd_hda_jack_detect() again in patch_sigmatel.c
Use snd_hda_jack_detect() again for jack-sensing.
The triggering problem can be worked around with codec->no_trigger_sense
flag now.
- ALSA: hda - Disable tigger at pin-sensing on AD codecs
Analog Device codecs seem to have problems with the triggering of
pin-sensing although their pincaps give the trigger requirements.
Some reported that constant CPU load on HP laptops with AD codecs.
For avoiding this regression, add a flag to codec struct to notify
explicitly that the codec doesn't suppot the trigger at pin-sensing.
Tested-by: Maciej Rutecki <maciej.rutecki@gmail.com>
- ALSA: hda - Add STAC9205 PCI_QUIRK for Dell Vostro 1700
- ALSA: hda - Set mixer name after codec patch
Postpone the mixer name setup after the codec patch since the codec
patch may change the codec name string in itself.
- ALSA: hda - Fix NID association for capture mixers
Fix the wrong implementation of NID <-> kctl mapping for capture mixers
introduced by the ocmmit 5b0cb1d850c26893b1468b3a519433a1b7a176be.
So far, the driver returns an error at probe.
- ALSA: hda - Add Bass Speaker switch for HP dv7
The bass speaker is controlled via GPIO5.
Tested-by: Wael Nasreddine <mla@nasreddine.com>
- ALSA: hda - Add support for the new 27 inch IMacs
With the attached patch I am able to use the sound on a new IMac 27.
What works:
*) Internal speakers
*) Internal microphone
*) Headphone
I don't have an external mic or a SPDIF device to test the rest.
- ALSA: hda - Fix NULL dereference with enable_beep=0 option
- ALSA: HDA: add powersaving hook for Realtek
The current Realtek code makes no specific provision for turning stuff
off. The codec chip is placed into low-power mode generically, but this
doesn't turn off any external hardware connected to it, in particular
external amplifiers.
This patch creates a hook function that is called by the codec
suspend/resume functions. It ought to disable any external hardware in a
device-specific way. I've implemented a generic ALC889 function that
sets the EAPD pin properly, and used it for the Acer Aspire 8930G which
can benefit from this feature.
On my laptop, this results in ~0.5W extra savings.
- ALSA: HDA: remove useless mixers on Aspire 8930G
This patch removes some extra mixers that do nothing on the Acer Aspire
8930G.
The CD mixer is useless because the SATA DVD/Blu-Ray drive has no analog
audio output, and the Side mixer is useless because we max out at 6ch
anyway.
- ALSA: HDA: simplify Aspire 8930G verb array
This patch just simplifies the 8930G verb array a bit. Just use the
common ALC889 EAPD verb array to make things more consistent. The file
is already huge enough already.
- ALSA: hda: Set Front Mic to input vref 50% for Lenovo 3000 Y410
BugLink: https://bugs.launchpad.net/bugs/479373
The OR has verified with hda-verb that the internal microphone needs
VREF50 set for audible capture.
- ALSA: hda/realtek: Remove extra .capsrc_nids initialization for ALC889_INTEL
- ALSA: Use kzalloc for allocating only one thing
Use kzalloc rather than kcalloc(1,...)
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
@@
- kcalloc(1,
+ kzalloc(
...)
// </smpl>
- ALSA: hda - Fix quirk for Maxdata obook4-1
Works fine with the auto-parser.
Reference: Novell bnc#564940
https://bugzilla.novell.com/show_bug.cgi?id=564940
- ALSA: hda - Fix NULL dereference in kctl-NID mapping in patch_realtek.c
capsrc_nids can be NULL, and adc_nids should be taken as fallback.
- ALSA: hda - Fix missing capsrc_nids for ALC88x
Some model quirks missed the corresponding capsrc_nids. This resulted in
non-working capture source selection.
Cc: <stable@kernel.org>
- ALSA: hda - Make use of beep device found in Dell Vostro 1015n
Conexant CX20583-10Z has digital beep device with volume control.
Making use of them.
- ALSA: hda - Fixed internal mic initialization for Dell Vostro 1015
Fixed initialization of internal mic and added internal mic boost control
Renamed analog mic boost control to ext mic boost contol.
Name pair analog/digital seems too confusing for a normal user.
- ALSA: hda - More ALC663 fixes and support of compatible chips
1. Add more ASUS NB model.
2. Fixed alc663_m51va_setup
M51VA has Digital Mic that NID is 0x12. The record source index is
0x9 for ALC663.
So, to modify the alc663_m51va_setup function to index 0x9
and add analog Mic aupport function alc663_mode1_setup.
3. Add ASUS mode7 and mode8 modules for ALC663

HDA Intel driver

- ALSA: hda - HDMI sticky stream tag support
When we run the following commands in turn (with
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0),
speaker-test -Dhw:0,3 -c2 -twav # HDMI
speaker-test -Dhw:0,0 -c2 -twav # Analog
The second command will produce sound in the analog lineout _as well as_
HDMI sink. The root cause is, device 0 "reuses" the same stream tag that
was used by device 3, and the "intelhdmi - sticky stream id" patch leaves
the HDMI codec in a functional state. So the HDMI codec happily accepts
the audio samples which reuse its stream tag.
The proposed solution is to remember the last device each azx_dev was
assigned to, and prefer to
1) reuse the azx_dev (and hence the stream tag) the HDMI codec last used
2) or assign a never-used azx_dev for HDMI
With this patch and the above two speaker-test commands,
HDMI codec will use stream tag 8 and Analog codec will use 5.
The stream tag used by HDMI codec won't be reused by others, as long
as we don't run out of the 4 playback azx_dev's. The legacy Analog
codec will continue to use stream tag 5 because its device id is 0
(this is a bit tricky).
- ALSA: hda - Add MSI blacklist
A machine with AMD CPU with Nvidia board doesn't work with MSI.
Reported-by: Robert J. King <peritus@gurunetwork.org>
- ALSA: hda - Check class to identify Nvidia controller chips
Instead of listing all individual PCI IDs, check the matching with
the PCI class together with the vendor id for Nvidia.
This simplifies the pci id entries.

HDA generic driver

- Fix hda_intel.patch
Separate msi_whte_list to patch more robustly.
- ALSA: hda - Use strict_strtoul()
Rewrite the codes to use strict_strtoul() instead of simple_strtoul().
- ALSA: hda - Fix Oops at reloading beep devices
The recent change for supporting dynamic beep device allocation caused
a problem resulting in Oops at reloading the driver. Also, it ignores
the error from input device registration.
This patch fixes the wrong check in snd_hda_detach_beep_device(), and
returns an error when the input device registration fails properly.
- ALSA: hda - Don't cache beep controls
The beep control verbs don't need to be cached for resume.
- ALSA: hda - Fix NID association for capture mixers
Fix the wrong implementation of NID <-> kctl mapping for capture mixers
introduced by the ocmmit 5b0cb1d850c26893b1468b3a519433a1b7a176be.
So far, the driver returns an error at probe.
- tree-wide: convert open calls to remove spaces to skip_spaces() lib function
Makes use of skip_spaces() defined in lib/string.c for removing leading
spaces from strings all over the tree.
It decreases lib.a code size by 47 bytes and reuses the function tree-wide:
text data bss dec hex filename
64688 584 592 65864 10148 (TOTALS-BEFORE)
64641 584 592 65817 10119 (TOTALS-AFTER)
Also, while at it, if we see (*str && isspace(*str)), we can be sure to
remove the first condition (*str) as the second one (isspace(*str)) also
evaluates to 0 whenever *str == 0, making it redundant. In other words,
"a char equals zero is never a space".
Julia Lawall tried the semantic patch (http://coccinelle.lip6.fr) below,
and found occurrences of this pattern on 3 more files:
drivers/leds/led-class.c
drivers/leds/ledtrig-timer.c
drivers/video/output.c
@@
expression str;
@@
( // ignore skip_spaces cases
while (*str && isspace(*str)) { \(str++;\|++str;\) }
|
- *str &&
isspace(*str)
)
Cc: Julia Lawall <julia@diku.dk>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Neil Brown <neilb@suse.de>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: David Howells <dhowells@redhat.com>
Cc: <linux-ext4@vger.kernel.org>
Cc: Samuel Ortiz <samuel@sortiz.org>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Takashi Iwai <tiwai@suse.de>

ISA

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

MSND driver

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

PDAudioCF driver

- sound: pdaudiocf: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.
- sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
When allocating the PCM buffer, use vmalloc_user() instead of vmalloc().
Otherwise, it would be possible for applications to play the previous
contents of the kernel memory to the speakers, or to read it directly if
the buffer is exported to userspace.
Cc: <stable@kernel.org>
- pcmcia: remove unused IRQ_FIRST_SHARED
Komuro pointed out that IRQ_FIRST_SHARED is not used at all in the
PCMCIA subsystem, so remove it. Also, remove two bogus assignments.
CC: Karsten Keil <keil@b1-systems.de>
CC: netdev@vger.kernel.org
CC: alsa-devel@alsa-project.org
CC: Komuro <komurojun-mbn@nifty.com>

SB drivers

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

SB8 driver

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

SGI O2 Audio

- sound: sgio2audio: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.
- sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
When allocating the PCM buffer, use vmalloc_user() instead of vmalloc().
Otherwise, it would be possible for applications to play the previous
contents of the kernel memory to the speakers, or to read it directly if
the buffer is exported to userspace.
Cc: <stable@kernel.org>

SoC Audio for Freecale i.MX1x i.MX2x CPUs

- ASoC: add missing parameter to mx27vis_hifi_hw_free()
Commit 2ccafed4 added an extra parameter to the DAI .set_pll() method, but
it missed this call in sound/soc/imx/mx27vis_wm8974.c.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Audio for the Samsung S3C24XX chips

- ASoC: S3C64XX: Compress and generalize the CPU driver
The driver can be 'generalized' a bit by not hardcoding '2'(the number of
I2Sv3 controllers that the driver can handle) at many places, instead we
define a macro for it. That makes it easier to increase number of controllers
by changing the parameter at just one place, this will be useful when there is
support for newer SoCs, which have the same controller, only more in number.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: S3C64XX: Remove unnecessary header includes
Removed redundant header includes which make no difference to compilation.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- const: constify remaining dev_pm_ops

SoC Codec AK4642

- ASoC: ak4642: Add default return value in ak4642_modinit
If ak4642 driver was compiled without I2C configs,
ak4642_modinit return value will become un-stable.
This patch modify this bug
Reported-by: Magnus Damm <damm@opensource.se>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec CS4270

- ASoC: Add regulator support to CS4270 codec driver
Acked-by: Timur Tabi <timur@freescale.com>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec DA7210

- ASoC: Fix build of DA7210
DAC_VOICE_EN was not defined - looks to have been overly enthusiastically
deleted from a previous revision of the patch, pull the value from v1.
- ASoC: Add DA7210 codec device support for ALSA
This original driver was created by Dialog Semiconductor,
and cleanuped by Kuninori Morimoto.
Special thanks to David Chen.
This became very simple ASoC codec driver,
and it is tested by EcoVec24 board.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec STAC9766

- ASoC: Fix disable of SPDIF on STAC9766 codec
Change code so that switching to playing music through the analog output
disables SPDIF out instead of disabling it when stream ends.
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com

SoC Codec TLV320AIC3X

- ASoC: PLL computation in TLV320AIC3x SoC driver
fix precision of PLL computation for TLV320AIC3x SoC driver,
test results are at http://pmeerw.net/clk
Acked-by: Vladimir Barinov <vova.barinov@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec TLV320DAC33

- ASoC: tlv320dac33: Add support for regulator framework
Take the regulator framework in use for managing the power sources.
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec TPA6130A2

- ASoC: tpa6130a2: Add support for regulator framework
Take the regulator framework in use for managing the power sources
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Eduardo Valentin <eduardo.valentin@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec TWL4030

- mfd: Rename all twl4030_i2c*
This patch renames function names like twl4030_i2c_write_u8,
twl4030_i2c_read_u8 to twl_i2c_write_u8, twl_i2c_read_u8
and also common variable in twl-core.c
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
- mfd: Rename twl4030* driver files to enable re-use
The upcoming TWL6030 is companion chip for OMAP4 like the current TWL4030
for OMAP3. The common modules like RTC, Regulator creates opportunity
to re-use the most of the code from twl4030.
This patch renames few common drivers twl4030* files to twl* to enable
the code re-use.
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>

SoC Codec WM8350

- mfd: Mask and unmask wm8350 IRQs on request and free
Bring the WM8350 IRQ API more in line with the generic IRQ API by
masking and unmasking interrupts as they are requested and freed.
This is mostly just a case of deleting the mask and unmask calls
from the individual drivers.
The RTC driver is changed to mask the periodic IRQ after requesting
it rather than only unmasking the alarm IRQ. If the periodic IRQ
fires in the period where it is reqested then there will be a
spurious notification but there should be no serious consequences
from this.
The CODEC drive is changed to explicitly disable headphone jack
detection prior to requesting the IRQs. This will avoid the IRQ
firing with no jack set up.
- mfd: Convert wm8350 IRQ handlers to irq_handler_t
This is done as simple code transformation, the semantics of the
IRQ API provided by the core are are still very different to those
of genirq (mainly with regard to masking).

SoC Codec WM8727

- ASoC: Register the CODEC in WM8727
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec WM8900

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

SoC Codec WM8904

- ASoC: Host clock2 read up in WM8904 FLL configuration
Avoids skipping over the read for disable cases.
- ASoC: Set AIF word length for WM8904
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Initial WM8904 CODEC driver
The WM8904 is a high performance ultra-low power stereo CODEC
optimised for portable audio applications, with features including
a class W amplifier, FLL with free running mode, Mobile ReTune and
ground referenced headphone and line outputs.
Support for some features, most particularly the digital microphone
interface, is not yet present.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Codec WM8955

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

SoC Codec WM8974

- ASoC: wm8974: fix a wrong bit definition
The wm8974 datasheet defines BUFIOEN as bit 2.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: stable@kernel.org

SoC Codec WM9712

- ASoC: Do not write to invalid registers on the wm9712.
This patch fixes a bug where "virtual" registers were being written to the ac97
bus. This was causing unrelated registers to become corrupted (headphone 0x04,
touchscreen 0x78, etc).
This patch duplicates protection that was included in the wm9713 driver.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: stable@kernel.org

SoC DaVinci

- ASoC: DaVinci: Update suspend/resume support for McASP driver
Add clock enable and disable calls to resume and suspend respectively.
Also add a member to the audio device data structure which tracks the clock
status.
Tested on DA850/OMAP-L138 EVM. For the purpose of testing, the patches[1] which
add suspend-to-RAM support to DA850/OMAP-L138 SoC were applied.
[1] http://linux.davincidsp.com/pipermail/davinci-linux-open-source/
2009-November/016958.html
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Dynamic Audio Power Management

- ASoC: Sort DAPM sequences by CODEC as well
In preparation for multiple device support.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Push registers out of mixer power decision
No need for the mixers to know about this, and it allows for virtual
controls.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Display the power register in DAPM widget debugfs
Make it a bit easier to tie DAPM widgets in with the register map
without referring to the source by including the register location
controlled by the widget.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Layer

- Fix soc/soc-core.patch
consitify patch caused conflicts.
- ASoC: Add initial WM8955 CODEC driver
The WM8955 is a low power, high quality stereo DAC with integrated
headphone and loudspeaker amplifiers, designed to reduce external
component requirements in portable digital audio applications. This is
an initial driver implementing support for the majority of the
functionality in the device, currently OUT3 is not supported.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Add DA7210 codec device support for ALSA
This original driver was created by Dialog Semiconductor,
and cleanuped by Kuninori Morimoto.
Special thanks to David Chen.
This became very simple ASoC codec driver,
and it is tested by EcoVec24 board.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Initial WM8904 CODEC driver
The WM8904 is a high performance ultra-low power stereo CODEC
optimised for portable audio applications, with features including
a class W amplifier, FLL with free running mode, Mobile ReTune and
ground referenced headphone and line outputs.
Support for some features, most particularly the digital microphone
interface, is not yet present.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Export snd_soc_update_bits_unlocked()
Allows custom controls to use it.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- const: constify remaining dev_pm_ops

SoC SH7760 AC97

- ASoC: sh: FSI:: don't check platform_get_irq's return value against zero
platform_get_irq returns -ENXIO on failure, so !irq was probably
always true. Better use (int)irq <= 0. Note that a return value of
zero is still handled as error even though this could mean irq0.
This is a followup to 305b3228f9ff4d59f49e6d34a7034d44ee8ce2f0 that
changed the return value of platform_get_irq from 0 to -ENXIO on error.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: Add FSI-DA7210 sound support for SuperH
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
- ASoC: sh_fsi: avoid using global variable
Current FSI driver use global variable to access device data.
But this style will be broken
if SuperH come with multiple FSI blocks in future.
To solve this problem, this patch use cpu_dai->private_data.
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>

SoC Texas Instruments OMAP

- mfd: twl: fix twl4030 rename for remaining driver, board files
Recent drivers/mfd/twl4030* renames to twl broke compile for
various boards as the series was missing a patch to change
the board-*.c files.
This patch renames include twl4030.h to include twl.h
and also renames twl4030_i2c_ routines.
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Reviewed-by: Felipe Balbi <felipe.balbi@nokia.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>

USB generic driver

- ALSA: usb-audio: use usbquirk.h for detection of HVR-950Q/850
Detect the HVR-950Q HVR-850 urb data alignment quirk using usbquirk.h
rather than using a case statement in snd_usb_audio_probe.
- ALSA: usb-audio: relax urb data align. restriction HVR-950Q and HVR-850 only
Addressing audio quality problem.
In sound/usb/usbaudio.c, for the Hauppage HVR-950Q and HVR-850 only, change
retire_capture_urb to allow transfers on audio sub-slot boundaries rather
than audio slots boundaries.
With these devices the left and right channel samples can be split between
two different urbs. Throwing away extra channel samples causes a sound
quality problem for stereo streams as the left and right channels are
swapped repeatedly, perhaps many times per second.
Urbs unaligned on sub-slot boundaries are still truncated to the next
lowest stride (audio slot) to retain synchronization on samples even
though left/right channel synchronization may be lost in this case.
Detect the quirk using a case statement in snd_usb_audio_probe.
BugLink: https://bugs.launchpad.net/ubuntu/+bug/495745
- ALSA: usb-audio: make buffer pointer based on bytes instead on frames
Since there are devices that do not align the size of their data packets
to frame boundaries, the driver needs to be able to keep track of
partial frames. This patch prepares for support for such devices by
changing the hwptr_done variable from a frame counter to a byte counter.
- ALSA: usb-audio - Added functionality for E-mu 0404USB/0202USB/TrackerPre
Added functionality:
1) Extension Units support (all XU settings now available at alsamixer,
kmix, etc):
- "AnalogueIn soft limiter" switch;
- "Sample rate" selector (values 0,1,2,3,4,5 corresponds to 44.1 48 ...
192 kHz);
- "DigitalIn CLK source" selector (internal/external) (**);
- "DigitalOut format SPDIF/AC3" switch (**);
(**)E-mu-0404usb only.
2) Automatic device sample rate adjustment depending on substream
samplerate for both capture and playback substream.
[minor coding-style fixes by tiwai]
- ALSA: usb-audio - Avoid Oops after disconnect
As the release of substreams may be done asynchronously from the
disconnection, close callback needs to check the shutdown flag before
actually accessing the usb interface.
Reference: Novell bnc#505027
http://bugzilla.novell.com/show_bug.cgi?id=565027
- sound: usb-audio: use vmalloc buffer helper functions
Remove this duplicate of snd_pcm_alloc_vmalloc_buffer and use the
equivalent core functions instead.
- sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
When allocating the PCM buffer, use vmalloc_user() instead of vmalloc().
Otherwise, it would be possible for applications to play the previous
contents of the kernel memory to the speakers, or to read it directly if
the buffer is exported to userspace.
Cc: <stable@kernel.org>

Utils

- Add gcd() wrapper
Custom Search
Personal tools
Namespaces

Variants
Actions
Navigation
wiki
Toolbox