Commit graph

288239 commits

Author SHA1 Message Date
Javier Martin
5ed80a75b2 ASoC: i.MX SSI: Fix DSP_A format.
According to i.MX27 Reference Manual (p 1593) TXBIT0 bit selects
whether the most significant or the less significant part of the
data word written to the FIFO is transmitted.

As DSP_A is the same as DSP_B with a data offset of 1 bit, it
doesn't make any sense to remove TXBIT0 bit here.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-02-23 18:58:17 +00:00
Masanari Iida
8a236f3f1a ALSA: ctxfi: Fix typo in ctvmem.c
Correct spelling "virtural" to "virtual" in
sound/pci/ctxfi/ctvmem.c

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-23 18:28:49 +01:00
Mark Brown
d690516c6d ASoC: wm8962: Remove mistakenly committed debug logging
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-23 15:46:25 +00:00
Mark Brown
2901d6ebe1 ASoC: ak4104: Convert to direct regmap API usage
Since the cache is currently open coded this is more of a win than for
most devices.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Daniel Mack <zonque@gmail.com>
2012-02-23 15:14:18 +00:00
Mark Brown
34baf22020 ASoC: ak4104: Use snd_soc_write() rather than internal write function
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Daniel Mack <zonque@gmail.com>
2012-02-23 15:14:14 +00:00
Mark Brown
afad95f825 ASoC: ak4104: Use snd_soc_update_bits() for read/modify/write
Don't use the internal I/O functions directly.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Daniel Mack <zonque@gmail.com>
2012-02-23 15:13:54 +00:00
Mark Brown
7679e42ec8 ASoC: dapm: Check for bias level when powering down
Recent enhancements in the bias management means that we might not be
in standby when the CODEC is idle and can have active widgets without
being in full power mode but the shutdown functionality assumes these
things. Add checks for the bias level at each stage so that we don't
do transitions other than the ON->PREPARE->STANDBY->OFF ones that the
drivers are expecting.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2012-02-23 15:13:02 +00:00
Wu Fengguang
6edc59e602 ALSA: hda - add id for Atom Cedar Trail HDMI codec
[the order sorted by tiwai]

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-23 09:50:10 +01:00
Torsten Schenk
06bb4e7435 ALSA: snd-usb-6fire: add analog input volume control
Add a stereo volume control for analog input channel pair 1/2.

Signed-off-by: Torsten Schenk <torsten.schenk@zoho.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 15:51:26 +01:00
Torsten Schenk
d97c735a10 ALSA: snd-usb-6fire: add mute control for analog outputs
Add a mute control for every analog output channel.

Signed-off-by: Torsten Schenk <torsten.schenk@zoho.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 15:51:16 +01:00
Torsten Schenk
f90ffbf3c6 ALSA: snd-usb-6fire: add individual volume control for analog channels
Add a stereo volume control for every analog output pair 1/2, 3/4, 5/6.

Signed-off-by: Torsten Schenk <torsten.schenk@zoho.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 15:51:06 +01:00
Torsten Schenk
8e247a9c90 ALSA: snd-usb-6fire: add tlv to controls
Remove the soft log-conversion and add a dB scale according to
the DAC documentation instead.

Signed-off-by: Torsten Schenk <torsten.schenk@zoho.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 15:50:56 +01:00
Torsten Schenk
c596758f57 ALSA: snd-usb-6fire: remove driver version information
Remove unused driver version information from the individual files.

Signed-off-by: Torsten Schenk <torsten.schenk@zoho.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 15:50:45 +01:00
Lars-Peter Clausen
95a771ca16 ASoC: mxs-pcm: Request DMA channel early
Request the DMA channel in the PCM open callback instead of the hwparams
callback, this allows us to let open fail if no dma channel is available. This
also fixes a bug where the channel will be requested multiple times if hwparams
is called multiple times.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-22 13:21:49 +00:00
Lars-Peter Clausen
4564d10f30 ASoC: imx-pcm: Request DMA channel early
Request the DMA channel in the pcm open callback. This allows us to let open
fail if there is no dma channel available.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-22 13:21:49 +00:00
Lars-Peter Clausen
91a38540f5 ASoC: imx-ssi: Set dma data early
Move the call to snd_soc_dai_set_dma_data from the hw_params callback to the
startup callback. This allows us to use the dma data in the pcm driver's open
callback.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-22 13:21:49 +00:00
Takashi Iwai
77e314f722 ALSA: hda/via - Add a few sanity checks
Added sanity checks in a few places not to assume the pins having the
certain amp caps or the input-source being always assigned to a mux.

