Commit Graph

3466 Commits

Author SHA1 Message Date
Rongjun Ying
c6c0925ea3 ASoC: hdmi-codec: let the driver support HDMI sink
Devices like mobilephones, computers are typically used as
HDMI sources, but devices like TV, navigators will be HDMI
sinks.

for auto scenerios, In-Vehicle Infotainment(IVI) can be HDMI
sink to display movies from mobilephones.

Signed-off-by: Rongjun Ying <Rongjun.Ying@csr.com>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-17 10:52:09 +01:00
Shawn Guo
46a5905e1c ASoC: sgtl5000: defer the probe if clock is not found
It's not always the case that clock is already available when sgtl5000
get probed at the first time, e.g. the clock is provided by CPU DAI
which may be probed after sgtl5000.  So let's defer the probe when
devm_clk_get() call fails and give it chance to try later.

It fixes the regression on imx28 since commit 9e13f34 (ASoC: sgtl5000:
Let the codec acquire its clock).

[    1.927637] sgtl5000 0-000a: Failed to get mclock: -2
[    1.934280] sgtl5000: probe of 0-000a failed with error -2
[    1.945906] mxs-sgtl5000 sound.13: ASoC: CODEC (null) not registered
[    1.953787] mxs-sgtl5000 sound.13: snd_soc_register_card failed (-517)
[    1.960865] platform sound.13: Driver mxs-sgtl5000 requests probe deferral

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-16 18:52:03 +01:00
Mark Brown
cbaa568961 ASoC: tlv320aic3x: List tlv320aic3106 as a supported device
Currently there is no specific handling for it but the tlv320aic3106 is
supported using this driver.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-16 13:42:30 +01:00
Mark Brown
f2c4fa655f ASoC: tlv320aic3x: Add compatible strings for specific devices
The driver supports a range of devices but currently doesn't allow those
device names to be used for enumeration on DT. Add the currently listed
I2C IDs as compatible strings.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-16 13:42:30 +01:00
Chih-Chung Chang
cb6f66a2d2 ASoC: max98088 - fix element type of the register cache.
The registers of max98088 are 8 bits, not 16 bits. This bug causes the
contents of registers to be overwritten with bad values when the codec
is suspended and then resumed.

Signed-off-by: Chih-Chung Chang <chihchung@chromium.org>
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
2013-07-15 18:18:06 +01:00
Mark Brown
4824b69a92 Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linus 2013-07-15 11:13:58 +01:00
Mark Brown
1052e144cc Merge remote-tracking branch 'asoc/fix/wm8978' into asoc-linus 2013-07-15 11:13:57 +01:00
Mark Brown
b87b26ae0e Merge remote-tracking branch 'asoc/fix/sgtl5000' into asoc-linus 2013-07-15 11:13:55 +01:00
Fabio Estevam
cb23e852aa ASoC: sglt5000: Provide the reg_stride field
sgtl5000 has 16-bit registers, and only even numbers are valid for its registers
addresses.

Let regmap knows about this feature by specifying the 'reg_stride' field, so
that it can access only the valid registers.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:13:37 +01:00
Mark Brown
57e265c8d7 ASoC: wm8994: Move runtime PM init to platform device init
As well as being better style this allows the device to idle when there is
no audio card instantaited which is probably what we want.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:12:57 +01:00
Mark Brown
d57a79acc7 ASoC: pcm3008: Convert to devm_gpio_request_one()
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:11:03 +01:00
Mark Brown
33319a2fcc ASoC: pcm3008: Check for platform data
The driver will crash if none is provided.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:11:03 +01:00
Mark Brown
d7f184958e ASoC: pcm3008: Move gpio allocation to probe
This is better from a device model point of view since we don't try to
do things like instantiate the card until the required resources appear.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:11:03 +01:00
Mark Brown
b641edfbf2 ASoC: pcm3008: Remove noisy version print
The version number has never been updated and the printk isn't based on
any interaction with the device.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:11:03 +01:00
Mark Brown
64b0c282e8 ASoC: codecs: Make ALL_CODECS depend on COMPILE_TEST
The main function of the option is to enable compile testing.  There is
still an option since COMPILE_TEST is intended to enable selection of
extra drivers rather than forcing them on.

