Commit graph

15781 commits

Author SHA1 Message Date
Mark Brown
71ce221b72 Merge remote-tracking branch 'asoc/topic/adsp' into asoc-next 2013-06-28 12:17:05 +01:00
Mark Brown
b1fffb93d2 Merge remote-tracking branch 'asoc/topic/adau1701' into asoc-next 2013-06-28 12:17:04 +01:00
Daniel Mack
a975873a9a ASoC: tas5086: fix Mid-Z implementation
It turns out that the TAS5086 doesn't like channel start parts to be
empty, and if all channels are configured to Mid-Z, part 1 has to be
used.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-28 12:15:30 +01:00
Daniel Mack
9f24dc8770 ASoC: tas5086: fix TAS5086_CLOCK_CONTROL register size
The TAS5086_CLOCK_CONTROL also has a size of 1 byte.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-28 12:15:30 +01:00
Takashi Iwai
975cc02a90 ALSA: Replace the magic number 44 with const
The char arrays with size 44 are for the name string of
snd_ctl_elem_id.  Define the constant and replace the raw numbers with
it for clarifying better.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-28 12:14:44 +02:00
Takashi Iwai
0c055b3413 ALSA: hda - Fix the max length of control name in generic parser
add_control_with_pfx() in hda_generic.c assumes a shorter name string
for the control element, and this resulted in the truncation of the
long but valid string like "Headphone Surround Switch" in the middle.

This patch aligns the max size to the actual limit of snd_ctl_elem_id,
44.

Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-28 12:13:58 +02:00
David Henningsson
cd6fb6793a ALSA: hda - Guess what, it's two more Dell headset mic quirks
Add two more machines that need quirks for headset mics to work.

Tested-by: Shawn Wang <shawn.wang@canonical.com>
BugLink: https://bugs.launchpad.net/bugs/1195636
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-28 12:13:52 +02:00
David Henningsson
6c29d68a82 ALSA: hda - Yet another Dell headset mic quirk
This quirk is needed for the headset mic to work on this Dell
machine.

BugLink: https://bugs.launchpad.net/bugs/1195597
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-28 12:13:47 +02:00
Takashi Iwai
ea70ee057c Merge branch 'full-roland-support' of git://git.alsa-project.org/alsa-kprivate into for-next
For adding support for many Roland and Yamaha devices:
* 'full-roland-support' of git://git.alsa-project.org/alsa-kprivate:
  ALSA: usb-audio: add quirks for Roland QUAD/OCTO-CAPTURE
  ALSA: usb-audio: claim autodetected PCM interfaces all at once
  ALSA: usb-audio: remove superfluous Roland quirks
  ALSA: usb-audio: add MIDI port names for some Roland devices
  ALSA: usb-audio: add support for many Roland/Yamaha devices
  ALSA: usb-audio: detect implicit feedback on Roland devices
  ALSA: usb-audio: store protocol version in struct audioformat
2013-06-28 12:13:26 +02:00
Kailang Yang
ad60d502fb ALSA: hda - Add support for ALC5505 DSP power-save mode
This patch adds the power-saving control for ALC5505 DSP on some
Realtek codecs.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Tested-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-28 12:12:54 +02:00
Mark Brown
6c50e9147f ASoC: mfld: Remove unused variable
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-28 10:59:14 +01:00
Dave Airlie
28419261b0 Merge tag 'drm-intel-next-2013-06-18' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Last 3.11 feature pull. I have a few odds bits and pieces and fixes in my
queue, I'll sort them out later on to see what's for 3.11-fixes and what's
for 3.12. But nothing to hold this here up imo.

Highlights:
- more hangcheck work from Mika and Chris to prepare for arb robustness
- trickle feed fixes from Ville
- first parts of the shared pch pll rework, with some basic hw state
  readout and cross-checking (this shuts up the confused pch pll refcount
  WARN that Linus just recently forwarded)
- Haswell audio power well support from Wang Xingchao (alsa bits acked by
  Takashi)
- some cleanups and asserts sprinkling around the plane/gamma enabling
  sequence from Ville
- more gtt refactoring from Ben
- clear up the adjusted->mode vs. pixel clock vs. port clock confusion
- 30bpp support, this time for real hopefully

