Commit Graph

13099 Commits

Author SHA1 Message Date
Liam Girdwood
4123128ee4 ASoC: dapm: Make sure all dapm contexts are updated
Make sure we set the bias level for all DAPM contexts when
changing level.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-06 19:05:07 +01:00
Liam Girdwood
5cb9b74822 ASoC: pcm: Clean up logging in soc_new_pcm()
Use dev_ style logging throughout soc_new_pcm()

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-06 18:59:15 +01:00
Liam Girdwood
01005a729a ASoC: dapm: Fix locking during codec shutdown
Codec shutdown performs a DAPM power sequence that might cause conflicts
and/or race conditions if another stream power event is running simultaneously.
Use card's dapm mutex to protect any potential race condition between them.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-07-06 18:58:46 +01:00
Takashi Iwai
9e9b594661 ALSA: usb-audio: Fix the first PCM interface assignment
In the new PCM streaming logic, the interface number is assigned to
usb stream instance (subs->interface) after the format and rate setups
are succeeded, but some codes are still passing subs->interface as the
reference to helper functions.  This leads to initializing with an
invalid iface number (-1).

This patch replaces the wrong references with the ones from the target
fmt correctly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-06 08:11:43 +02:00
Mark Brown
bcbf4a69ee ASoC: wm1250-ev1: Flag all supported rates in the DAI
Not previously noticed due to normal usage being with CODEC<->CODEC links.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-05 20:49:37 +01:00
Mark Brown
9498822d75 ASoC: wm5102: Allow routing through the ASRCs
This enables common telephony use cases.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-05 17:44:19 +01:00
Mark Brown
c013b27a17 ASoC: arizona: Enable ASYNCCLK domain for audio interfaces
If an audio interface is configured to use ASYNCCLK then update the
asynchronous sample rate rather than one of our primary sample rates.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-05 17:44:17 +01:00
Fabio Estevam
42810d1622 ASoC: imx-mc13783: Add audmux settings for mx27pdk
mx27pdk board also has a mc13783 codec.

Add support for it and do a run-time machine type check to perform the correct
audiomux settings.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-05 13:48:25 +01:00
Hui Wang
ef3207c503 ASoC: fsl: remove unneeded AUDMUX register setting from imx-sgtl5000
If we don't set IMX_AUDMUX_V2_PTCR_TCLKDIR in the AUDMUX PTCR
register (means Tx clock pin is input), we don't need to set
IMX_AUDMUX_V2_PTCR_TCSEL as well. Since both i.MX35, i.MX51 and
i.MX6 datasheet says "When Tx clock pin set as an input, the TCSEL
settings are ignored".

Signed-off-by: Hui Wang <jason77.wang@gmail.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-05 13:47:11 +01:00
Mark Brown
1464189f8c ALSA: pcm: Make constraints lists const
They aren't modified by the core so the drivers can declare them const.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-05 14:19:39 +02:00
David Henningsson
a7a0a64dab ALSA: hda - Always call standard unsolicited event for Realtek codecs
With the model parsers out of the way, we have no custom unsol
events to worry about, we can therefore simplify the code.

In addition, this fixes a bug on the ASUS TC710, which has only
a headphone jack and a mic jack, but no internal mic or speakers.
Therefore the unsol_event pointer was not set, and as a result,
the jack kcontrols were not correctly updated.

