Commit Graph

377648 Commits

Author SHA1 Message Date
Takashi Iwai
accaf69da1 ASoC: More updates for v3.11
Some more fixes and enhancements, and also a bunch of refectoring for
 AC'97 support which enables more than one AC'97 controller driver to be
 built in.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRzXInAAoJELSic+t+oim9jBoQAJjGBiMyEyPv51CV5h2Cfo7c
 SGvoYwC+Q90fBsCLt4J/ei0rP+LUEbNUdnvs+xFeRiCqWHYs/d3/PeIZnuPMUQvZ
 VQOen7L1S+zd6mvDAr45LFmQOpAi74QkqRL1cwtuxWYeLJvFJwvYFTME6pYgjLi4
 HYAmZPZjMhOu3oNZmQIb+4Cmrf0/YbaIserI5kzHWd4b+pC8QCneBqvfwIaMowe0
 qBHw/bSB/haLTpjjbxZGw8NtnJyBvTT90ixgmv1akcZY/8NEh2bMIlzu52olNCci
 ZsCaS0HnjnICV7X5j6bBSjoqt7BQfXdQGFM7mbLn7BqW16MW/R0ONoSk1vE0RQQ0
 RGNYRA/X5yG4XReFE+93sHbJ2esGYnynwbykJd19DNFq0JRpdEpBUuudk8GsTEGh
 jsdh7YbRRGz1EUCxjiyMKiN7jHUhYGB9RRXjbR8Fo4GmTI1HHkOuv07gUfWr7v8F
 o2EcgvNdsEYtOrHP/Y7NCqkd7GkZOzDm3Xfp8Z5Wb81uKhJ3vbldvvUyjWBHrXLO
 Lzb2EACJYE8rqNN3FPsmNDBiuVlRrHeQQmtLL21lz5ZBK7b93+/NK44jN5OnNgU1
 D1PyErveZwogvtAUhZamx7FoZfnHxXQ4nNUWlLacBl3gRLrjzVqB8LQ9IdTyV1/V
 rqTrG1nTPJRCJLN0DLqq
 =UZaY
 -----END PGP SIGNATURE-----

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

ASoC: More updates for v3.11

Some more fixes and enhancements, and also a bunch of refectoring for
AC'97 support which enables more than one AC'97 controller driver to be
built in.
2013-06-28 13:36:22 +02:00
Mark Brown
27516080b2 Merge remote-tracking branch 'asoc/topic/x86' into asoc-next 2013-06-28 12:17:07 +01:00
Mark Brown
214c3eee2d Merge remote-tracking branch 'asoc/topic/twl6040' into asoc-next 2013-06-28 12:17:06 +01:00
Mark Brown
da51f83fa2 Merge remote-tracking branch 'asoc/topic/tas5086' into asoc-next 2013-06-28 12:17:06 +01:00
Mark Brown
b078dcee9a Merge remote-tracking branch 'asoc/topic/ext' into asoc-next 2013-06-28 12:17:05 +01:00
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
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
b49dff8cb6 Merge branch 'topic/wm9705' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-ac97 2013-06-27 09:48:37 +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
13446cf6e9 ASoC: wm9705: Remove noisy print on boot
There's no content in the announcement.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-25 17:22:19 +01: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