openwrt/staging/blogic.git
12 years agoALSA: aloop - add locking to timer access
Omair Mohammed Abdullah [Sat, 29 Sep 2012 06:54:05 +0000 (12:24 +0530)]
ALSA: aloop - add locking to timer access

When the loopback timer handler is running, calling del_timer() (for STOP
trigger) will not wait for the handler to complete before deactivating the
timer. The timer gets rescheduled in the handler as usual. Then a subsequent
START trigger will try to start the timer using add_timer() with a timer pending
leading to a kernel panic.

Serialize the calls to add_timer() and del_timer() using a spin lock to avoid
this.

Signed-off-by: Omair Mohammed Abdullah <omair.m.abdullah@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - Fix hang caused by race during suspend.
Dylan Reid [Fri, 28 Sep 2012 22:57:01 +0000 (15:57 -0700)]
ALSA: hda - Fix hang caused by race during suspend.

There was a race condition when the system suspends while hda_power_work
is running in the work queue.  If system suspend (snd_hda_suspend)
happens after the work queue releases power_lock but before it calls
hda_call_codec_suspend,  codec_suspend runs with power_on=0, causing the
codec to power up for register reads, and hanging when it calls
cancel_delayed_work_sync from the running work queue.

The call chain from the work queue will look like this:
hda_power_work <<- power_on = 1, unlock, then power_on cleard by suspend
  hda_call_codec_suspend
    hda_set_power_state
      snd_hda_codec_read
        codec_exec_verb
          snd_hda_power_up
    snd_hda_power_save
      __snd_hda_power_up
        cancel_delayed_work_sync <<-- cancelling executing wq

Fix this by waiting for the work queue to finish before starting suspend
if suspend is not happening on the work queue.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agosound: Remove unnecessary semicolon
Peter Senna Tschudin [Fri, 28 Sep 2012 09:24:57 +0000 (11:24 +0200)]
sound: Remove unnecessary semicolon

A simplified version of the semantic patch that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@r1@
statement S;
position p,p1;
@@
S@p1;@p

@script:python r2@
p << r1.p;
p1 << r1.p1;
@@
if p[0].line != p1[0].line_end:
        cocci.include_match(False)
@@
position r1.p;
@@
-;@p
// </smpl>

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda/realtek - Fix detection of ALC271X codec
Herton Ronaldo Krzesinski [Thu, 27 Sep 2012 13:38:14 +0000 (10:38 -0300)]
ALSA: hda/realtek - Fix detection of ALC271X codec