BugLink: https://bugs.launchpad.net/bugs/1021192
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-05 12:22:47 +02:00
Mark Brown
5001765f99 ASoC: arizona: Be more forgiving in BCLK selection
Allow any BCLK which can be divided down to generate LRCLK, not just the
lowest possible BCLK to clock out the samples.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 19:15:46 +01:00
Mark Brown
5b2eec3f98 ASoC: arizona: Implement AIF clock configuration
Allow the user to select which of the system clocks each AIF is referenced
to and constran the DAI to the set of frequencies which can be generated
from that clock.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 19:15:45 +01:00
Mark Brown
949e6bc75f ASoC: arizona: Rename current rates tables to bclk_rates
They're the rates for the BCLK, not for the sample rate, so rename so that
we don't confuse ourselves.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 19:15:44 +01:00
Mark Brown
1520ffd218 ASoC: dwc: Staticise non-exported i2s_start()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 19:15:43 +01:00
Vipin Kumar
e584f9b4c2 ASoC: SPEAr spdif_out: Add spdif out support
This patch implements the spdif out driver for ST peripheral. This
peripheral implements IEC60958 standard

Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 12:34:28 +01:00
Rajeev Kumar
3be58dbb92 ASoC: STA529: Add support for STA529 Audio Codec
The STA529 is a digital stereo class-D audio amplifier. It includes an
audio DSP, an ST proprietary high-efficiency class-D driver and CMOS
power output stage. It is intended for high-efficiency
digital-to-power-audio conversion for portable applications.

Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 12:34:27 +01:00
Jiri Prchal
c9e8e8d254 ASoC: tlv320aic3x: extending registers cache
Adds missing register default values to cache.

Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 12:34:27 +01:00
Jiri Prchal
784a897e23 ASoC: tlv320aic3x: add missing registers and bits
Adds register and bit shift definitions in header file.
Changes are for TLV320AIC310x based on data sheet.

Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-04 12:34:26 +01:00
Takashi Iwai
f68d891d85 Merge branch 'topic/hda-beep' into topic/hda 2012-07-04 09:12:50 +02:00
Mark Brown
2974d6b1aa ASoC: wm8994: Don't suspend accessory detection
Leave it up to the machine driver to disable accessory detection if
desired, the common pattern is to have accessory detection be a wake
source.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-03 20:11:16 +01:00
Mark Brown
38cbf9598f ASoC: core: Try to use regmap if the driver doesn't set up any I/O
Since most new drivers are expected to use regmap and since frequently the
only thing we need to do in the CODEC probe function is configure the I/O
try to initialise the register I/O using regmap if the driver hasn't done
so after probe().

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-07-03 20:11:00 +01:00
Mark Brown
081413f206 ASoC: wm8962: Log AIF configuration requested by hw_params()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-03 20:10:51 +01:00
Benoît Thébaudeau
32fee7afe7 ASoC: dapm: Fix dapm_set_path_status() connect
dapm_set_path_status() sets connect incorrectly in the case max > 1 with invert.
In that case, the raw disconnect value should be max, which corresponds to the
userspace value 0.

This use case currently does not appear upstream, but it could break
SOC_DAPM_SINGLE() or SOC_DAPM_SINGLE_TLV() elsewhere or in the future.

This patch completes commit 3a9abe8.

Cc: Liam Girdwood <lrg@ti.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: <alsa-devel@alsa-project.org>
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-03 20:08:29 +01:00
Laxman Dewangan
df79f55df3 ASoC: tegra: use dmaengine based dma driver
Use the dmaengine based Tegra APB DMA driver for
data transfer between SPI fifo and memory in
place of legacy Tegra APB DMA.

Because generic soc-dmaengine-pcm uses the DMAs API
based on dmaengine, using the exported APIs provided
by this generic driver.

The new driver is selected if legacy driver is not
selected and new dma driver is enabled through config
file.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-03 20:07:24 +01:00
Benoît Thébaudeau
da602ab8a1 ASoC: dapm: Remove incomplete stereo code
Stereo is not yet supported by dapm widgets, so remove stereo code from
snd_soc_dapm_get_volsw(), and warn if stereo controls are detected.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-03 19:53:54 +01:00
Sachin Kamat
9c9acc9156 ASoC: smdk_wm8994: Convert to use snd_soc_register_card()
Current method for machine driver to register with the ASoC core is to use
snd_soc_register_card() instead of creating a "soc-audio" platform device.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-03 19:48:29 +01:00
Takashi Iwai
3fd877d32c ALSA: hda - Avoid possible race of beep on/off
Call cancel_work_sync() when turning off the beep switch so that the
mute call is executed in a proper order.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 18:31:37 +02:00
Takashi Iwai
257dfb4100 ALSA: hda - Get rid of superfluous beep->mode field
It's no longer necessary since beep_mode=2 option was dropped.
It can be checked simply via codec->beep != NULL.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 18:31:36 +02:00
Takashi Iwai
0401e8548e ALSA: hda - Move beep helper functions to hda_beep.c
Move snd_hda_mixer_amp_switch_put_beep() to hda_beep.c as a clean up
to remove one more ifdef.

Also add the corresponding get callback to return consistently the
digital beep state independently from the mixer amp value.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 18:31:36 +02:00
Takashi Iwai
0920c9b4c4 ALSA: hda - Remove beep_mode=2
The beep_mode=2 option was introduced to make the beep mixer
controlling the beep input allocation/deallocation dynamically, so
that a user can switch between HD-audio codec digital beep and the
system beep only via mixer API.  This was necessary because the
keyboard driver took only the first input beep instance at that time.