No actual bugs have been triggered by these, but surely better to be a
bit more robust.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 12:36:06 +01:00
Takashi Iwai
8d8bbc6f17 ALSA: hda/via - Don't create duplicated boost controls
The driver may create duplicated mic boost controls when there are
multiple mics with the very same type / location, and this leads to
the error at actual kcontrol creation.  It needs to check the validity
of the created control and add a proper index if it's duplicated.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 12:28:44 +01:00
Mark Hills
cb74eb15ac ALSA: snd-usb-caiaq: Fix the return of XRUN
Commit 3702b08 added a lock, but did not account for the case of
SNDRV_PCM_POS_XRUN, which would get immediately overwritten.

This could be bundled into one if-else-if statement, but the goto
helps to clarify the 'exceptional' case.

Thanks to Andreas Pape for spotting this.

Signed-off-by: Mark Hills <mark@pogo.org.uk>
Acked-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-22 08:34:58 +01:00
Mark Brown
f7085641ee ASoC: wm8994: Move wm_hubs callback before we start ramping VMID
Allows the generic code to set up for that.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 23:10:41 +00:00
Takashi Iwai
fe879e2f6d A couple of small, driver specific fixes - nothing too exciting going
on.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJPQ/LIAAoJEBus8iNuMP3d3qYQAIW6eCnfrTjTe5s7FpXcSqup
 gIIwoibxg6YA2SbXm0l1YBFnZxUl21S9vbAni9ZqYAcYFPlLS/WKb6N7X8bWKA/4
 PfzR96VPBum0sZg+1PwIgYd/zh29Mv532hzLAGCG862afW2TIF3dke8bLsdh4GvV
 KTbicLBmo7EdnshOOsEIKq0UGNkAFss6V8JvxeUSIlQPY2npv887tbnO29LHNjR7
 al4Mg23bLeCWqgUCIihyPz4LwCsyQtM/xm/sL0RBvo8OPsqnPdCvCZ9ZK7vzYQ3n
 HAp62oF2QZ1S/cxp9VnpMT/wVaBo2amTFcLybZyuRoIv0YxRNcfxiDXQaKqlIlx6
 y80oeVvlpCqnOXek3L+DQ8KheGWutfP/eG6KiFMbtSwlqrJx0YKqAMSRcRcr4lWh
 UO+WMlCo59KvqC0wXsQqwRGTznZRNKs/+5yCVhi3VE9tNDKyZuerQG1ParenJNw9
 GdNxqaJSC2FTR+gVoxrgCm880pu7AqQJa4VdAglunhgfRFRfng+KBhLRoYdVTGr2
 FJ4M2ZLQ/rYxqXRw3MEs2LBOAoUyX0s5yOmUmvzUJzySWE4OHWFd9KFR+I+4oI9g
 5/0HW8WgAWmq1t14yvOcmkx/slEtFt41A997Cakvl6ZkNccawY2Npg5l9JxcwL2K
 mcG+6To6YU7JJ5RiH9Dk
 =i5Ya
 -----END PGP SIGNATURE-----

Merge tag 'asoc-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

A couple of small, driver specific fixes - nothing too exciting going
on.
2012-02-21 21:21:57 +01:00
Mark Brown
1ec1cdfbb3 ASoC: wm8996: Convert to use DAPM routes for stream connections
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 19:37:46 +00:00
Mark Brown
cdaaf301da ASoC: wm5100: Implement DRC coefficient configuration
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 19:34:50 +00:00
Mark Brown
29e3cc1597 ASoC: wm8996: Implement DRC coefficient configuration
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 19:34:49 +00:00
Mark Brown
f831b055ec ASoC: core: Add support for masking out parts of coefficient blocks
Chip designers frequently include things like the enable and disable
controls for algorithms in the register blocks which also hold the
coefficients. Since it's desirable to split out the enable/disable
control from userspace the plain SND_SOC_BYTES() isn't optimal for
these devices.

Add a SND_SOC_BYTES_MASK() which allows a bitmask from the first word
of the block to be excluded from the control. This supports the needs
of devices I've looked at and lets us have a reasonably simple API.
Further controls can be added in future if that's needed.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-02-21 19:34:48 +00:00
Mark Brown
71d08516b8 ASoC: core: Add SND_SOC_BYTES control for coefficient blocks
Allow devices to export blocks of registers to the application layer,
intended for use for reading and writing coefficient data which can't
usefully be worked with by the kernel at runtime (for example, due to
requiring complex and expensive calculations or being the results of
callibration procedures). Currently drivers are using platform data to
provide configurations for coefficient blocks which isn't at all
convenient for runtime management or configuration development.