In commit af741c1 ("ALSA: hda/realtek - Call alc_auto_parse_customize_define()
always after fixup"), alc_auto_parse_customize_define was moved after
detection of ALC271X.

The problem is that detection of ALC271X relies on spec->cdefine.platform_type,
and it's set on alc_auto_parse_customize_define.

Move the alc_auto_parse_customize_define and its required fixup setup
before the block doing the ALC271X and other codec setup.

BugLink: https://bugs.launchpad.net/bugs/1006690
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Reviewed-by: David Henningsson <david.henningsson@canonical.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310
Felix Kaechele [Tue, 25 Sep 2012 23:20:44 +0000 (01:20 +0200)]
ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310

The Lenovo IdeaPad U310 has an internal mic where the right channel
is phase inverted.

Signed-off-by: Felix Kaechele <felix@fetzig.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event
David Henningsson [Tue, 25 Sep 2012 09:31:00 +0000 (11:31 +0200)]
ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event

For less duplication of code between codecs, and to make it easier
in the future to improve code for all codecs simultaneously.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - make a generic unsol event handler
David Henningsson [Tue, 25 Sep 2012 09:30:59 +0000 (11:30 +0200)]
ALSA: hda - make a generic unsol event handler

Moving towards less duplication of code between codecs - this patch
takes some of the common code of unsol event handling and makes it
generic.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoMerge tag 'asoc-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
Takashi Iwai [Sat, 6 Oct 2012 14:33:52 +0000 (16:33 +0200)]
Merge tag 'asoc-3.7' of git://git./linux/kernel/git/broonie/sound into for-next

ASoC: Additional updates for v3.7

A couple more updates for 3.7, enhancements to the ux500 and wm2000
drivers, a new driver for DA9055 and the support for regulator bypass
mode.  With the exception of the DA9055 this has all had a chance to
soak in -next (the driver was added on Friday so should be in -next
today).

12 years agoASoC: codecs: Add DA9055 codec driver
Ashish Chavan [Fri, 21 Sep 2012 14:46:17 +0000 (20:16 +0530)]
ASoC: codecs: Add DA9055 codec driver

This patch adds support for Dialog semiconductor's DA9055 audio codec.

This has been tested on DA9055 EVB with Samsung SMDK6410 board.

Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com>
Signed-off-by: David Dajun Chen <david.chen@diasemi.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: eukrea-tlv320: Convert it to platform driver
Fabio Estevam [Sat, 22 Sep 2012 15:27:31 +0000 (12:27 -0300)]
ASoC: eukrea-tlv320: Convert it to platform driver

Convert eukrea-tlv320 to platform driver.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoALSA: ASoC: add DT bindings for CS4271
Daniel Mack [Thu, 27 Sep 2012 23:36:44 +0000 (01:36 +0200)]
ALSA: ASoC: add DT bindings for CS4271

Apart from pure matching, the bindings also support setting the the
reset gpio line.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Cc: Alexander Sverdlin <subaparts@yandex.ru>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm_hubs: Ensure volume updates are handled during class W startup
Mark Brown [Thu, 27 Sep 2012 17:35:24 +0000 (18:35 +0100)]
ASoC: wm_hubs: Ensure volume updates are handled during class W startup

In some circumstances we may need to flush volume updates to the device
after switching to class W mode. Do this unconditionally to ensure that
these situations are handled.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
12 years agoASoC: wm5110: Adding missing volume update bits
Charles Keepax [Thu, 27 Sep 2012 12:21:48 +0000 (13:21 +0100)]
ASoC: wm5110: Adding missing volume update bits

The volume update bits were being set on all but one input and one output.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
12 years agoASoC: wm5110: Add OUT3R support
Mark Brown [Wed, 26 Sep 2012 16:52:36 +0000 (17:52 +0100)]
ASoC: wm5110: Add OUT3R support

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5110: Add AEC loopback support
Mark Brown [Sun, 26 Aug 2012 20:51:27 +0000 (13:51 -0700)]
ASoC: wm5110: Add AEC loopback support

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5110: Rename EPOUT to HPOUT3
Mark Brown [Sun, 26 Aug 2012 20:50:48 +0000 (13:50 -0700)]
ASoC: wm5110: Rename EPOUT to HPOUT3

The third output on WM5110 is a general purpose headphone output which can
be used to drive an earpice rather than a dedicated earpiece driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: arizona: Add more clock rates
Mark Brown [Wed, 26 Sep 2012 16:50:02 +0000 (17:50 +0100)]
ASoC: arizona: Add more clock rates

Some devices support additional clock rates.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: arizona: Add more DSP options for mixer input muxes
Mark Brown [Wed, 26 Sep 2012 15:43:44 +0000 (16:43 +0100)]
ASoC: arizona: Add more DSP options for mixer input muxes

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm0010: Initialise chip state before we register the interrupt
Mark Brown [Tue, 25 Sep 2012 18:04:25 +0000 (19:04 +0100)]
ASoC: wm0010: Initialise chip state before we register the interrupt

The interrupt handler uses the chip state.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm0010: Don't check if reset GPIO is defined when removing
Mark Brown [Tue, 25 Sep 2012 15:36:56 +0000 (16:36 +0100)]
ASoC: wm0010: Don't check if reset GPIO is defined when removing

We will fail to probe without one.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm0010: Allow slow GPIO for reset
Mark Brown [Tue, 25 Sep 2012 15:35:26 +0000 (16:35 +0100)]
ASoC: wm0010: Allow slow GPIO for reset

We never set the GPIO from atomic context so there's no reason why we
can't support a GPIO that needs to sleep when configuring.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5110: Enable bypass mode for MICVDD
Mark Brown [Fri, 7 Sep 2012 04:58:54 +0000 (12:58 +0800)]
ASoC: wm5110: Enable bypass mode for MICVDD

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5102: Enable bypass mode for MICVDD
Mark Brown [Fri, 7 Sep 2012 04:58:43 +0000 (12:58 +0800)]
ASoC: wm5102: Enable bypass mode for MICVDD

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: dapm: Allow regulators to bypass as well as disable when idle
Mark Brown [Fri, 7 Sep 2012 04:57:11 +0000 (12:57 +0800)]
ASoC: dapm: Allow regulators to bypass as well as disable when idle

Allow regulators managed via DAPM to make use of the bypass support that
has recently been added to the regulator API by setting a flag
SND_SOC_DAPM_REGULATOR_BYPASS. When this flag is set the regulator will
be put into bypass mode before being disabled, allowing the regulator to
fall into bypass mode if it can't be disabled due to other users.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge tag 'bypass' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator...
Mark Brown [Wed, 26 Sep 2012 11:29:31 +0000 (12:29 +0100)]
Merge tag 'bypass' of git://git./linux/kernel/git/broonie/regulator into for-3.7

regulator: Bypass mode support

Allow regulators to be put into a non-regulating mode bypassing the
input straight to the output, mostly used by low power retention modes.

12 years agoASoC: cs4270: Remove mono support
Fabio Estevam [Tue, 18 Sep 2012 16:03:54 +0000 (13:03 -0300)]
ASoC: cs4270: Remove mono support

According to cs4270 datasheet, there is no reference to mono mode.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoARM: SAMSUNG: dma-ops: Fix dmaengine_prep_dma_cyclic() parameter list
Peter Ujfalusi [Mon, 24 Sep 2012 07:58:05 +0000 (10:58 +0300)]
ARM: SAMSUNG: dma-ops: Fix dmaengine_prep_dma_cyclic() parameter list

There is a new flags parameter for the function.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agodmaengine: Add flags parameter to dmaengine_prep_dma_cyclic()
Peter Ujfalusi [Mon, 24 Sep 2012 07:58:04 +0000 (10:58 +0300)]
dmaengine: Add flags parameter to dmaengine_prep_dma_cyclic()

With this parameter added to dmaengine_prep_dma_cyclic() the API will be in
sync with other dmaengine_prep_*() functions.
The dmaengine_prep_dma_cyclic() function primarily used by audio for cyclic
transfer required by ALSA, we use the from audio to ask dma drivers to
suppress interrupts (if DMA_PREP_INTERRUPT is cleared) when it is supported
on the platform.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
CC: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: Make snd_sgbuf_get_{ptr|addr}() available for non-SG cases
Takashi Iwai [Fri, 21 Sep 2012 03:29:12 +0000 (20:29 -0700)]
ALSA: Make snd_sgbuf_get_{ptr|addr}() available for non-SG cases

Passing struct snd_dma_buffer pointer instead, so that they work no
matter whether real SG buffer is used or not.

This is a preliminary work for the HD-audio DSP loader code.

Signed-off-by: Ian Minett <ian_minett@creativelabs.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoMerge remote-tracking branch 'asoc/topic/ux500' into for-3.7
Mark Brown [Sat, 22 Sep 2012 22:47:58 +0000 (18:47 -0400)]
Merge remote-tracking branch 'asoc/topic/ux500' into for-3.7

12 years agoASoC: wm2000: Add regulator support
Mark Brown [Sat, 22 Sep 2012 22:33:23 +0000 (18:33 -0400)]
ASoC: wm2000: Add regulator support

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm2000: Convert to devm_regmap_init_i2c()
Mark Brown [Sat, 22 Sep 2012 22:32:08 +0000 (18:32 -0400)]
ASoC: wm2000: Convert to devm_regmap_init_i2c()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge tag 'asoc-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
Takashi Iwai [Sat, 22 Sep 2012 16:31:08 +0000 (18:31 +0200)]
Merge tag 'asoc-3.7' of git://git./linux/kernel/git/broonie/sound into for-next

ASoC: Updates for v3.7

Lots and lots of driver specific cleanups and enhancements but the only
substantial framework feature this time round is the compressed API
binding:

- Addition of ASoC bindings for the compressed API, used by the mid-x86
  drivers.
- Lots of cleanups and API refreshes for CODEC drivers and DaVinci.
- Conversion of OMAP to dmaengine.
- New machine driver for Wolfson Microelectronics Bells.
- New CODEC driver for Wolfson Microelectronics WM0010.

12 years agoMerge tag 'v3.6-rc6' into for-3.7
Mark Brown [Sat, 22 Sep 2012 15:26:27 +0000 (11:26 -0400)]
Merge tag 'v3.6-rc6' into for-3.7

Linux 3.6-rc6 has all our bug fixes.

Conflicts (trivial overlap):
sound/soc/omap/am3517evm.c

12 years agoASoC: twl4030: Support for DT booted kernel
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:32 +0000 (13:46 +0300)]
ASoC: twl4030: Support for DT booted kernel