* tag 'drm-intel-next-2013-06-18' of git://people.freedesktop.org/~danvet/drm-intel: (97 commits)
  drm/i915: remove a superflous semi-colon
  drm/i915: Kill useless "Enable panel fitter" comments
  drm/i915: Remove extra "ring" from error message
  drm/i915: simplify the reduced clock handling for pch plls
  drm/i915: stop killing pfit on i9xx
  drm/i915: explicitly set up PIPECONF (and gamma table) on haswell
  drm/i915: set up PIPECONF explicitly for i9xx/vlv platforms
  drm/i915: set up PIPECONF explicitly on ilk-ivb
  drm/i915: find guilty batch buffer on ring resets
  drm/i915: store ring hangcheck action
  drm/i915: add batch bo to i915_add_request()
  drm/i915: change i915_add_request to macro
  drm/i915: add i915_gem_context_get_hang_stats()
  drm/i915: add struct i915_ctx_hang_stats
  drm/i915: Try harder to disable trickle feed on VLV
  drm/i915: fix up pch pll enabling for pixel multipliers
  drm/i915: hw state readout and cross-checking for shared dplls
  drm/i915: WARN on lack of shared dpll
  drm/i915: split up intel_modeset_check_state
  drm/i915: extract readout_hw_state from setup_hw_state
  ...

Conflicts:
	drivers/gpu/drm/i915/intel_display.c
	drivers/gpu/drm/i915/intel_fb.c
	drivers/gpu/drm/i915/intel_sdvo.c
2013-06-28 09:50:34 +10:00
Clemens Ladisch
b7f33917bc ALSA: usb-audio: add quirks for Roland QUAD/OCTO-CAPTURE
The Roland Quad/Octo-Capture devices use some unknown vendor-specific
mechanism to switch sample rates (and to manage other controls).  To
prevent the driver from attempting to use any other than the default
44.1 kHz sample rate, use quirks to hide the other alternate settings.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2013-06-27 21:59:50 +02:00
Clemens Ladisch
b1ce7ba619 ALSA: usb-audio: claim autodetected PCM interfaces all at once
snd_card_register() registers all devices newly added since the last
call.  However, the playback/capture streams are handled as one ALSA
device, so the second /dev device will not be registered if the PCM
streams are added in two steps.

QUIRK_AUTODETECT caused the probe callback to be called once for each
interface, which triggered this problem.  Work around this by handling
this like the composite quirk, i.e., autodetecting all other interfaces
that might be used for PCM or MIDI.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2013-06-27 21:59:49 +02:00
Clemens Ladisch
8e5ced83dd ALSA: usb-audio: remove superfluous Roland quirks
Remove all quirks that are no longer needed now that the generic Roland
quirks can handle the vendor-specific descriptors correctly.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2013-06-27 21:59:49 +02:00
Clemens Ladisch
a968782e27 ALSA: usb-audio: add MIDI port names for some Roland devices
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2013-06-27 21:59:48 +02:00
Clemens Ladisch
aafe77cc45 ALSA: usb-audio: add support for many Roland/Yamaha devices
Add quirks to detect the various vendor-specific descriptors used by
Roland and Yamaha in most of their recent USB audio and MIDI devices.

Together with the previous patch, this should add audio/MIDI support for
the following USB devices:
- Edirol motion dive .tokyo performance package
- Roland MC-808 Synthesizer
- Roland BK-7m Synthesizer
- Roland VIMA JM-5/8 Synthesizer
- Roland SP-555 Sequencer
- Roland V-Synth GT Synthesizer
- Roland Music Atelier AT-75/100/300/350C/500/800/900/900C Organ
- Edirol V-Mixer M-200i/300/380/400/480/R-1000
- BOSS GT-10B Effects Processor
- Roland Fantom G6/G7/G8 Keyboard
- Cakewalk Sonar V-Studio 20/100/700 Audio Interface
- Roland GW-8 Keyboard
- Roland AX-Synth Keyboard
- Roland JUNO-Di/STAGE/Gi Keyboard
- Roland VB-99 Effects Processor
- Cakewalk UM-2G MIDI Interface
- Roland A-500S Keyboard
- Roland SD-50 Synthesizer
- Roland OCTAPAD SPD-30 Controller
- Roland Lucina AX-09 Synthesizer
- BOSS BR-800 Digital Recorder
- Roland DUO/TRI-CAPTURE (EX) Audio Interface
- BOSS RC-300 Loop Station
- Roland JUPITER-50/80 Keyboard
- Roland R-26 Recorder
- Roland SPD-SX Controller
- BOSS JS-10 Audio Player
- Roland TD-11/15/30 Drum Module
- Roland A-49/88 Keyboard
- Roland INTEGRA-7 Synthesizer
- Roland R-88 Recorder

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2013-06-27 21:59:48 +02:00
Clemens Ladisch
ba7c2be114 ALSA: usb-audio: detect implicit feedback on Roland devices
All the Roland/Edirol/BOSS USB audio devices that need implicit feedback
show this unambiguously in their descriptors, so it might be a good idea
to let the driver detect this.

