summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-04-18ALSA: add DSD formatsDaniel Mack4-1/+15
This patch adds two formats for Direct Stream Digital (DSD), a pulse-density encoding format which is described here: https://en.wikipedia.org/wiki/Direct_Stream_Digital DSD operates on 2.8, 5.6 or 11.2MHz sample rates and as a 1-bit stream. The two new types added by this patch describe streams that are capable of handling DSD samples in DOP format as 8-bit or in 16-bit (or at a x8 or x16 data rate, respectively). DSD itself specifies samples in *bit*, while DOP and ALSA handle them as *bytes*. Hence, a factor of 8 or 16 has to be applied for the sample rare configuration, according to the following table: configured hardware 176.4KHz 352.8kHz 705.6KHz <---- sample rate 8-bit 2.8MHz 5.6MHz 16-bit 2.8Mhz 5.6MHz 11.2MHz `-----------------------------' actual DSD sample rates Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18ALSA: hda - Disable the sanity check in snd_hda_add_pincfg()Takashi Iwai1-0/+6
When pin default configs are overridden via patch option, these are evaluated before fixups are applied. Since some fixups change the whole codec trees and/or add pins dynamically, this sanity check might not pass when pins aren't present at the time the function is called. We may reorder the execution, but an easier fix is simply to disable this sanity check. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18ALSA: hda - fix error return code in patch_alc662()Wei Yongjun1-1/+2
Fix to return a negative error code from the error handling case instead of 0, as returned elsewhere in this function. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-17ALSA: hda - Don't call vmaster hook when bus->shutdown is setTakashi Iwai1-0/+5
The flag bus->shutdown implies that the control elements might have been already destroyed. When a codec is resumed at this state and tries to call vmaster hook (e.g. in snd_hda_gen_init()), it would refer to a non-existing object, resulting in Oops in the end. This patch just adds a check of the flag in the caller side for avoiding such a crash. Though, the best would be to clear hook->sw_kctl by the destructor of the corresponding ctl element, but vmaster uses its own private_free, it can't be done easily. So let it be for a while. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-17ALSA: hda - fixup D3 pin and right channel mute on Haswell HDMI audioDavid Henningsson1-0/+38
When graphics initializes the HDMI chip, sometimes this leads to pins going into D3 and right channel being muted. If the audio driver finishes initialization before the graphic driver does, this situation becomes permanent. This is a workaround that checks for this situation and corrects it on playback prepare. It has been verified working on at least one machine. BugLink: https://bugs.launchpad.net/bugs/1167270 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-16ALSA: hda - Use the primary DAC for all aamix outputsTakashi Iwai1-4/+7
When setting up the aamix output paths, use the primary DAC instead of the individual DAC for each output as default. Otherwise multiple DACs will be turned on for a single aamix widget, which results in doubly or more volumes, because the duplicated signals will be sent through all these DACs for a single stream. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-16ALSA: hda - Fix aamix activation with loopback control on VIA codecsTakashi Iwai1-6/+16
When we have a loopback mixer control, this should manage the state whether the output paths include the aamix or not. But the current code blindly initializes the output paths with aamix = true, thus the aamix is enabled unless the loopback mixer control is changed. Also, update_aamix_paths() called by the loopback mixer control put callback invokes snd_hda_activate_path() with aamix = true even for disabling the mixing. This leaves the aamix path even though the loopback control is turned off. This patch fixes these issues: - Introduced aamix_default() helper to indicate whether with_aamix is true or false as default - Fix the argument in update_aamix_paths() for disabling loopback Reported-by: Lydia Wang <LydiaWang@viatech.com.cn> Cc: <stable@vger.kernel.org> [v3.9+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-16ALSA: hda - Add codec delay to the capture time stamp.Dylan Reid1-2/+5
For capture, the delay through the codec contributes to the time stamp of the sample recorded at the A to D. Rename the codec time stamp function appropriately. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-15Merge tag 'asoc-v3.10' of ↵Takashi Iwai664-4691/+8934
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v3.10 A bunch of changes here, the most interesting one subsystem wise being Morimoto-san's work to create snd_soc_component which doesn't do much for now but will be pretty important going forwards: - Add a new component object type which will form the basis of moving to a more generic handling of SoC and off-SoC components, contributed by Kuninori Morimoto. - A fairly large set of cleanups for the dmaengine integration from Lars-Peter Clausen, starting to move towards being able to have a generic driver based on the library. - Performance optimisations to DAPM from Ryo Tsutsui. - Support for mixer control sharing in DAPM from Stephen Warren. - Multiplatform ARM cleanups from Arnd Bergmann. - New CODEC drivers for AK5385 and TAS5086 from Daniel Mack.
2013-04-15ALSA: usb-audio: disable autopm for MIDI devicesClemens Ladisch1-11/+2
Commit 88a8516a2128 (ALSA: usbaudio: implement USB autosuspend) introduced autopm for all USB audio/MIDI devices. However, many MIDI devices, such as synthesizers, do not merely transmit MIDI messages but use their MIDI inputs to control other functions. With autopm, these devices would get powered down as soon as the last MIDI port device is closed on the host. Even some plain MIDI interfaces could get broken: they automatically send Active Sensing messages while powered up, but as soon as these messages cease, the receiving device would interpret this as an accidental disconnection. Commit f5f165418cab (ALSA: usb-audio: Fix missing autopm for MIDI input) introduced another regression: some devices (e.g. the Roland GAIA SH-01) are self-powered but do a reset whenever the USB interface's power state changes. To work around all this, just disable autopm for all USB MIDI devices. Reported-by: Laurens Holst Cc: <stable@vger.kernel.org> Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-15ALSA: hda - Fix headset mic support for Asus X101CHDavid Henningsson1-0/+56
With this patch, a TRRS headset mic cannot be successfully detected on the Asus X101CH, and we can also distinguish between headphone and headset automatically. Buglink: https://bugs.launchpad.net/bugs/1169138 Co-authored-by: Kailang <kailang@realtek.com> Tested-by: Luis Henriques <luis.henriques@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-15ALSA: hda - Implement headset jack functionality for some Dell hwDavid Henningsson1-0/+386
On some machines, there is a headset jack that can support both headphone, headsets (of both CTIA and OMTP type) and mic-in. On other machines, the headset jack supports headphone, headsets (both CTIA and OMTP), but not mic-in. This patch implements that functionality as different capture sources. Buglink: https://bugs.launchpad.net/bugs/1169143 Tested-by: David Chen <david.chen@canonical.com> Co-authored-by: Kailang <kailang@realtek.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-13ALSA: usb: Add quirk for 192KHz recording on E-Mu devicesCalvin Owens4-1/+4
When recording at 176.2KHz or 192Khz, the device adds a 32-bit length header to the capture packets, which obviously needs to be ignored for recording to work properly. Userspace expected: L0 L1 L2 R0 R1 R2 ...but actually got: R2 L0 L1 L2 R0 R1 Also, the last byte of the length header being interpreted as L0 of the first sample caused spikes every 0.5ms, resulting in a loud 16KHz tone (about the highest 'B' on a piano) being present throughout captures. Tested at all sample rates on an E-Mu 0404USB, and tested for regressions on a generic USB headset. Signed-off-by: Calvin Owens <jcalvinowens@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-12Merge remote-tracking branch 'asoc/topic/wm8994' into asoc-nextMark Brown3-16/+63
2013-04-12Merge remote-tracking branch 'asoc/topic/wm8960' into asoc-nextMark Brown1-0/+10
2013-04-12Merge remote-tracking branch 'asoc/topic/wm8903' into asoc-nextMark Brown1-0/+4
2013-04-12Merge remote-tracking branch 'asoc/topic/wm2000' into asoc-nextMark Brown2-1/+5
2013-04-12Merge remote-tracking branch 'asoc/topic/wm0010' into asoc-nextMark Brown1-3/+3
2013-04-12Merge remote-tracking branch 'asoc/topic/wm-hubs' into asoc-nextMark Brown1-3/+6
2013-04-12Merge remote-tracking branch 'asoc/topic/ux500' into asoc-nextMark Brown1-5/+0
2013-04-12Merge remote-tracking branch 'asoc/topic/tegra' into asoc-nextMark Brown11-223/+214
2013-04-12Merge remote-tracking branch 'asoc/topic/tas5086' into asoc-nextMark Brown5-0/+636
2013-04-12Merge remote-tracking branch 'asoc/topic/spear' into asoc-nextMark Brown1-2/+2
2013-04-12Merge remote-tracking branch 'asoc/topic/si476x' into asoc-nextMark Brown1-6/+41
2013-04-12Merge remote-tracking branch 'asoc/topic/samsung' into asoc-nextMark Brown16-21/+24
2013-04-12Merge remote-tracking branch 'asoc/topic/max98090' into asoc-nextMark Brown1-29/+16
2013-04-12Merge remote-tracking branch 'asoc/topic/max98088' into asoc-nextMark Brown1-6/+24
2013-04-12Merge remote-tracking branch 'asoc/topic/maintainers' into asoc-nextMark Brown1-4/+4
2013-04-12Merge remote-tracking branch 'asoc/topic/fsl' into asoc-nextMark Brown4-5/+4
2013-04-12Merge remote-tracking branch 'asoc/topic/fsi' into asoc-nextMark Brown1-2/+0
2013-04-12Merge remote-tracking branch 'asoc/topic/dma' into asoc-nextMark Brown51-655/+356
2013-04-12Merge remote-tracking branch 'asoc/topic/davinci' into asoc-nextMark Brown3-30/+69
2013-04-12Merge remote-tracking branch 'asoc/topic/dapm' into asoc-nextMark Brown1-148/+171
2013-04-12Merge remote-tracking branch 'asoc/topic/cs42l73' into asoc-nextMark Brown1-1/+5
2013-04-12Merge remote-tracking branch 'asoc/topic/cs4271' into asoc-nextMark Brown1-70/+96
2013-04-12Merge remote-tracking branch 'asoc/topic/core' into asoc-nextMark Brown6-26/+21
2013-04-12Merge remote-tracking branch 'asoc/topic/compress' into asoc-nextMark Brown3-1/+40
2013-04-12Merge remote-tracking branch 'asoc/topic/component' into asoc-nextMark Brown59-171/+522
2013-04-12Merge remote-tracking branch 'asoc/topic/atmel' into asoc-nextMark Brown1-0/+43
2013-04-12Merge remote-tracking branch 'asoc/topic/arizona' into asoc-nextMark Brown13-228/+738
2013-04-12Merge remote-tracking branch 'asoc/topic/ak5386' into asoc-nextMark Brown4-0/+177
2013-04-12Merge remote-tracking branch 'asoc/topic/ak4104' into asoc-nextMark Brown1-16/+39
2013-04-12Merge remote-tracking branch 'asoc/topic/adsp' into asoc-nextMark Brown2-9/+77
2013-04-12Merge remote-tracking branch 'asoc/topic/adau1373' into asoc-nextMark Brown1-1/+4
2013-04-12Merge remote-tracking branch 'asoc/fix/wm8903' into asoc-nextMark Brown1-0/+2
2013-04-12Merge remote-tracking branch 'asoc/fix/tegra' into asoc-nextMark Brown1-23/+1
2013-04-12Merge remote-tracking branch 'asoc/fix/samsung' into asoc-nextMark Brown1-5/+12
2013-04-12Merge remote-tracking branch 'asoc/fix/core' into asoc-nextMark Brown1-1/+1
2013-04-12Merge remote-tracking branch 'asoc/fix/compress' into asoc-nextMark Brown1-3/+11
2013-04-12ASoC: samsung: fix neo1973-wm8753 compilationHeiko Stübner1-1/+0
Commit b2ca78717cea (ARM: S3C24XX: make gta02.h local) already replaced the GTA02_GPIO_* constants in neo1973-wm8753.c but forgot to remove the inclusion of mach/gta02.h before moving the file out of mach/. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>