When the kernel has been booted with DT blob the platform data is NULL for
the driver.
We need to construct the pdata based on the DT information for runtime use.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: twl4030: Add pointer to pdata within the private data
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:31 +0000 (13:46 +0300)]
ASoC: twl4030: Add pointer to pdata within the private data

Access the pdata via a pointer within the twl4030_priv structure.
In preparation for DeviceTree support.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: twl4030: Convert to use devm_kzalloc
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:30 +0000 (13:46 +0300)]
ASoC: twl4030: Convert to use devm_kzalloc

Allocate the private data with devm_kzalloc.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC/mfd: twl4030: Remove set_hs_extmute callback from platform data
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:29 +0000 (13:46 +0300)]
ASoC/mfd: twl4030: Remove set_hs_extmute callback from platform data

We no longer have users for the set_hs_extmute callback which has been
replaced by hs_extmute_gpio so the codec driver can handle the external
mute if it is needed by the board.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoARM: OMAP/ASoC: Zoom2: Let the codec to handle the hs_extmute GPIO
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:28 +0000 (13:46 +0300)]
ARM: OMAP/ASoC: Zoom2: Let the codec to handle the hs_extmute GPIO

Remove the use of set_hs_extmute callback and let the codec driver to
handle the extmute GPIO.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: twl4030: Move hs_extmute GPIO handling to driver
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:27 +0000 (13:46 +0300)]
ASoC: twl4030: Move hs_extmute GPIO handling to driver

The external mute (if it is in use) is handled by a GPIO line. Prepare to
remove the set_hs_extmute callback and replace it with:
hs_extmute_gpio: the GPIO number to use for external mute

When the users of set_hs_extmute has been converted the callback can be removed.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoInput: twl4030-vibra: Support for DT booted kernel
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:26 +0000 (13:46 +0300)]
Input: twl4030-vibra: Support for DT booted kernel