This should make playback work correctly (at least with Jack) with the
following devices:
- BOSS GT-100
- BOSS JS-8 Jam Station
- Edirol M-16DX
- Roland GAIA SH-01

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2013-06-27 21:59:47 +02:00
Clemens Ladisch
8f898e92ae ALSA: usb-audio: store protocol version in struct audioformat
Instead of reading bInterfaceProtocol from the descriptor whenever it's
needed, store this value in the audioformat structure.  Besides
simplifying some code, this will allow us to correctly handle vendor-
specific devices where the descriptors are marked with other values.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2013-06-27 21:59:47 +02:00
Yijing Wang
db10e7fbbc ALSA: pci: trivial: replace numeric with standard PM state macros
Use standard PM state macros PCI_Dx instead of numeric 0/1/2..

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-27 15:04:32 +02:00
Mark Brown
b047e1cce8 ASoC: ac97: Support multi-platform AC'97
Currently we can only have a single platform built in with AC'97 support
due to the use of a global variable to provide the bus operations. Fix
this by making that variable a pointer and having the bus drivers set the
operations prior to registering.

This is not a particularly good or nice approach but it avoids blocking
multiplatform and a real fix involves fixing the fairly deep problems
with AC'97 support - we should be converting it to a real bus.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:48:42 +01:00
Mark Brown
a356a380b6 Merge branch 'topic/stac9766' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-ac97 2013-06-27 09:47:04 +01:00
Mark Brown
9b86421d14 ASoC: wm9705: Remove noisy print on boot
There's no content in the announcement.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:47:00 +01:00
Mark Brown
3bed3344c8 ASoC: txx9aclc_ac97: Convert to devm_ioremap_resource()
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:45:23 +01:00
Mark Brown
65fb3e726c ASoC: tegra-ac97: Do common and clock init prior to component registration
Otherwise we may instantiate and hence have something try to access the
device while it is still completing initialisation.

Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:45:14 +01:00
Mark Brown
2def2516aa ASoC: tegra20-ac97: Convert to devm_ioremap_resource()
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:45:06 +01:00
Mark Brown
cfe68642cf ASoC: tegra20-ac97: Convert to devm_clk_get()
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:44:59 +01:00
Mark Brown
ad3ae47b10 ASoC: nuc900-ac97: Convert to use devm_ APIs
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:44:26 +01:00
Mark Brown
417ced8b93 ASoC: ep93xx: Remove redundant dev_set_drvdata() calls
The driver core does this and it's never legal to rely on the value of
drvdata if not set in probe() anyway.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:44:19 +01:00
Mark Brown
6dab2fd71c ASoC: bf5xx-ac97: Convert to devm_gpio_request_one()
Also clean up the error reporting from failed requests while we're at it.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:44:11 +01:00
Mark Brown
d8b51c11ff ASoC: ac97c: Use module_platform_driver()
Acked-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:44:04 +01:00
Mark Brown
2105d63e09 ASoC: psc-ac97: Convert to module_platform_driver()
Acked-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:43:57 +01:00
Mark Brown
a16a6c68e8 ASoC: psc-ac97: Use devm_ioremap_resource()
Acked-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:43:50 +01:00
Mark Brown
25fd0bfd53 ASoC: samsung-ac97: Convert to devm_ioremap_resource()
Reviewed-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:43:37 +01:00
Mark Brown
5d45ee3cdb ASoC: samsung-ac97: Use devm_clk_get()
Reviewed-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:43:28 +01:00
Wei Yongjun
de693006c9 ASoC: mid-x86: Convert to use devm_* APIs
devm_* APIs are device managed and make code simpler.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-26 16:21:49 +01:00
Dan Carpenter
bd5fe738e3 ALSA: ak4xx-adda: info leak in ak4xxx_capture_source_info()
"idx" is controled by the user and can be a negative offset into the
input_names[] array.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-26 10:35:55 +02:00
Mark Brown
4bf07eef01 ASoC: stac9766: Remove version number
There is no need to have versioning beyond that for the kernel, especially
when the version number never gets updated.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 17:09:16 +01:00
Daniel Mack
97d0a86845 ASoC: adau1701: add support for pin muxing
The ADAU1701 has 12 pins that can be configured depending on the system
configuration. Allow settting the corresponding registers from DT.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:32:21 +01:00
Daniel Mack
45405d5892 ASoC: adau1701: switch to direct regmap API usage
The hardware I/O has to be open-coded due to registers of unequal sizes.
Other than that, the transition is straight forward.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:32:13 +01:00
Daniel Mack
2352d4bf43 ASoC: adau1701: allow configuration of PLL mode pins
The ADAU1701 has 2 hardware pins to configure the PLL mode in accordance
to the MCLK-to-LRCLK ratio. These pins have to be stable before the chip
is released from reset, and a full reset cycle, including a new firmware
download is needed whenever they change.