However, the recent keyboard driver already processes the multiple
input instances, thus there is no point to keep this mode.

Let's remove it.

Acked-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 18:31:20 +02:00
Takashi Iwai
81fcb17085 ALSA: Move some headers to local directories from include/sound
This is a bit clean up of public sound header directory.
Some header files in include/sound aren't really necessary to be
located there but can be moved to their local directories gracefully.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 08:23:09 +02:00
Takashi Iwai
2cb1331d9d ALSA: pdaudiocf: Remove superfluous pm_message_t argument from suspend
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 08:23:08 +02:00
Takashi Iwai
68cb2b5592 ALSA: Convert to new pm_ops for PCI drivers
Straightforward conversion to the new pm_ops from the legacy
suspend/resume ops.

Since we change vx222, vx_core and vxpocket have to be converted,
too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 08:23:03 +02:00
Takashi Iwai
284e7ca75f ALSA: convert PM ops of platform_driver to new pm ops
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-03 07:58:19 +02:00
Takashi Iwai
8bf01d8abc ALSA: Add missing .owner=THIS_MODULE to platform_driver definitions
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-07-02 17:50:05 +02:00
Robert Jarzmik
890255e704 ASoC: mioa701: convert to snd_soc_register_card API
The mioa701 board code is converted to the snd_soc_register_card()
and snd_soc_unregister_card() APIs.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-01 19:31:52 +01:00
Kailang Yang
8663ff75cd ALSA: hda - Fix no sound from ALC662 after Windows reboot
Windows use hidden register to control EAPD.
Linux use verb to control EAPD.
If windows reboot to Linux, it must change the EAPD control to verb
control.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-29 09:44:44 +02:00
Hebbar, Gururaja
c9fe573a65 ASoC: tlv320aic3x: Fix codec pll configure bug
In sound/soc/codecs/tlv320aic3x.c

        data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG);
        snd_soc_write(codec, AIC3X_PLL_PROGA_REG,
                      data | (pll_p << PLLP_SHIFT));

In the above code, pll-p value is OR'ed with previous value without
clearing it. Bug is not seen if pll-p value doesn't change across
Sampling frequency.

However on some platforms (like AM335x EVM-SK), pll-p may have different
values across different sampling frequencies. In such case, above code
configures the pll with a wrong value.
Because of this bug, when a audio stream is played with pll value
different from previous stream, audio is heard as differently(like its
stretched).

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-06-29 08:18:03 +01:00
Mark Brown
b0dfa4541e ASoC: wm2200: Add missing BCLK rate
Without this very high BCLKs will be configured incorrectly.

Reported-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-06-29 08:18:02 +01:00
Benoît Thébaudeau
8a720718b3 ASoC: dapm: Fix snd_soc_dapm_put_volsw() connect
snd_soc_dapm_put_volsw() sets connect incorrectly in the case max > 1 with
invert. In that case, the raw disconnect value should be max, which corresponds
to the userspace value 0.

This use case currently does not appear upstream, but it could break
SOC_DAPM_SINGLE() or SOC_DAPM_SINGLE_TLV() elsewhere or in the future.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-29 08:13:32 +01:00
Mark Brown
adf643aba8 ASoC: spdif: Build separate RX and TX objects
Otherwise we fail to link when building as modules due to multiple
init/exit functions.

Reported-by: Fengguang Wu <wfg@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-29 02:34:46 +01:00
Vipin Kumar
cdf605255c ASoC: spdif_receiver: Add support for spdif in Audio Codec
This patch adds the support for spdif in audio codec.