Add support when the kernel has been booted with DT blob. In this case the
pdata is NULL, we need to reach up to the core node and check if the codec
part has been enabled to determine if we need to coexist with the codec or
not.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agomfd: twl4030-audio: Add DT support
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:25 +0000 (13:46 +0300)]
mfd: twl4030-audio: Add DT support

Support for loading the twl4030 audio module via devicetree.
Sub devices for codec and vibra will be created as mfd devices once the
core MFD driver is loaded when the kernel is booted with a DT blob.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agodt: Add empty of_find_node_by_name() function
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:24 +0000 (13:46 +0300)]
dt: Add empty of_find_node_by_name() function

This commit adds an empty of_find_node_by_name() function for !CONFIG_OF
builds.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agomfd: twl4030-audio: Get audio MCLK via twl-core API instead of pdata
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:23 +0000 (13:46 +0300)]
mfd: twl4030-audio: Get audio MCLK via twl-core API instead of pdata

twl-core has API to get the boot time configured HFCLK rate which has the
same rate as the audio MCLK.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agomfd: twl-core: Add API to query the HFCLK rate
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:22 +0000 (13:46 +0300)]
mfd: twl-core: Add API to query the HFCLK rate

CFG_BOOT register's HFCLK_FREQ field hold information about the used HFCLK
frequency.
Add possibility for users to get the configured rate based on this
register.
This register was configured during boot, without it the chip would not
operate correctly, so we can trust on this information.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agomfd: twl4030-audio: Rearange and clean-up the probe function
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:21 +0000 (13:46 +0300)]
mfd: twl4030-audio: Rearange and clean-up the probe function

To facilitate the device tree support the probe function need to be rearanged.
Small cleanup in the APLL frequency selection part as well.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agomfd: twl4030-audio: Convert to use devm_kzalloc
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:20 +0000 (13:46 +0300)]
mfd: twl4030-audio: Convert to use devm_kzalloc

To clean up the module probe and remove functions.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agomfd: twl4030-audio: Clean up MODULE_* and platform_driver part
Peter Ujfalusi [Mon, 10 Sep 2012 10:46:19 +0000 (13:46 +0300)]
mfd: twl4030-audio: Clean up MODULE_* and platform_driver part

Place the MODULE_* lines in the same block and add MODULE_DESCRIPTION.
Rearange the platform_driver structure at the same time.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-pcm: Convert to use dmaengine
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:58 +0000 (15:05 +0300)]
ASoC: omap-pcm: Convert to use dmaengine

Original author: Russell King <rmk+kernel@arm.linux.org.uk>

Switch the omap-pcm to use dmaengine.
Certain features are not supported by after dmaengine conversion:
1. No period wakeup mode
   DMA engine has no way to communicate this information through
   standard channels.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: OMAP: mcbsp, mcpdm, dmic, hdmi: Set dma_data at startup time
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:57 +0000 (15:05 +0300)]
ASoC: OMAP: mcbsp, mcpdm, dmic, hdmi: Set dma_data at startup time

Set the dma_data for the stream (snd_soc_dai_set_dma_data) at dai_startup
time so omap-pcm will have access to the needed information regarding to
the DMA channel earlier.
This is needed for the clean dmaengine support.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-pcm, omap-dmic: Change the use of omap_pcm_dma_data->data_type
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:56 +0000 (15:05 +0300)]
ASoC: omap-pcm, omap-dmic: Change the use of omap_pcm_dma_data->data_type

Instead of the OMAP DMA data type definition the data_type will be used to
specify the number of bits the DMA word should be configured or 0 in case
when based on the stream's format the omap-pcm can decide the needed DMA
word size.
This feature is needed for the omap-hdmi where the sDMA need to be
configured for 32bit word type regardless of the audio format used.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: OMAP: mcbsp, mcpdm, dmic: Let omap-pcm to pick the dma_type
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:55 +0000 (15:05 +0300)]
ASoC: OMAP: mcbsp, mcpdm, dmic: Let omap-pcm to pick the dma_type

omap-pcm can figure out the correct dma_type based on the stream's format.
In this way we can get rid of the plat/dma.h include from these drivers.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-mcpdm: Use platform_get_resource_* to get resources
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:54 +0000 (15:05 +0300)]
ASoC: omap-mcpdm: Use platform_get_resource_* to get resources

Get the needed resources in a correct way and avoid using defines for them.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoARM: OMAP4: hwmod_data: Add resource names to McPDM memory ranges
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:53 +0000 (15:05 +0300)]
ARM: OMAP4: hwmod_data: Add resource names to McPDM memory ranges

To help the driver to get the correct memory range to access McPDM
registers.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-pcm: Prepare to configure the DMA data_type based on stream properties
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:52 +0000 (15:05 +0300)]
ASoC: omap-pcm: Prepare to configure the DMA data_type based on stream properties

Based on the format of the stream the omap-pcm can decide alone what data
type should be used with by the sDMA.
Keep the possibility for OMAP dai drivers to tell omap-pcm if they want to
use different data type. This is needed for the omap-hdmi for example which
needs 32bit data type even if the stream format is S16_LE.