This patch adds GPIO properties to the DT bindings of the Codec, and
implements makes the set_sysclk memorize the configured sysclk.

Because the run-time parameters are unknown at probe time, the first
firmware download is postponed to the first hw_params call, when the
driver can determine the mclk/lrclk divider. Subsequent downloads
are only issued when the divider configuration changes.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:32:08 +01:00
Daniel Mack
de9fc724da ASoC: adau1701: move firmware download to adau1701_reset()
The chip needs a new download after each reset, so the code to do that
needs to live in adau1701_reset().

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:32:03 +01:00
Daniel Mack
79b23b5640 ASoC: tas5086: add support for pwm start mode config
The TAS5086 has two alternative modes to start its PWM channels, Mid-Z
and Low-Z. Which one to use depends on how the PWM power stages are
connected to the TAS5086.

This patch adds 6 optional boolean properties to the DT bindings of the
driver which allow the user to configure each individual channel to the
Mid-Z scheme, and leaves all the others to the default (Low-Z).

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:26:49 +01:00
Daniel Mack
18710acdee ASoC: tas5086: add DAPM mux controls
The TAS5086 has two muxes, one for connecting I2S inputs to internal
channels, and another one for selecting which internal channel should
be routed to which PWM output pin.

This patch adds DAPM widgets and routes for this driver.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:26:48 +01:00
Daniel Mack
8892d479f1 ASoC: tas5086: add more register defines
Add register definitions for input and output mux registers, and rewrite
the tas5086_accessible_reg() function.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:26:47 +01:00
Daniel Mack
6b36d370ad ASoC: tas5086: open-code I2C transfer routines
In order to support registers of unequal sizes, the I2C I/O has to be
open-coded.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 10:26:47 +01:00
Takashi Sakamoto
f02fe86199 ALSA: snd-firewire-lib: remove unused header inclusion
spinlock is not used in amdtp.h.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 09:46:03 +02:00
Takashi Iwai
0623a889d1 ALSA: hda - Add missing alc_inv_dmic_sync() call in alc269_resume()
As some of ALC269 quirks use the inverted dmic feature, we need to
call alc_inv_dmic_sync() in the resume callback like in alc_resume(),
too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 09:29:40 +02:00
Takashi Iwai
58e22201f8 ALSA: hda - Remove superfluous stac_resume()
The stac_resume() is exactly what the default resume code does, so
we don't have to define and use it doubly.  Let's cut it off.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 09:27:19 +02:00
Wang Xingchao
28cb72e5b8 ALSA: hda/hdmi - poll eld at resume time
Hdmi driver may not receive intrinsic event from gfx side when
it's in runtime suspend mode. There's no ELD info when exit from
runtime suspend. This patch avoid missing ELD info.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 09:07:57 +02:00
Mengdong Lin
7295b26438 ALSA: hda - clean up code to reset hda link
This patch is a cleanup to the previous patch "reset hda link during system/
runtime suspend".

In this patch
- azx_enter_link_reset() and azx_exit_link_reset() are defined for entering and
  exiting the link reset respectively. azx_link_reset() is no longer used and
  replaced by azx_enter_link_reset().
- azx_reset() reuses the above two new functions for a link reset cycle

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 08:13:56 +02:00
Wang Xingchao
8b2c7a5c40 ALSA: hda - Add In-driver connection info
Pin's connection list may change dynamically with hot-plug event
on Intel Haswell chip. Users would see connections be "0" in codec#.
when play audio on this pin, software driver choose converter from cache
connections. So add "In-driver connection" info to avoid confuse when
raw connections are different with cache connection.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 08:13:56 +02:00
Takashi Iwai
eb33ccf763 ALSA: hda - Use auto_mute_via_amp=1 for VT1708
We've got bug report wrt many machines with VT1708 (e.g. IBM POS
machines) showing the broken auto-mute behavior.  It turned out that
the problem is that the pin control values of the speaker and line-out
pins are completely ignored.  As a workaround, let's use the newly
introduced feature of the generic parser, to control the mute via amp
on pins.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 08:13:55 +02:00
Takashi Iwai
7eebffd3f4 ALSA: hda - Add auto_mute_via_amp flag to generic parser
Add a new flag, auto_mute_via_amp, to determine the behavior of the
headphone / line-out auto-mute.  When this flag is set, the generic
driver mutes the speaker and line outputs via the amp mute of each
pin, instead of changing the pin control values.