Signed-off-by: Mark Brown <broonie@kernel.org>
2013-07-15 11:09:21 +01:00
Charles Keepax
b79fae606c ASoC: arizona: Add default case to silence build warning
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:07:02 +01:00
Charles Keepax
b63144e6c6 ASoC: arizona: Add signal activity output for DRC
When doing signal activity detection, the only output from the DRC will
often be a GPIO pin. This patch adds a signal activity output that is
activated when a GPIO is configured to output the DRC signal activity
detection.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:07:02 +01:00
Kuninori Morimoto
b25f778150 ASoC: ak4554: add DT support
Support for loading the ak4554 codec module via devicetree.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:05:23 +01:00
Kuninori Morimoto
a2911cdb1f ASoC: add ak4554 driver
ak4554 is very simple DA/AD converter which has no setting register.
Note that it has hard coded asymmetric data format
playback : SND_SOC_DAIFMT_RIGHT_J
capture  : SND_SOC_DAIFMT_LEFT_J
This driver has single DAI and doesn't have set_fmt.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:05:22 +01:00
Axel Lin
e394fe55f7 ASoC: adav80x: Add module device table for adav801
This driver can be built as module, thus add module device table for adav801 to
support module auto loading.

To make the naming consistent, also rename adav80x_id to adav80x_i2c_id.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:04:27 +01:00
Kuninori Morimoto
5f17482a32 ASoC: wm8978: enable symmetric rates
wm8978 needs .symmetric_rates = 1.
The playback/capture will be strange without this patch
when it used asymmetric rate in same time

Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-12 09:44:56 +01:00
Linus Torvalds
0fb3767b0a Merge tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
 "A few small fixes (and cleanups) for HD-audio, USB-audio and ASoC"

* tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: usb-audio: fix regression for fixed stream quirk
  ALSA: hda - Keep halting ALC5505 DSP
  ASoC: wm8962: fix NULL pdata pointer
  ASoC: imx-sgtl5000: return E_PROBE_DEFER if ssi/codec not found
  ASoC: Samsung: Remove redundant comment
  ALSA: hda - Fix EAPD vmaster hook for AD1884 & co
  ASoC: samsung: Remove obsolete GPIO based DT pinmuxing
  ASoC: mxs: register saif mclk to clock framework
2013-07-11 12:45:59 -07:00
Mark Brown
82e414fa1d ASoC: wm8994: Remove overly noisy debug logging
This was committed in error.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-05 12:46:12 +01:00
Takashi Iwai
38f0ad7c90 Merge tag 'asoc-v3.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Updates for v3.11

A few small fixes, all driver specific.  The removal of the GPIO based
pinmuxing is a bug fix, since the obsolete nodes had been removed from
the DT it stopped the driver loading.
2013-07-05 11:54:27 +02:00
Fabio Estevam
5c78dfe87e ASoC: sglt5000: Fix SGTL5000_PLL_FRAC_DIV_MASK
SGTL5000_PLL_FRAC_DIV_MASK is used to mask bits 0-10 (11 bits in total) of
register CHIP_PLL_CTRL, so fix the mask to accomodate all this bit range.

Reported-by: Oskar Schirmer <oskar@scara.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
2013-07-05 10:45:49 +01:00
Fabio Estevam
016fcab8ff ASoC: sglt5000: Fix the default value of CHIP_SSS_CTRL
According to the sgtl5000 reference manual, the default value of CHIP_SSS_CTRL
is 0x10.

Reported-by: Oskar Schirmer <oskar@scara.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
2013-07-05 10:45:42 +01:00
Shawn Guo
4642aabd21 ASoC: wm8962: fix NULL pdata pointer
There is an error in merge commit 384b834 on conflict resolution which
causes the following NULL pdata pointer bug.