The check if (dma_data->data_type) is safe at the moment since omap-pcm
does not support 8bit samples (OMAP_DMA_DATA_TYPE_S8 == 0x00).

The next step is to redefine the meaning of dma_data->data_type to unblock
this limitation.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: OMAP: Remove sync_mode from omap_pcm_dma_data struct
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:51 +0000 (15:05 +0300)]
ASoC: OMAP: Remove sync_mode from omap_pcm_dma_data struct

The omap-pcm platform driver no longer needs this parameter to select
between ELEMENT and PACKET mode. The selection is based on the configured
packet_size.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-pcm: Select sDMA synchronization based on packet_size
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:50 +0000 (15:05 +0300)]
ASoC: omap-pcm: Select sDMA synchronization based on packet_size

Since we only have element or packet synchronization we can use the
dma_data->packet_size to select the desired mode:
if packet_size is 0 we use ELEMENT mode
if packet_size is not 0 we use PACKET mode for sDMA synchronization.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-mcbsp: Use sDMA packet mode instead of frame mode
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:49 +0000 (15:05 +0300)]
ASoC: omap-mcbsp: Use sDMA packet mode instead of frame mode

When McBSP is configured in threshold mode we can use sDMA packet mode in
all cases.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agodmaengine: omap-dma: Add support to suppress interrupts in cyclic mode
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:48 +0000 (15:05 +0300)]
dmaengine: omap-dma: Add support to suppress interrupts in cyclic mode

When requested (DMA_PREP_INTERRUPT is cleared in flags) disable all DMA
interrupts for the channel. In this mode user space does not expect
periodic reports from kernel about the progress of the audio stream.
PulseAudio for example support this type of mode.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agodmaengine: Pass flags via device_prep_dma_cyclic() callback
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:47 +0000 (15:05 +0300)]
dmaengine: Pass flags via device_prep_dma_cyclic() callback

Change the parameter list of device_prep_dma_cyclic() so the DMA drivers
can receive the flags coming from clients.
This feature can be used during audio operation to disable all audio
related interrupts when the DMA_PREP_INTERRUPT is cleared from the flags.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agodmaengine: omap: Add support for pause/resume in cyclic dma mode
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:45 +0000 (15:05 +0300)]
dmaengine: omap: Add support for pause/resume in cyclic dma mode

The audio stack used omap_stop_dma/omap_start_dma to pause/resume the DMA.
This method has been used for years on OMAP based products.
We only allow pause/resume when the DMA has been configured in cyclic mode
which is used by the audio stack.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agodmaengine: omap: Support for element mode in cyclic DMA
Peter Ujfalusi [Fri, 14 Sep 2012 12:05:44 +0000 (15:05 +0300)]
dmaengine: omap: Support for element mode in cyclic DMA

When src_maxburst/dst_maxburst is set to 0 by the users of cyclic DMA
(mostly audio) indicates that we should configure the omap DMA to element
sync mode instead of packet mode.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl: register the wm9712-codec
Eric Millbrandt [Thu, 20 Sep 2012 14:36:45 +0000 (10:36 -0400)]
ASoC: fsl: register the wm9712-codec

The mpc5200-psc-ac97 driver does not enumerate attached ac97 devices, so
register the device here.

Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl: pcm030-audio-fabric use snd_soc_register_card
Eric Millbrandt [Thu, 20 Sep 2012 14:36:44 +0000 (10:36 -0400)]
ASoC: fsl: pcm030-audio-fabric use snd_soc_register_card

Convert pcm030-audio-fabric to use the new snd_soc_register_card api
instead of the older method of registering a separate platform device.
Create the dai_link to the mpc5200_psc_ac97 platform using the device tree.
Convert the pcm030-audio-fabric driver to a platform-driver and add a
remove function.

Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl: add PPC_MPC52xx dependency to SND_POWERPC_SOC
Eric Millbrandt [Thu, 20 Sep 2012 14:36:43 +0000 (10:36 -0400)]
ASoC: fsl: add PPC_MPC52xx dependency to SND_POWERPC_SOC

mpc52xx socs do not define FSL_SOC but need SND_POWERPC_SOC defined to build
ASoC drivers.

Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: twl6040: Convert to use DAI DAPM widgets
Peter Ujfalusi [Thu, 20 Sep 2012 13:32:15 +0000 (16:32 +0300)]
ASoC: twl6040: Convert to use DAI DAPM widgets

Use DAPM mapping for stream events and give unique names for the streams.
This change also fixes the following warning:
twl6040-codec twl6040-codec: Failed to create Capture debugfs file

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: twl4030: Convert to use DAI DAPM widgets
Peter Ujfalusi [Thu, 20 Sep 2012 13:32:02 +0000 (16:32 +0300)]
ASoC: twl4030: Convert to use DAI DAPM widgets

Use DAPM mapping for stream events and give unique names for the streams.
This change also fixes the following warning:
twl4030-codec twl4030-codec: Failed to create Capture debugfs file

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoALSA: hda - add PCI identifier for Intel 5 Series/3400
Pierre-Louis Bossart [Fri, 21 Sep 2012 23:39:07 +0000 (18:39 -0500)]
ALSA: hda - add PCI identifier for Intel 5 Series/3400