Currently only devices using regmap are supported, an error will be
generated for any attempt to work with a byte control on a non-regmap
device. There's no fundamental block to other devices so support could
be added if required.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-02-21 19:34:48 +00:00
Mark Brown
2b4bdee292 ASoC: io: Retrieve val_bytes from the regmap API
Allow us to build infrastructure which needs to know the size of a value
without requiring regmap based drivers to supply this information to both
ASoC and regmap by asking regmap for the value.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-02-21 19:34:47 +00:00
Mark Brown
8215045181 New interfaces to allow other subsystems to gather information about the
regmap, allowing them to build further subsystem specific generic
 features on top of the regmap.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJPQriPAAoJEBus8iNuMP3d7H8P/0i0E0oGphczp6PiyNludQts
 8xLeSSeNIM2tD78+jg16nBswNxp31mF0n1ueLEK3vblxAJaSm4x3FwD7+ssYcQnn
 ItFeFhumBP2qISlSLjMLK+D7g7cxJQRoTuq6fjRxwjLQGhC3eHXz+aeNz+U92gLD
 QM3hPKckGHkAJAg7jZmRk0BkH9TODoX+6QCXUxY+bEgxWSTC2nrEoFjoVv1dqGgj
 1xPBVTEq3w1QLDy+JUuLVXCvv8ieoQ37j+9Qyciln+ive8oC1rm14wl7pSB/qIV+
 MeBSjxc/Hv6l+jCEWa5fxf1RqRh3P5utcPQmuMWXHJhJ3HFheCv2d4/ZL3NiVi0I
 NNGUATgfIxnSYfeN8ft9v2v7p7tWTQI+UFTfeQal1LhFY74p6JGuGcGtM536pRjG
 qyhc2hDKc95TYCOTnaPGqWsczxZ1Lt4XkSAUuW7Nop43qynrlngSfHw8qn/QbyUW
 S6xrzk72WQD3i0HwhWgaP0PsH4GGlEgbOqMUhppHbbvSC2VZ3K9HsHLJZLKjX3qC
 8YP34oOohwDK3EOCGfdV1w7SPn3NU0DglTPi5Og+h39cN4xh+vAHAZkUKdA35IEM
 9EANjeIWmGyZoFVgrj+NWtuz2wvboZrOEhuRSJBcbQF8LUpWYkEkGuhHM6lRSH66
 7K37XUEQwjbXTR/rcpaI
 =KhUJ
 -----END PGP SIGNATURE-----

Merge tag 'topic/introspection' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into HEAD

New interfaces to allow other subsystems to gather information about the
regmap, allowing them to build further subsystem specific generic
features on top of the regmap.

Merged into ASoC in order to allow us to implement SND_SOC_BYTES_MASK()
controls which need to know the word size of the underlying registers.
2012-02-21 19:34:01 +00:00
Lars-Peter Clausen
8949490f70 ASoC: mxs-pcm: Remove unused fields from struct mxs_pcm_runtime_data
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 19:29:59 +00:00
Lars-Peter Clausen
f691402457 ASoC: imx-pcm: Remove unused fields from imx_pcm_runtime_data struct
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 19:29:59 +00:00
Lars-Peter Clausen
e54e2f81da ASoC: imx-pcm: Remove empty prepare callback
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 19:29:59 +00:00
Mark Brown
07fb9d9e93 ASoC: wm8994: Support external capacitors on MICBIAS2 with jack detection
When an external capacitor is connected to MICBIAS2 on devices with
jack detection (which is not required but may be done in some systems)
then the loading may mean that better performance is obtained when
the microphone bias is enabled normally rather than using the low power
mode. Provide platform data allowing systems to indicate if they require
this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 16:49:53 +00:00
Mark Brown
55a2778685 ASoC: wm8994: Actively discharge idle MICBIAS with jack detect
This minimises the chance of any external capacitors that are fitted
being discharged into headphones as they insert.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 16:49:49 +00:00
Takashi Iwai
070cff4cfd ALSA: hda/realtek - Small code cleanups
A few clean-ups for post-static-quirk time:
- Call alc_auto_init_std() statically in alc_init() instead of setting
  spec->init_hook in each caller.  spec->init_hook field is left
  unused for any future use.

- Move the call of set_capture_mixer() to to alc_parse_auto_config()
  instead of each caller.

- Get rid of the ADC-filling and imux check in each parser function.
  This is no longer needed since the auto-parser always check ADCs and
  imux.  It was only for the static quirks.