This is introduced for devices that don't work expectedly with the pin
control values; for example, some devices are known to keep enabling
the speaker outputs no matter which pin control values are set on the
speaker pins.

The driver doesn't check actually whether the pins have the output amp
caps, but assumes that the proper mixer (mute) controls are created on
all these pins.  If not the case, you can't use this flag for your
device.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-25 08:13:51 +02:00
Peter Ujfalusi
98c5fb1f87 ASoC: twl6040: Add digital mute support
To reduce pop noise during playback stream start and stop the codec needs
to have the digital_mute callback implemented.
The codec need to be muted before the CPU dai has been stopped (McPDM).
Stopping the McPDM will generate a pop on the codec since no signal on the
PDM bus means full negative amplitude.
By managing the mute/unmute state of the outputs we can decrease the amount
of pop noise when playback starts or stops.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-24 16:06:03 +01:00
Peter Ujfalusi
68897497aa ASoC: twl6040: Assign id for each DAI
Later we can identify the DAIs by this ID number.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-24 16:06:02 +01:00
Peter Ujfalusi
f60596d61f ASoC: twl6040: Drop using devm_request_threaded_irq()
We need to free the irq at twl6040_remove() which is called when the machine
driver has been removed (the card has been removed).
If we fail to do that, next time when the machine driver is loaded the
codec's probe will fail since the irq has been already requested.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-24 16:05:47 +01:00
Takashi Iwai
1ca2f2ec9e ALSA: vmaster: Add snd_ctl_sync_vmaster() helper function
Introduce a new helper function, snd_ctl_sync_vmaster(), which updates
the slave put callbacks forcibly as well as calling the hook.  This
will be used in the upcoming patch in HD-audio codec driver for
toggling the mute in vmaster slaves.

Along with the new function, the old snd_ctl_sync_vmaster_hook() is
replaced as a macro calling with the argument hook_only=true.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-24 15:51:54 +02:00
Wang Xingchao
e1a4dca671 ALSA: hda - Remove unused variable
Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-24 14:08:57 +02:00
Mengdong Lin
3af3f356e1 ALSA: hda - reset hda link during system/runtime suspend
If all the codecs report ClkStopOK (OK to stop bus clock) after being put to
D3, this patch will reset the HDA link before the controller is put to D3.

So the link will be in reset during system or runtime suspend, the bus clock
stops and the codecs are in D3(ClkStop) state.

This may help to reduce power consumption by dozens of mW on some peripheral
hda codecs.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-24 10:06:04 +02:00
Antonio Ospite
a91c3fb2f8 Add M2Tech hiFace USB-SPDIF driver
Add driver for M2Tech hiFace USB-SPDIF interface and compatible devices.

M2Tech hiFace and compatible devices offer a Hi-End S/PDIF Output
Interface, see http://www.m2tech.biz/hiface.html

The supported products are:

  * M2Tech Young
  * M2Tech hiFace
  * M2Tech North Star
  * M2Tech W4S Young
  * M2Tech Corrson
  * M2Tech AUDIA
  * M2Tech SL Audio
  * M2Tech Empirical
  * M2Tech Rockna
  * M2Tech Pathos
  * M2Tech Metronome
  * M2Tech CAD
  * M2Tech Audio Esclusive
  * M2Tech Rotel
  * M2Tech Eeaudio
  * The Chord Company CHORD
  * AVA Group A/S Vitus

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-24 09:26:08 +02:00
Takashi Iwai
04c9548c78 ASoC: samsung: Fix a typo of CONFIG_SND_SOC_BT_SCO
... instead of CONFIG_SND_SOC_SCO.
Introduced in the commit 200ceb96.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-21 18:09:49 +02:00
Takashi Iwai
26889e51d3 ASoC: omap: Fix the leftover CONFIG_SND_SOC_HDMI_CODEC
Replace the leftover CONFIG_SND_SOC_OMAP_HDMI_CODEC in
sound/soc/omap/Kconfig with CONFIG_SND_SOC_HDMI_CODEC, which was
forgotten in the commit bf7c6e6c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-21 18:02:01 +02:00
Takashi Iwai
0a1801e26c ASoC: Updates for v3.11
Not a big release subsystem wise, the main changes have been some nice
 improvements on the driver side:
 
 - Lots of cleanups and fixes for Blackfin, SGTL5000 and UX500.
 - Generalisation of the Bluetooth and HDMI stub drivers.
 - New CODEC drivers for SSM2518 and RT5640.
 - New machine driver for Tegra CPUs with RT5640.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRvz1tAAoJELSic+t+oim9x20QAIswcfaLkogh6AEhrP+ayzRA
 xuwrROZoaoHXCoD1xC/YkFYDbYWp69ms3JR5oYrplOpq1h5+jkmbAcsq2mllLL7y
 02uQP73acysze6YKB00wG/khAxmqTLENbiOLbQ2w+X7Ao6Gh0v/BRmNU34OSpj6R
 VDp9eNdLBJ4iZQ8m+S8NTn2bdxtqlRDVNP6aC6L8kxt2khuGTa3acGyFcer8hPwx
 WZFsP9lt5J+8rrZ6l3OH3ZpbldJRB+63ff5O+q0s5KihSfWEeVy3NgK7AG7chG4a
 mffoqymgrtjJDosuhNIwU0mjFLWdFoPI7byTi9Hd5WBJ+d3d1uNr1iFxD7+c+fWd
 Xr5PimssX983D9dbJN3yikzhQt7A2TK9OUCHXdWlLf2fCeYH5PwLySqaDPvmayvh
 5UccHo2j7sDcrztazCFqcfbSdEW/VA5mlHexz1xW9eGDWJncHDYdFPxDp45rwno4
 ZjilEOHNP/1HJl+Nl0D8HArYsk/svLY7t5SpITDjAMPHcCSND4ZH+WknnCFMl2sq
 R67LaeW4UHFUJk7fZHx3a3Gr90OsEC1yb0NaJJ59e8o8fV4e47wNp/yUjCULvSuP
 9136KjBQEofyR5xDiBM6HudFT1wEwpIva5YQoKKZgjqX2sYhwjH5SwfsSd0r25Mh
 PFKtvO1/U63w/AJyn/sM
 =gWf9
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next