wm8962 0-001a: customer id 0 revision D
Unable to handle kernel NULL pointer dereference at virtual address 00000004
pgd = 80004000
[00000004] *pgd=00000000
Internal error: Oops: 5 [#1] SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0+ #1
task: bf870000 ti: bf874000 task.ti: bf874000
PC is at wm8962_probe+0x134/0x6c8
LR is at regmap_unlock_mutex+0x10/0x14
pc : [<80452100>]    lr : [<80304cf4>]    psr: a0000113
sp : bf875c98  ip : 00000000  fp : bf875cd4
r10: 00000000  r9 : bfb1830c  r8 : 80779bc4
r7 : 00000000  r6 : 00000001  r5 : bfbac010  r4 : bfb33e00
r3 : 80304ce4  r2 : 00000000  r1 : 00000001  r0 : fffffffb
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 1000404a  DAC: 00000017
Process swapper/0 (pid: 1, stack limit = 0xbf874238)
Stack: (0xbf875c98 to 0xbf876000)
...

Fix the error by assigning pdata a correct pointer.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-04 16:49:51 +01:00
Linus Torvalds
1286da8bc0 Merge tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
 "A relative calm release at this time with a flat diffstat.  The only
  significant change in the ALSA core side is the support for more than
  32 card instances, configurable via kconfig.  Other than that, in both
  ASoC and other parts, mostly some improvements and fixes on the driver
  side.

   - hda: More quirks for ALC269-variants on Dell & co, VIA codec fixes
   - hda: Haswell HDMI audio fixes, runtime PM improvements
   - hda: Intel BayTrail support, ALC5505 DSP support
   - es1968: MediaForte M56VAP support
   - usb-audio: Improved support for Yamaha/Roland devices
   - usb-audio: M2Tech hiFace, Audio Advantage Micro II support
   - hdspm: wordclock fixes
   - ASoC: Pending fixes for WM8962
   - ASoC: Cleanups and fixes for Blackfin, SGTL5000 and UX500
   - ASoC: Generalisation of the Bluetooth and HDMI stub drivers
   - ASoC: SSM2518 and RT5640 codec drivers.
   - ASoC: Tegra CPUs with RT5640 machine driver
   - ASoC: AC'97 refactoring bug fixes
   - ASoC: ADAU1701 driver fixes
   - Clean up of *_set_drvdata() in a wide range of drivers"

* tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (284 commits)
  ALSA: vmaster: Fix the regression of missing vmaster hook call
  ALSA: hda - Add Dell SSID to support Headset Mic recording
  ASoC: adau1701: remove control_data assignment
  ASoC: adau1701: more direct regmap usage
  ASoC: ac97: fixup multi-platform AC'97 module build failure
  ASoC: pxa2xx: fixup multi-platform AC'97 build failures
  ASoC: tegra20-ac97: Remove unused variable
  ASoC: tegra20-ac97: Remove duplicate error message
  ALSA: usb-audio: Add Audio Advantage Micro II
  ASoC: tas5086: fix Mid-Z implementation
  ASoC: tas5086: fix TAS5086_CLOCK_CONTROL register size
  ALSA: Replace the magic number 44 with const
  ALSA: hda - Fix the max length of control name in generic parser
  ALSA: hda - Guess what, it's two more Dell headset mic quirks
  ALSA: hda - Yet another Dell headset mic quirk
  ALSA: hda - Add support for ALC5505 DSP power-save mode
  ASoC: mfld: Remove unused variable
  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
  ...
2013-07-03 19:52:22 -07:00
Andrew Morton
3b1f9f53b1 sound/soc/codecs/si476x.c: don't use 0bNNN
spacr64 gcc-3.4.5 (at least) spits this back.

Cc: Andrey Smirnov <andrey.smirnov@convergeddevices.net>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-07-03 16:07:23 -07:00
Takashi Iwai
ef866ac0c2 Merge tag 'asoc-v3.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Final updates for v3.11

A few final updates:

 - A couple of additional bug fixes for the AC'97 refactoring.
 - Some fixes for the ADAU1701 driver.
2013-07-01 11:23:13 +02:00
Mark Brown
e78e4c49e7 Merge remote-tracking branch 'asoc/topic/twl6040' into asoc-next 2013-06-30 12:42:25 +01:00
Mark Brown
233d6a903e Merge remote-tracking branch 'asoc/topic/tas5086' into asoc-next 2013-06-30 12:42:24 +01:00
Mark Brown
e4ca49d5d8 Merge remote-tracking branch 'asoc/topic/ext' into asoc-next 2013-06-30 12:42:24 +01:00
Mark Brown
fbc6c4ee65 Merge remote-tracking branch 'asoc/topic/adsp' into asoc-next 2013-06-30 12:42:24 +01:00
Mark Brown
4494783793 Merge remote-tracking branch 'asoc/topic/adau1701' into asoc-next 2013-06-30 12:42:23 +01:00
Daniel Mack
cef929ec4e ASoC: adau1701: remove control_data assignment
codec->control_data has to be left unset to make the ASoC core access
the regmap properly.

That bug slipped in during a rebase session of the driver refactoring.

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-30 12:42:02 +01:00
Daniel Mack
ee441140e7 ASoC: adau1701: more direct regmap usage
Replace calls to snd_soc_update_bits() with regmap_update_bits().

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-30 12:41:53 +01:00
Takashi Iwai
accaf69da1 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
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
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
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