Tested with LPIB delay without any issues.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - use LPIB for delay estimation
Pierre-Louis Bossart [Fri, 21 Sep 2012 23:39:06 +0000 (18:39 -0500)]
ALSA: hda - use LPIB for delay estimation

DMA Position in Buffer (DPIB) should be used for
ring buffer management, while LPIB register provides
information on the number of samples transfered on
the link. The difference between the two pieces of
information corresponds to hardware/DMA buffering.

This patch reports this difference in runtime->delay, and
removes the use of the COMBO mode on recent Intel hardware.

Credits to Takashi Iwai for an initial patch.

[rebased to for-next branch and replaced snd_printk() with
 snd_printdd() by tiwai]

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - force use of SSYNC bits
Pierre-Louis Bossart [Fri, 21 Sep 2012 23:39:05 +0000 (18:39 -0500)]
ALSA: hda - force use of SSYNC bits

SSYNC bits are typically used to start multiple
streams synchronously. It makes sense to use them
for a single stream for a more predictable startup
sequence. The transfers only start once the DMA and
FIFOs are ready. This results in a better correlation
between timestamps and number of samples played.

Credits to Kar Leong Wang for suggesting this
improvement.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda/via - don't report presence on HPs with no presence support
Herton Ronaldo Krzesinski [Fri, 21 Sep 2012 23:45:19 +0000 (20:45 -0300)]
ALSA: hda/via - don't report presence on HPs with no presence support