Signed-off-by: vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-28 13:15:10 +01:00
Mark Brown
6b4a21b64c ASoC: dwc: Add missing __iomem annotations
Otherwise sparse gets very upset with us.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-28 13:14:52 +01:00
Linus Torvalds
2b25679453 Sound fixes for 3.5-rc5
Here you find quite a few changes for HD-audio and a copule of quirk
 additions for USB-audio.  All reasonably small and/or trivial.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
 iQIcBAABAgAGBQJP6tBMAAoJEGwxgFQ9KSmkhUsQAJcwhnQb27EB9eBnhjcZvmPS
 2K02VNVhoh7kVVjQQ92znpeu+5WFdpFyiBzRPkAzkRR29k7KAtYQRrKg0En7qOL7
 RN6CuZAhIr0D7r8QhpeiJ1ZqpOTzPpycBscYUWZGJR07+iBOZIGIuly4hcWWy2WQ
 ntwcaeDk/n6PWYCwaMxsGdarOZEBh+dcB/8m7QpRtLEOs72IbzpFGyvXpK/Cv+Fd
 8rxVL4JYeDq3bRpHlDQhiPejOW1OnX9H5FkUz28Z38AMAECYGoQ6gIpCybBXNgl3
 Ck+xlL7LeVw8S1ZwpZeNnCLG4qzbUDD6e879X0MtvskaDbE04RD68qWSZVgUD37k
 A/zIJdP2hJNnNdXr5nXn9EqF+hIfndUNnBUjtAp8yJm6PJSOGac5fDk34DD8crM8
 /1/bwyGrGjSfALxL78dZjSDK3LFa/q6llKqoCFf+oxpcNnevuf13ZWyYeM7ol6lC
 q8j6lvNCpDdvCULmnNaTUF2wOpyGKwwFfsiFawhDZf86IqJ44FvDo0ybgbS7IkeO
 UdAjInzFovVJ0jGmKAY5B2Saic8Aem21Z4PAerOfkMAvxGE6P0QvSHPnCMcfWbtI
 dFVBSG6vSpM02Htwn1yU+a99qMRN2n13xedPq0SfZTGM0sCFecCaNU8jpQ9hqBwv
 PEREXZGsaG8JIAESxuM3
 =V/+z
 -----END PGP SIGNATURE-----

Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "Here you find quite a few changes for HD-audio and a copule of quirk
  additions for USB-audio.  All reasonably small and/or trivial."

* tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hda - Fix power-map regression for HP dv6 & co
  ALSA: hda - Initialize caches at codec reconfiguration
  ALSA: hda - Fix memory leaks at module unload
  ALSA: hda - Fix memory leaks in Realtek & Conexant codec parsers
  ALSA: hda - Add Realtek ALC280 codec support
  ALSA: hda - Remove obsoleted CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS
  ASoC: wm8994: remove duplicate code
  ALSA: usb-audio: add BOSS GT-100 support
  ALSA: HDA: Add inverted internal mic quirk for Lenovo S205
  ALSA: hda - Fix ALC272X codec detection
  ALSA: snd_usb_audio: ignore ctrl errors on QuickCam Pro for Notebooks
  ALSA: snd_usb_audio: ignore ctrl errors on QuickCam E3500
2012-06-27 12:50:28 -07:00
David Henningsson
5780b627e2 ALSA: hda - give 3-pin jack the name "Headphone Mic Jack"
This 3-pin jack was labeled "Headphone Jack", but it could also be
used as a mic jack just by switching "Input Source". Therefore we need
to call the jack something else, to make sure PulseAudio can use the
speaker together with the external mic. (PulseAudio might mute the
speaker if it detects a headphone being plugged in.)

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-27 20:21:02 +02:00
David Henningsson
00227f15a0 ALSA: HDA: Support single 3-pin jack without VREF on the actual pin
Some ASUS device has a single 3-pin jack that can either be a mic or
a headphone, but the pin does not have VREF capabilities. We've been
told by Realtek to instead enable VREF on pin 0x18 in that case.

BugLink: https://bugs.launchpad.net/bugs/1018262
Tested-by: Chih-Hsyuan Ho <chih.ho@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-27 20:20:40 +02:00
Mark Brown
3dba1c2652 ASoC: wm5102: Remove unused platform data header
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-27 15:02:40 +01:00
Daniel Mack
da185443c1 ALSA: snd-usb-caiaq: initialize card pointer
Fixes the following warning:

  CC [M]  sound/usb/caiaq/device.o
sound/usb/caiaq/device.c: In function ‘snd_probe’:
sound/usb/caiaq/device.c:500:16: warning: ‘card’ may be used
uninitialized in this function [-Wmaybe-uninitialized]

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-27 12:26:19 +02:00
Takashi Iwai
b54f8abad6 Merge branch 'fix/hda' into topic/hda 2012-06-26 18:06:01 +02:00
Takashi Iwai
6e1c39c6b0 ALSA: hda - Fix power-map regression for HP dv6 & co
The recent fix for power-map controls (commit b0791dda81) caused
regressions on some other HP laptops.  They have fixed pins but these
pins are exposed as jack-detectable.  Thus the driver tries to control
the power-map dynamically per jack detection where it never gets on.