- Kill unused defines

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-21 13:48:35 +01:00
Takashi Iwai
f568291ef5 ALSA: hda/realtek - Fix the wrong offset for two-speaker systems
When the machine has two speakers but wants to put more multi-io
jacks, the parser shouldn't consider about the shared DAC but try to
assign the individual DACs.  Otherwise the channel mapping would be
fairly confused and lead to the wrong DACs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-21 12:37:00 +01:00
Takashi Iwai
689cabf6d0 ALSA: hda/realtek - Fix the possible conflicts of Bass Speaker name
When the multi-io is added to the two speaker output configuration,
the parser would try to add yet another "Bass Speaker" control since
it checks only cfg->line_outs.  Add a workaround for it by simply
passing the channel name in the case of multi-io outputs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-21 12:36:37 +01:00
Takashi Iwai
c96f0bf4ad ALSA: hda/realtek - Create individual mute switches for shared DAC
Even if the outputs are using shared DACs, we can still create individual
mute siwtches since they are assigned per pin.  This allows to create,
e.g. Speaker and Bass Speaker mute switches while the single volume is
used for these outputs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-21 12:12:57 +01:00
Takashi Iwai
5803a32646 ALSA: hda/realtek - Fix possible Oops with NULL input_mux
When BIOS is damn crazy and gives no pin-config at all, the driver might
lead to a NULL dereference.  Let's add a NULL check for such a case.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-21 11:59:45 +01:00
Mark Brown
29fdc3605c ASoC: wm8994: Enable headphone startup mode 1 for WM1811 and WM8958
The latest recommendation for optimal performance.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 10:57:47 +00:00
Takashi Iwai
164f73ee93 ALSA: hda/realtek - Parse aa-loopback items dynamically
Similarly in patch_via.c, parse the active analog-loopback connections
and create a list dynamically rather than static arrays.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-21 11:28:51 +01:00
Takashi Iwai
1a97b7f227 ALSA: hda/realtek - Remove the last static quirks for ALC882
Resitance is futile.  The remaining static model quirks for Apple
machines with ALC882-compatible codecs are converted to the auto-parser
now.  We can remove all alc*_quirks.c finally.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-21 11:11:48 +01:00
Kuninori Morimoto
e555cf3631 ASoC: ak4642: fixup HeadPhone L/R dapm settings
Current ak4642 driver had wrong dapm settings for headphone L/R.
If you select headphone L, and select R after that,
headphone L setting was removed by R settings.

This patch fixes it up.
It provides just "Headphone Enable" to user side

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 10:00:24 +00:00
Peter Ujfalusi
3b8a079516 ASoC: twl4030: Debug code cleanup
Replace the printk(KERN_ERR* instances with dev_err in the driver.
While we are here clean up some of the debug messages as well.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 09:58:47 +00:00
Mark Brown
26422625d5 ASoC: wm_hubs: Convert headphone driver to output driver widget
Mostly for neatness, though it may help with sequencing in some
situations.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 09:52:09 +00:00
Mark Brown
fdd48f9d19 ASoC: wm8776: Add WM8775 device ID to the WM8776
The WM8775 is register compatible with the WM8776 so can be supported with
the same driver though it is an ADC only part. Add the device ID to the
WM8776 driver, further updates will be added in the future.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-21 09:13:59 +00:00
Mark Brown
38d78bafb9 ASoC: ak4104: Convert to module_spi_driver()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-20 22:01:01 +00:00
Mark Brown
65b30bee58 ASoC: ak4104: Remove uninformative print on probe()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-20 22:00:54 +00:00
Mark Brown
a6539c3294 regmap: Allow users to query the size of register values
Generic infrastructure based on top of regmap may want to operate on
blocks of data and therefore find it useful to find the size of the
register values. Provide an accessor operation for this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-20 21:17:08 +00:00
Takashi Iwai
9155f82a6a ALSA: hda/realtek - Add model=fixup not to apply fix-ups
If anyone wants to debug the driver and avoid the existing fix-ups,
pass model=nofixup option.  Then the driver will skip to pick up the
fixup list.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-20 18:42:04 +01:00
Takashi Iwai
67b6ec3196 ALSA: hda/realtek - Drop all ALC880 static quirks
Finally the all static quirks for ALC880 are converted to the
auto-parser.  Since we are never sure whether the BIOS on so many old
machines are really correct, the quirk table entries are copied as
they are, but just providing the proper pin-config values
accordingly.

Since alc880_quirks.c is removed, alc882_quirks.c has to be adjusted
slightly to be built again.  There might be some compile warnings due
to the remaining alc882 quirks, but these shall be killed sooner or
later, I don't care it much at this point.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-20 18:20:42 +01:00