ASoC: Updates for v3.11

Not a big release subsystem wise, the main changes have been some nice
improvements on the driver side:

- Lots of cleanups and fixes for Blackfin, SGTL5000 and UX500.
- Generalisation of the Bluetooth and HDMI stub drivers.
- New CODEC drivers for SSM2518 and RT5640.
- New machine driver for Tegra CPUs with RT5640.
2013-06-21 17:52:58 +02:00
Antonio Ospite
0af49ffe3c ALSA: usb: uniform style used in MODULE_SUPPORTED_DEVICE()
In sound/usb/card.c and sound/usb/misc/ua101.c there are no spaces
between the vendor and the device names, use this style in the other
drivers too.

This also helps keeping consistency when new drivers copies from the
ones already in the mainline tree.

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-21 14:37:08 +02:00
Antonio Ospite
4a9f911861 ALSA: snd-usb-6fire: use vmalloc buffers
For USB devices it's not necessary to allocate physically contiguous
buffers.

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-21 14:36:41 +02:00
Antonio Ospite
fc76f86376 ALSA: snd-usb-caiaq: use vmalloc buffers
For USB devices it's not necessary to allocate physically contiguous
buffers.

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-21 14:35:52 +02:00
Antonio Ospite
3dd446a7e5 ALSA: snd-usb-caiaq: remove the unused snd_card_used variable
The snd_card_used variable is only read but never written, remove it.

Signed-off-by: Antonio Ospite <ao2@amarulasolutions.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-21 14:33:05 +02:00
Dan Carpenter
fefe228c5f ALSA: vx_core: off by one in vx_read_status()
This code is older than git, and I haven't tested it, but if size ==
SIZE_MAX_STATUS then we would write one space past the end of the
rmh->Stat[] array.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-21 14:32:06 +02:00
Arnd Bergmann
a0639948b6 DaVinci SoC changes for v3.11
This pull request moves DaVinci EDMA library to
 arch/arm/common so it can be used by OMAP based AM335x.
 This is a temporary step until all drivers are converted
 to use the dmaengine driver in drivers/dma/edma.c.
 
 Several drivers like SPI, MMC/SD have already been converted.
 Some like audio are pending.
 
 The other two patches in the pull request are cleanup in nature.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.10 (GNU/Linux)
 
 iQIcBAABAgAGBQJRv+92AAoJEGFBu2jqvgRNo5kP/AmUETjUCik9j9mVUzuv0k57
 c+EO63zqtWfU9ryVaziZOnLqFK51eLbNVV0I04pjZQzsrox+X9fasRRbXPdzCCW8
 +A1AcAmNGpKNVTaXSpHZJxI7Pq57mdAo4YrdaOjOICcjUgikqSibUxg4Yojz9OxL
 mOl9dPMSXDnXKaPLSbVz/jBDJSrYvBKXpO7/kyDbnmiQ+kqw4pY0F3NLkxWtsEFF
 L4nnwrLRdoTOnqAGQsTqUl9WcNr53EZc+gc0m4cJs3Fj2GLl2gQaiCb0hZLKzSwk
 Awa0mVZHUgJx5lCS2dyhk7cq/wIv1AO8GAnq0XP/04sajJqBz1B4eDfncYP4+qph
 Z6FXEAhNj0Fo+x8ZYmGr+cep2hmkUbBmPkNDWuTcU8VtH5FlXH4BCLREoSISBktD
 lpymYaRx7G1c9gZFYVfZbInWqrF1s8avqs/UlHdp96SgHNpQsrpxyyq4VSytGWOP
 aodbcOqktK+9Sn6vmRPTELlpYmPJnpX2rbhnVj20zED+uSO5IVL194+ggrLIc/V+
 SObGLib4/FkqyJp4/WVir7TLchsj1BKASmlF0a9HZ+1wuaRyC48J0kjYINY8ycBz
 rxfG5frG4tXSObuk0zMlhNoQRh6elT9eO67uflgjSkXFxLm7Tzd4omHTokAKAo1E
 F81IsqEDqYhbrbmzj2Na
 =BH9M
 -----END PGP SIGNATURE-----