This patch adds the check of connection and it assumes the no jack
detection is available for fixed pins no matter what pin capability
says.

BugLink: http://bugs.launchpad.net/bugs/1013183
Reported-by: Luis Henriques <luis.henriques@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-26 17:43:06 +02:00
Takashi Iwai
09a6071bfe ALSA: hda - Initialize caches at codec reconfiguration
Better to clean up the caches for avoiding inconsistent codec state
after the reconfiguration.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-26 15:01:33 +02:00
Takashi Iwai
59cad16bc6 ALSA: hda - Fix memory leaks at module unload
Some caches aren't released properly at module unloading time.

Cc: <stable@vger.kernel.org> [v3.4+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-26 15:00:20 +02:00
Takashi Iwai
ee48df57c9 ALSA: hda - Fix memory leaks in Realtek & Conexant codec parsers
When moved to the helper code, forgot to release the verb arrays.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-26 14:56:20 +02:00
Linus Torvalds
aace99e57c Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media fixes from Mauro Carvalho Chehab.

Trivial conflict due to new USB HID ID's being added next to each other
(Baanto vs Axentia).

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (44 commits)
  [media] smia: Fix compile failures
  [media]  Fix VIDIOC_DQEVENT docbook entry
  [media] s5p-fimc: Fix control creation function
  [media] s5p-mfc: Fix checkpatch error in s5p_mfc_shm.h file
  [media] s5p-mfc: Fix setting controls
  [media] v4l/s5p-mfc: added image size align in VIDIOC_TRY_FMT
  [media] v4l/s5p-mfc: corrected encoder v4l control definitions
  [media] v4l: mem2mem_testdev: Fix race conditions in driver
  [media] s5p-mfc: Bug fix of timestamp/timecode copy mechanism
  [media] cxd2820r: Fix an incorrect modulation type bitmask
  [media] em28xx: Show a warning if the board does not support remote controls
  [media] em28xx: Add remote control support for Terratec's Cinergy HTC Stick HD
  [media] USB: Staging: media: lirc: initialize spinlocks before usage
  [media] Revert "[media] media: mx2_camera: Fix mbus format handling"
  [media] bw-qcam: driver and pixfmt documentation fixes
  [media] cx88: fix firmware load on big-endian systems
  [media] cx18: support big-endian systems
  [media] ivtv: fix support for big-endian systems
  [media] tuner-core: return the frequency range of the correct tuner
  [media] v4l2-dev.c: fix g_parm regression in determine_valid_ioctls()
  ...
2012-06-25 14:53:09 -07:00
David Henningsson
befae82e29 ALSA: hda - Add Realtek ALC280 codec support
This chip looks very similar to ALC269 and ALC27* variants. The bug reporter
has verified that sound was working after this patch had been applied.

Cc: stable@kernel.org
BugLink: https://bugs.launchpad.net/bugs/1017017
Tested-by: Richard Crossley <richardcrossley@o2.co.uk>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 21:24:41 +02:00
Takashi Iwai
55d52ea868 ALSA: hda - Remove obsoleted CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS
I simply forgot to remove this entry although all Realtek quirks have
been dropped.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 14:40:16 +02:00
Jaroslav Kysela
6cab3e1e65 ASoC: wm8994: remove duplicate code
It seems that the code duplication was added at a merge operation.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 11:14:13 +02:00
Clemens Ladisch
74953e2010 ALSA: usb-audio: add BOSS GT-100 support
Reported-by: John McFarland <mcfarljm@gmail.com>
Tested-by: John McFarland <mcfarljm@gmail.com>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 11:11:24 +02:00
Takashi Iwai
e6656369da ALSA: hda - Remove suprefluous EAPD init verbs for ALC660vd
The EAPD on nodes 0x14 and 0x15 are initialized in alc_auto_setup_eapd().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 11:03:12 +02:00
Mark Brown
d69d65226a ASoC: dwc: Bodge around continuing absence of clock API stubs
The patches for stubbing out the generic clock API still haven't been
applied so we need to either add ifdefs here or add a dependency until
someone decides to actually apply them.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 10:01:27 +01:00
Mark Brown
ec8ffe1868 ASoC: wm8996: Move register default configuration to I2C probe
This gets the registers set up as early as possible, mainly useful for the
GPIOs to ensure that they're in the correct mode.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 09:55:02 +01:00
Mark Brown
d4b3d0fbb7 ASoC: wm8996: Inline wm8996_reset() and optimise cache-only usage
There is only one caller and this allows us to cleanly leave the CODEC
with the internal LDO powered down which is the default state we're
looking for and means that we can robustly disable the register cache
only when we either disable the LDO or power down the external
regulators.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 09:55:01 +01:00
Mark Brown
625c4888ff ASoC: wm8996: Move regulator notifier callbacks into I2C level
Now that we're using regmap the cache is available here.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 09:55:00 +01:00
Mark Brown
725e7a7b58 ASoC: wm8904: Move register default setup into I2C probe()
Get it done as early as possible, it's neater and minimises the time the
pins aren't configured as requested.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 09:55:00 +01:00
Mark Brown
03862cf62e ASoC: wm8904: Move regulator acquisition and device identification to I2C
It's more idiomatic to have the resource allocation at this level.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 09:53:52 +01:00
Mark Brown
fd88759a42 ASoC: wm8904: Rely entirely on the core for bias level management
Even though the WM8904 is able to use idle_bias_off during both probe
and resume we were needlessly leaving the device in standby mode. Instead
power the device down as soon as we've confirmed that we can talk to it
and don't manage the bias level at all over suspend and resume, the core
will take us down to our minimum power level.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 09:53:43 +01:00
Mark Brown
d1e16c1a61 Linux 3.5-rc4
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
 iQEcBAABAgAGBQJP53AxAAoJEHm+PkMAQRiGs2QH/RaqkXz96fwjhDcyiKpDqA3c
 kGuS5mz5cOhnqKSmR88HFm6pwuhLux/qSJzeAmoQy1MC8a0ACx7AnANW0lfN3/qe
 /HGYz8h60yCL/fhn8/bUYtdt9xsoDqoDcq/ooFl9mcsJGWbC6WeMSZU5dAUYqviE
 qFrp5zjY07FG53CRGT0hFpezQNwNL+VLH30CF9LD+fJLPVEYum2zBNGXWM42rcw5
 fxzGL/6SO8YqA/Upic1ht6HAd6s5LOrlST7qvnyXUMvRXN5z/Y92ueYJZefkS1Om
 ohuLIKM2bv9/dJS67H8N2baSKGCzBdfSe5/5WaHdLYW9MiVju0wRl6HPJtAMrkk=
 =H8t8
 -----END PGP SIGNATURE-----

Merge tag 'v3.5-rc4' into for-3.6

Linux 3.5-rc4 contains some bug fixes which overlap with new features.
2012-06-25 09:52:59 +01:00
Uwe Kleine-König
1573ee81cb ASoC: dmaengine_pcm: fix typo in comment
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-25 09:52:44 +01:00
Takashi Iwai
6e72aa5f51 ALSA: hda - Add inv-dmic model to possible Realtek codecs
For convenience, add "inv-dmic" model string for enabling the inverted
internal mic workaround to possible Realtek codecs, so far,
ALC882-variants, ALC262, ALC268, ALC269-variants, and ALC662-variants.

Also, the model strings for hardware inv-dmic workarounds,
"alc269-dmic" and "alc271-dmic", are added for ALC269(VA) and ALC271
codecs as well.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 10:52:25 +02:00
David Henningsson
693b613dc4 ALSA: hda - Add inverted mic quirks for Asus U41SV, Acer 1810TZ and AOD260
These machines have inverted phase on right channel for their
internal mics.

BugLink: https://bugs.launchpad.net/bugs/997227
BugLink: https://bugs.launchpad.net/bugs/996611
BugLink: https://bugs.launchpad.net/bugs/1006089
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 10:20:08 +02:00
Takashi Iwai
125821ae53 ALSA: hda - Add the inverted digital mic workaround to Realtek codecs
Some laptops are equipped with ForteMedia digital mics that give the
differential input.  With such devices, summing stereo streams into a
mono (like PulseAudio does) results in almost silence.

This patch provides a workaround for this bug by adding a new mixer
switch to turn on/off the right channel of digital mic, just like a
similar fix for Conexant codecs.

When the new switch "Inverted Internal Mic Capture Switch" is off and
the current input source is the digital mic, the right channel of the
recording stream is muted.  When another input source is selected, the
right channel is restored.

Tested-by: Eliot Blennerhassett <eliot@blennerhassett.gen.nz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-25 09:45:54 +02:00
Mark Brown
93e8791dd3 ASoC: wm5102: Initial driver
The WM5102 is a highly-integrated low-power audio system for smartphones,
tablets and other portable audio devices based on the Arizona platform.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-23 12:11:47 +01:00
Mark Brown
07ed873e4c ASoC: Add shared code for Wolfson Arizona class devices
The Wolfson Arizona series of audio hub CODECs can share a large amount
of their driver code as the result of a common register map. This patch
adds some of this core support, providing a basis for the initial WM5102
audio driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-23 12:11:46 +01:00
Mark Brown
9dfdd5abcf ASoC: io: Don't dereference regmap if we failed to get one
Avoids a crash in invalid configurations.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-06-23 12:11:32 +01:00
Mark Brown
62d4a4b99d ASoC: dapm: Try to add all routes even if one fails
We may as well print as many errors as we can in one go rather than
requiring developers to iterate through all their typos.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-06-23 12:11:31 +01:00
Mark Brown
bb1591b3de ASoC: isabelle: Staticise non-exported isabelle_dai
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-23 12:11:30 +01:00
Mark Brown
b2a4ec3d48 ASoC: da732x: Staticise non-exported symbol soc_codec_dev_da732x
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-23 12:11:29 +01:00
Vipin Kumar
ace36d8580 ASoC: SPEAr spdif_in: Add spdif IN support
This patch implements the spdif IN driver for ST peripheral

Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-23 11:58:10 +01:00
Rajeev Kumar
241b446f30 ASoC: Add support for SPEAr ASoC pcm layer.
This patch add support for the SPEAr ASoC pcm layer in ASoC
framework. The pcm layer uses common snd_dmaengine framework.

Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-22 10:27:29 +01:00
Rajeev Kumar
3a9cf8efd7 ASoC: Add support for synopsys i2s controller as per ASoC framework.
This patch add support for synopsys I2S controller as per the ASoC
framework.

Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-22 10:25:45 +01:00
Dylan Reid
b43d224767 ALSA: hda - Don't power up when not powered down.
After cancel_delayed_work_sync returns, the power down work either never
started (power_on == 1) or finished (power_on == 0).  In the former case
there is no need to power up again.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-22 09:08:58 +02:00
David Henningsson
b3c5dce815 ALSA: HDA: Add inverted internal mic quirk for Lenovo S205
The Lenovo Ideapad S205 has an internal mic where the right channel
is phase inverted.

BugLink: https://bugs.launchpad.net/bugs/884652
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-21 17:16:25 +02:00
Takashi Iwai
8e5a050901 ALSA: hda - Fix ALC272X codec detection
The codec ALC272X is a special codec for some Dell machines, and its
detection got broken in the recent kernel because SSID check (required
by ALC272X check) was moved to the later point.  Now we need to move
this codec check to the right place, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-21 15:52:57 +02:00
Scott Jiang
f4a6348391 ASoC: bfin: use dev_err to print error log instead of dev_dbg
Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-21 11:07:55 +01:00
Takashi Iwai
e9ea8e8f22 ALSA: hda - Correct info print in HDMI non-intrinsic unsol event
In the recent code, the value shown there is a tag number, and it's no
longer same as the pin nid.  Correct the message to avoid confusion.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-21 11:42:23 +02:00
Takashi Iwai
9dd8cf125d ALSA: hda - Don't rely on event tag for simple_hdmi
VIA codecs seem not returning the event tag in the unsolicited events,
thus the current code relying on the tag value doesn't work.
Since simple_hdmi stuff has only a single pin, we can use simply
snd_hda_jack_set_dirty_all() to activate the pin-detection
independently from the tag value.

Tested-by: Annie Liu <AnnieLiu@viatech.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-21 11:39:45 +02:00
Takashi Iwai
8ceb332df4 ALSA: hda - Remove loop from simple_hdmi*()
The simple_hdmi stuff is designed only for a single pin and a single
converter (thus a single PCM stream), and no need for loops.
Let's flatten the code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-21 08:23:27 +02:00
Lars-Peter Clausen
3528f27a5d ASoC: dmaengine-pcm: Add support for querying stream position from DMA driver
Currently the sound dmaengine pcm helper functions implement the pcm_pointer
callback by trying to count the number of elapsed periods. This is done by
advancing the stream position in the dmaengine callback by one period.
Unfortunately there is no guarantee that the callback will be called for each
elapsed period. It may be possible that under high system load it is only called
once for multiple elapsed periods. This patch addresses the issue by
implementing support for querying the current stream position directly from the
dmaengine driver. Since not all dmaengine drivers support reporting the stream
position yet the old period counting implementation is kept for now.

Furthermore the new mechanism allows to report the stream position with a
sub-period granularity, given that the dmaengine driver supports this.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-20 15:39:05 +01:00
Lars-Peter Clausen
9883ab229d ASoC: dmaengine-pcm: Rename and deprecate snd_dmaengine_pcm_pointer
Currently the sound dmaengine pcm helper functions implement the pcm_pointer
callback by trying to count the number of elapsed periods. This is done by
advancing the stream position in the dmaengine callback by one period.
Unfortunately there is no guarantee that the callback will be called for each
elapsed period. It may be possible that under high system load it is only called
once for multiple elapsed periods. This patch renames the current implementation
and documents its shortcomings and that it should not be used anymore in new
drivers.

The next patch will introduce a new snd_dmaengine_pcm_pointer which will be
implemented based on querying the current stream position from the dma device.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by Vinod Koul <vinod.koul@linux.intel.com>
Acked-by: Dong Aisheng <dong.aisheng@linaro.org
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-20 15:38:32 +01:00
Takashi Iwai
8b8d654b55 ALSA: hda - Move one-time init codes from generic_hdmi_init()
The codes to initialize work struct or create a proc interface should
be called only once and never although it's called many times through
the init callback.  Move that stuff into patch_generic_hdmi() so that
it's called only once.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-20 16:32:22 +02:00
Takashi Iwai
1ade819181 Merge branch 'fix/hda' into topic/hda
The fix for power sequence needs to be merged back to topic branch.
2012-06-20 14:43:20 +02:00
Scott Jiang
f62ae7bda4 ASoC: add i2s dai driver for bf6xx soc
This driver enables i2s mode support on blackfin bf6xx platform.
We reuse bf5xx-i2s-pcm.c as its i2s pcm driver because it's the same
for both bf5xx and bf6xx soc.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-20 11:26:54 +01:00
Scott Jiang
d2aae47f80 ASoC: add sport driver for bf6xx soc
The SPORT(Serial Port) module on bf6xx soc has a totally different ip
comparing to bf5xx soc. An individual SPORT module consists of two
independently configurable SPORT halves with identical functionality.
Each SPORT half can be configured for either transmitter or receiver.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-20 11:26:12 +01:00
Takashi Iwai
ccfcf7d151 ALSA: hda - Add missing snd_hda_jack_detect_enable() for simple_hdmi*()
Reported-by: Annie Liu <annieliu@viatech.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-20 09:30:42 +02:00
Takashi Iwai
21cd683d31 ALSA: hda - Fix the pin nid assignment in patch_hdmi.c
This fixes the regression introduced by the commit d0b1252d for
refactoring simple_hdmi*().  The pin NID wasn't assigned correctly.

Reported-by: Annie Liu <annieliu@viatech.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-20 09:21:45 +02:00
Ezequiel Garcia
24fe5ddc5f sound: swarm_cs4297: Provide definitions for AC97 registers
This patch removes the last usage of linux/ac97_codec.h by
re-defining used AC97 registers.
We can't use sound/ac97_codec.h here, since it is an OSS driver.

Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Ezequiel Garcia <elezegarcia@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-20 08:38:27 +02:00
Markus Bollinger
fdfbaf69e0 ALSA: pcxhr: Add LTC support
add LTC (linear timecode) read function via proc interface to the pcxhr driver

Signed-off-by: Markus Bollinger <bollinger@digigram.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-20 08:35:37 +02:00
Markus Bollinger
d7dc9e32ae ALSA: pcxhr: Fix a counter wrap
fix a counter wrap to avoid resynchronization of stream positions every several
minutes. The resynchronization may create stream position jitter

Signed-off-by: Markus Bollinger <bollinger@digigram.com>

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-20 08:35:28 +02:00
Oleksij Rempel
b64a1ba9d3 ALSA: snd_usb_audio: ignore ctrl errors on QuickCam Pro for Notebooks
This webcam works mostly ok, exept with skype.
Skype sends lots of ctrl messages to dynamically ajust
record level. If for some reasons it pokes some error
every thing goes broken:
- first pulseaudio blocks sound for all apps
- then video is reseted
- then skype freez

dmesg has lots of messages like:
cannot set freq 16000 to ep 0x86"

Setting ignore_ctl_error=1 fixes this problem.

Signed-off-by: Oleksij Rempel <bug-track@fisher-privat.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-20 08:29:08 +02:00