If headphone jack can't detect plug presence, and we have the jack in
the jack table, snd_hda_jack_detect will return the plug as always
present (as it'll be considered as a phantom jack). The problem is that
when this happens, line out pins will always be disabled, resulting in
no sound if there are no headphones connected.

This was reported as a no sound problem after suspend on
http://bugs.launchpad.net/bugs/1052499, since the bug doesn't manifests
on first initialization before the phantom jack is added, but on resume
we reexecute the initialization code, and via_hp_automute starts
reporting HP always present with the jack now on the table.

BugLink: https://bugs.launchpad.net/bugs/1052499
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Cc: <stable@vger.kernel.org> [v3.6+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - Add external mic quirk for Asus Zenbook UX31A
Oleksij Rempel [Fri, 21 Sep 2012 15:44:58 +0000 (17:44 +0200)]
ALSA: hda - Add external mic quirk for Asus Zenbook UX31A

Signed-off-by: Oleksij Rempel <bug-track@fisher-privat.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoASoC: wm8960: remove 'dres' field from platform data structure
Timur Tabi [Thu, 20 Sep 2012 18:57:27 +0000 (13:57 -0500)]
ASoC: wm8960: remove 'dres' field from platform data structure

The 'dres' field (discharge resistance for headphone outputs) is no longer
used in the driver, so remove it.

It was used in the original version of the driver when entering standby
from off, but we stopped using it when we switched from having a single
startup sequence to having separate cap and capless sequences.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoALSA: hda - use both input paths on Conexant auto parser
David Henningsson [Thu, 20 Sep 2012 13:41:21 +0000 (15:41 +0200)]
ALSA: hda - use both input paths on Conexant auto parser

On the Thinkpad W520 - and probably several other machines with
Conexant 506x chips - the Dock Mic and Mic are connected to the
same two selector nodes. This patch will make Dock Mic take one
selector node and Mic take the other, when possible.

Without the patch, both paths would take the first selector,
leading to the normal Mic's volume being controlled by
"Dock Mic Boost".
(On other machines, this could instead fixup similar problems between
Mic and Line In, for example.)

BugLink: https://bugs.launchpad.net/bugs/1037642
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb - disable broken hw volume for Tenx TP6911
David Henningsson [Thu, 20 Sep 2012 08:20:41 +0000 (10:20 +0200)]
ALSA: usb - disable broken hw volume for Tenx TP6911

While going through Ubuntu bugs, I discovered this patch being
posted and a confirmation that the patch works as expected.

Finding out how the hw volume really works would be preferrable
to just disabling the broken one, but this would be better than
nothing.

Credit: sndfnsdfin (qawsnews)
BugLink: https://bugs.launchpad.net/bugs/559939
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoDocumentation: Define the MSP Driver Device Tree bindings
Lee Jones [Tue, 31 Jul 2012 10:59:21 +0000 (11:59 +0100)]
Documentation: Define the MSP Driver Device Tree bindings

Here we add the required documentation for the new Device Tree
bindings pertaining to the MSP CPU-side DAI Driver.

Acked-by: Ola Lilja <ola.o.lilja@stericsson.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
12 years agoDocumentation: Define the MOP500 Audio Machine Driver Device Tree bindings
Lee Jones [Tue, 31 Jul 2012 10:56:51 +0000 (11:56 +0100)]
Documentation: Define the MOP500 Audio Machine Driver Device Tree bindings

Here we add the required documentation for the new Device Tree
bindings pertaining to the MOP500 Audio Machine driver.

Acked-by: Ola Lilja <ola.o.lilja@stericsson.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
12 years agoASoC: Ux500: Minor coding layout changes
Lee Jones [Tue, 21 Aug 2012 09:06:44 +0000 (10:06 +0100)]
ASoC: Ux500: Minor coding layout changes

Includes removal of duplicate debug print affirming entry into
the probe function, an unnecessary line break of a coding line
<80 chars and a white space change (unintentional tab).

Acked-by: Ola Lilja <ola.o.lilja@stericsson.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
12 years agoASoC: codecs: Enable AB8500 CODEC for Device Tree
Lee Jones [Fri, 27 Jul 2012 07:50:05 +0000 (08:50 +0100)]
ASoC: codecs: Enable AB8500 CODEC for Device Tree

We continue to allow the AB8500 CODEC to be registered via the AB8500
Multi Functional Device API, only this time we extract its configuration
from the Device Tree binary.

Acked-by: Ola Lilja <ola.o.lilja@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
12 years agoASoC: Ux500: Enable ux500 MSP driver for Device Tree
Lee Jones [Thu, 26 Jul 2012 16:07:26 +0000 (17:07 +0100)]
ASoC: Ux500: Enable ux500 MSP driver for Device Tree

Register both parts of the MSP driver from Device Tree so that they
are probed when Device Tree is enabled. Also, as there is platform
data involved, we ensure that there is allocated memory to place the
configuration into and that the correct information is extracted from
the DT binary.

Acked-by: Ola Lilja <ola.o.lilja@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
12 years agoASoC: Ux500: Enable MOP500 driver for Device Tree
Lee Jones [Thu, 26 Jul 2012 15:48:34 +0000 (16:48 +0100)]
ASoC: Ux500: Enable MOP500 driver for Device Tree

Here we ensure that the MOP500 audio driver will be probed during a
Device Tree boot. We also parse the sound node to link together the
codec, dma and the CPU-side Digital Audio Interface.

Acked-by: Ola Lilja <ola.o.lilja@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
12 years agoASoC: Ux500: Move MSP pinctrl setup into the MSP driver
Lee Jones [Fri, 14 Sep 2012 15:16:08 +0000 (16:16 +0100)]
ASoC: Ux500: Move MSP pinctrl setup into the MSP driver

In the initial submission of the MSP driver msp1 and msp3's associated
pinctrl mechanism was passed back to platform code using a plat_init()
call-back routine, but it has no place in platform code. The MSP driver
should set this up for the appropriate ports. Instead we use a use_pinctrl
identifier which is passed from platform_data/Device Tree which indicates
which ports should use pinctrl.

Acked-by: Ola Lilja <ola.o.lilja@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
12 years agoALSA: hda - avoid non-standard "Docking" name in mixers
David Henningsson [Wed, 19 Sep 2012 10:19:47 +0000 (12:19 +0200)]
ALSA: hda - avoid non-standard "Docking" name in mixers

The standard name (and what PulseAudio picks up) is "Dock Mic",
not "Docking Mic" or "Docking-Station".

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: Avoid unnecessary EP setups in prepare
Takashi Iwai [Tue, 18 Sep 2012 12:49:31 +0000 (14:49 +0200)]
ALSA: usb-audio: Avoid unnecessary EP setups in prepare

The recent fix for USB suspend breakage moved the code to set up EP
from hw_params to prepare, but it means also the EP setup might be
called multiple times unnecessarily because the prepare callback can
be called multiple times without starting the stream (e.g. OSS
emulation).

This patch adds a new flag to struct snd_usb_substream indicating
whether the setup of EP is required, and do it only when necessary,
i.e. right after hw_params or suspend.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: Move configuration to prepare.
Dylan Reid [Tue, 18 Sep 2012 16:49:48 +0000 (09:49 -0700)]
ALSA: usb-audio: Move configuration to prepare.

Move interface and endpoint configuration from hw_params to prepare
callback.  During system suspend/resume when the USB device power isn't
cycled the interface and endpoint configuration need to be set before
audio playback can continue.  Resume involves another call to prepare
but not to hw_params, moving it here allows a playing stream to continue
after resume.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: Don't require hw_params in endpoint.
Dylan Reid [Tue, 18 Sep 2012 16:49:47 +0000 (09:49 -0700)]
ALSA: usb-audio: Don't require hw_params in endpoint.

Change the interface to configure an endpoint so that it doesn't require
a hw_params struct.  This will allow it to be called from prepare
instead of hw_params, configuring it after system resume.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: set period_bytes in substream.
Dylan Reid [Tue, 18 Sep 2012 16:49:46 +0000 (09:49 -0700)]
ALSA: usb-audio: set period_bytes in substream.

Set the peiod_bytes member of snd_usb_substream.  It was no longer being
set, but will be needed to resume properly in a future commit.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoASoC: wm8961: Move device identification and reset to I2C probe
Mark Brown [Thu, 13 Sep 2012 05:31:38 +0000 (13:31 +0800)]
ASoC: wm8961: Move device identification and reset to I2C probe

This is more idiomatic as it means we verify that the device is there
prior to trying to do the card probe.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8961: Convert to direct regmap API usage
Mark Brown [Thu, 13 Sep 2012 04:53:59 +0000 (12:53 +0800)]
ASoC: wm8961: Convert to direct regmap API usage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8960: Support shared LRCLK
Mark Brown [Thu, 13 Sep 2012 03:46:58 +0000 (11:46 +0800)]
ASoC: wm8960: Support shared LRCLK

If the LRCLK is shared and the WM8960 is clock master then we should
enable the LRCM bit to tell the device that it should drive LRCLK when
either ADC or DAC is enabled rather than separately driving the two
LRCLKs.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8776: Convert to direct regmap API usage
Mark Brown [Wed, 12 Sep 2012 12:15:22 +0000 (20:15 +0800)]
ASoC: wm8776: Convert to direct regmap API usage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl: cleanup headers in pcm030-audio-fabric
Eric Millbrandt [Thu, 13 Sep 2012 21:43:13 +0000 (17:43 -0400)]
ASoC: fsl: cleanup headers in pcm030-audio-fabric

Remove unreferenced header files.

Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl: mpc5200 add missing information to snd_soc_dai_driver
Eric Millbrandt [Thu, 13 Sep 2012 21:43:12 +0000 (17:43 -0400)]
ASoC: fsl: mpc5200 add missing information to snd_soc_dai_driver

Add missing dai_driver information to avoid these runtime errors

[   16.433788] asoc: error - multiple DAI f0002c00.i2s registered with no name
[   16.453551] Failed to register DAI
[   16.461222] mpc5200-psc-i2s: probe of f0002c00.i2s failed with error -22
[   16.475242] asoc: error - multiple DAI f0002000.ac97 registered with no name
[   16.488087] mpc5200-psc-ac97 f0002000.ac97: Failed to register DAI
[   16.502222] mpc5200-psc-ac97: probe of f0002000.ac97 failed with error -22

Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl: mpc5200 combine psc_dma platform data
Eric Millbrandt [Thu, 13 Sep 2012 21:43:11 +0000 (17:43 -0400)]
ASoC: fsl: mpc5200 combine psc_dma platform data

The mpc5200_psc_ac97 and mpc5200_psc_i2s modules rely on shared platform data
with mpc5200_dma.

Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: imx-audmux: remove null check of audmux_base in audmux_read_file
Richard Zhao [Tue, 18 Sep 2012 08:38:30 +0000 (16:38 +0800)]
ASoC: imx-audmux: remove null check of audmux_base in audmux_read_file

When audmux_read_file is called, it means the driver is already
initialised successfully, so we don't need to check audmux_base.

It also fix smatch warning:
sound/soc/fsl/imx-audmux.c:78 audmux_read_file() warn: possible memory leak of 'buf'

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: imx-pcm-dma: open function failed when snd_dmaengine_pcm_open fail
Richard Zhao [Tue, 18 Sep 2012 09:20:06 +0000 (17:20 +0800)]
ASoC: imx-pcm-dma: open function failed when snd_dmaengine_pcm_open fail

snd_imx_open should return error code returned by snd_dmaengine_pcm_open.

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: imx-pcm-dma: check kzalloc return value in function snd_imx_open
Richard Zhao [Tue, 18 Sep 2012 09:20:05 +0000 (17:20 +0800)]
ASoC: imx-pcm-dma: check kzalloc return value in function snd_imx_open

It fixed smatch warning:
sound/soc/fsl/imx-pcm-dma.c:112 snd_imx_open() error: potential null dereference 'dma_data'.  (kzalloc returns null)

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Avoid recalculating the bitmask for SOC_ENUM controls
Lars-Peter Clausen [Fri, 14 Sep 2012 11:57:27 +0000 (13:57 +0200)]
ASoC: Avoid recalculating the bitmask for SOC_ENUM controls

For ENUM controls the bitmask is calculated based on the number of items.
Currently this is done each time the control is accessed. And while the
performance impact of this should be negligible we can easily do better. The
roundup_pow_of_two macro performs the same calculation which is currently done
manually, but it is also possible to use this macro with compile time constants
and so it can be used to initialize static data. So we can use it to initialize
the mask field of a ENUM control during its declaration.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8960: add support for big-endian audio samples
Timur Tabi [Fri, 14 Sep 2012 21:14:37 +0000 (16:14 -0500)]
ASoC: wm8960: add support for big-endian audio samples

PowerPC ASoC drivers frequently use the _BE variants of the SNDRV_PCM_FORMAT
macros, so we need to look for those as well.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl: remove unnecessary call to dma_unmap_single
Timur Tabi [Fri, 14 Sep 2012 21:14:36 +0000 (16:14 -0500)]
ASoC: fsl: remove unnecessary call to dma_unmap_single

Remove a call to dma_unmap_single() from the PowerPC ASoC DMA driver.  The
buffer is allocated and not actually mapped, so the unmap call doesn't
make sense.  It was probably left over from some early version of the driver.

This bug was unnoticed for so long because the DMA mapping functions normally
don't do anything on PowerPC.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>