Merge tag 'davinci-for-v3.11/soc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into next/soc

From Sekhar Nori:

DaVinci SoC changes for v3.11

This pull request moves DaVinci EDMA library to
arch/arm/common so it can be used by OMAP based AM335x.
This is a temporary step until all drivers are converted
to use the dmaengine driver in drivers/dma/edma.c.

Several drivers like SPI, MMC/SD have already been converted.
Some like audio are pending.

The other two patches in the pull request are cleanup in nature.

* tag 'davinci-for-v3.11/soc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
  ARM: edma: remove unused transfer controller handlers
  ARM: davinci: move private EDMA API to arm/common
  ARM: davinci: remove __init atrribute from function declaration

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2013-06-20 15:06:57 +02:00
David Henningsson
88d5760649 ALSA: hda - Make Thinkpad X220-tablet use generic parser
Like the X220, this quirk was added to support docking station,
so enable the fixup instead.

According to Jan, the generic parser works equal or better
than the current parser. This was tested under a 3.9 kernel.

Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-20 12:53:36 +02:00
Lars-Peter Clausen
f0ddb219c9 ASoC: 88pm860x: Use SND_SOC_DAPM_PGA_E() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:57 +01:00
Lars-Peter Clausen
f9eeae9f04 ASoC: wm_adsp: Use SND_SOC_DAPM_PGA_E() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:45 +01:00
Lars-Peter Clausen
98809ae22b ASoC: wm_hubs: Use SOC_SINGLE_EXT() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:44 +01:00
Lars-Peter Clausen
d0a39cdcf2 ASoC: wm8995: Use SOC_SINGLE_EXT() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:42 +01:00
Lars-Peter Clausen
6e06509c58 ASoC: wm8994: Use SOC_SINGLE_EXT() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:40 +01:00
Lars-Peter Clausen
9578121c80 ASoC: wm8991: Use SOC_SINGLE_EXT_TLV() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:39 +01:00
Lars-Peter Clausen
fc99adc3d8 ASoC: wm8990: Use SOC_SINGLE_EXT_TLV() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:37 +01:00
Lars-Peter Clausen
5a68bae223 ASoC: wm8904: Use SOC_SINGLE_EXT() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:36 +01:00
Lars-Peter Clausen
ea3583d04b ASoC: wm8903: Use SOC_SINGLE_EXT() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:33 +01:00
Lars-Peter Clausen
a44b5177dc ASoC: wm8400: Use SOC_SINGLE_EXT_TLV() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:31 +01:00
Lars-Peter Clausen
1476f66f1f ASoC: tlv320aix3x: Use SOC_SINGLE_EXT() instead of open-coding it
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-19 19:47:29 +01:00
Takashi Iwai
d045c5dc43 ALSA: hda - Fix missing Mic Boost controls for VIA codecs
Some VIA codecs like VT1708S have Mic boost amps in the mic pins but
they aren't exposed in the capability bits.  In the past driver code,
we override the pin caps and create mic boost controls forcibly.
While transition to the generic parser, we lost the mic boost controls
although the pin caps are still overridden, because the generic parser
code checks the widget caps, too.

So this patch adds a new helper function to allow the override of the
given widget capability bits, and makes VIA codecs driver to add the
missing input-amp capability bit.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59861
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-19 07:54:09 +02:00
Takashi Iwai
fd678cac34 ALSA: hda - Use snd_hda_check_power_state() in patch_hdmi.c
... instead of open codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-18 16:28:36 +02:00
Wang Xingchao
7ef166b831 ALSA: hda - Avoid choose same converter for unused pins
For Intel Haswell HDMI codecs, the pins choose converter 0 by default.
This would cause conflict when playing audio on unused pins,the pin with
physical device connected would get audio data too.
i.e. Pin 0/1/2 default choose converter 0, pin 1 has HDMI monitor connected.
when play audio on Pin 0 or pin 2, pin 1 could get audio data too.

This patch configure unused pins to choose different converter.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-18 16:17:48 +02:00
Takashi Iwai
bddee96b5d ALSA: hda - Cache the MUX selection for generic HDMI
When a selection to a converter MUX is changed in hdmi_pcm_open(), it
should be cached so that the given connection can be restored properly
at PM resume.  We need just to replace the corresponding
snd_hda_codec_write() call with snd_hda_codec_write_cache().

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-18 16:14:22 +02:00
Wei Yongjun
1389fd03b7 ALSA: firewire: fix error return code in scs_probe()
Fix to return -ENOMEM in the kmalloc() error handling
case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-18 16:11:57 +02:00
Wang Xingchao
53b434f093 ALSA: hda - Haswell converter power state D0 verify
Haswell converters maybe in wrong power state before usage.
i.e. only converter 0 is in D0, converter 1/2 are in D3.
When pin choose converter 1/2, there's no audio output, this
cause dependency when playing differnt stream on pins.

AUD_PWRST  ConvertorA_Widget_Power_State_Current        D0
AUD_PWRST  ConvertorA_Widget_Power_State_Requsted       D0
AUD_PWRST  ConvertorB_Widget_Power_State_Current        D3
AUD_PWRST  ConvertorB_Widget_Power_State_Requested      D3
AUD_PWRST  ConvC_Widget_PwrSt_Curr                      D3
AUD_PWRST  ConvC_Widget_PwrSt_Req                       D3

This patch check converter's power state and set D0 if it's in D3 mode.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-18 08:04:15 +02:00
Takashi Iwai
06ec56d3c6 ALSA: hda - Fix return value of snd_hda_check_power_state()
The refactoring by commit 9040d102 introduced the new function
snd_hda_check_power_state().  This function is supposed to return true
if the state already reached to the target state, but it actually
returns false for that.  An utterly stupid typo while copy & paste.

Fortunately this didn't influence on much behavior because powering up
AFG usually powers up the child widgets, too.  But the finer power
control must have been broken by this bug.

Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-18 07:59:43 +02:00
Dave Jones
cd1199edc7 ALSA: sound/usb/misc/ua101.c: convert __list_for_each usage to list_for_each
Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-18 07:47:32 +02:00
Matt Porter
3ad7a42d5a ARM: davinci: move private EDMA API to arm/common
Move mach-davinci/dma.c to common/edma.c so it can be used
by OMAP (specifically AM33xx) as well.

Signed-off-by: Matt Porter <mporter@ti.com>
Acked-by: Chris Ball <cjb@laptop.org> # davinci_mmc.c
Acked-by: Mark Brown <broonie@linaro.org>
Acked-by: Olof Johansson <olof@lixom.net>
[nsekhar@ti.com: dropped davinci sffsdr changes]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2013-06-18 10:52:03 +05:30
Mark Brown
84bbc4aa2d Merge remote-tracking branch 'asoc/topic/x86' into asoc-next 2013-06-17 17:20:33 +01:00
Mark Brown
5464389755 Merge remote-tracking branch 'asoc/topic/wm8994' into asoc-next 2013-06-17 17:20:32 +01:00
Mark Brown
f57019aa0a Merge remote-tracking branch 'asoc/topic/wm8962' into asoc-next 2013-06-17 17:20:32 +01:00
Mark Brown
7daf390b8b Merge remote-tracking branch 'asoc/topic/wm0010' into asoc-next 2013-06-17 17:20:31 +01:00
Mark Brown
458bcee95d Merge remote-tracking branch 'asoc/topic/ux500' into asoc-next 2013-06-17 17:20:30 +01:00
Mark Brown
93d4c1e04f Merge remote-tracking branch 'asoc/topic/tegra' into asoc-next 2013-06-17 17:20:30 +01:00
Mark Brown
bfe617d33d Merge remote-tracking branch 'asoc/topic/ssm2518' into asoc-next 2013-06-17 17:20:29 +01:00
Mark Brown
5f5eb4efe5 Merge remote-tracking branch 'asoc/topic/spear' into asoc-next 2013-06-17 17:20:28 +01:00
Mark Brown
d238ffabc5 Merge remote-tracking branch 'asoc/topic/spdif' into asoc-next 2013-06-17 17:20:28 +01:00