Commit graph

13622 commits

Author SHA1 Message Date
Mark Brown
d6e2dc150b ASoC: wm8983: Convert to devm_kzalloc()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-10 16:00:02 +08:00
Mark Brown
822b4b8d63 ASoC: dapm: Add flags to regulator supplies
This will be used to enable additional control of the regulators.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-09-08 08:47:28 +08:00
David Henningsson
5fe8e1e671 ALSA: hda - Remove ignore_misc_bit
The purpose of this flag is unclear. If the problem is that some machines
have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups.

In addition, this causes jack detection functionality to be flawed on
the M31EI, where there are two jacks without jack detection (which is
properly marked as NO_PRESENCE), but due to ignore_misc_bit, these
jacks are instead being reported as being present but always unplugged.

BugLink: https://bugs.launchpad.net/bugs/939161
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-07 12:41:38 +02:00
Stephen Warren
a32826e4ae ASoC: tegra: fix maxburst settings in dmaengine code
The I2S controllers are programmed with an "attention" level of 4 DWORDs.
This must match the configuration passed to the DMA driver, so that when
they burst in data, they don't overflow the available FIFO space. Also,
the burst size is relevant to the destination for playback, and source
for capture, not vice-versa as originally written.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-09-07 09:52:02 +08:00
Takashi Iwai
6e67683d71 ALSA: Remove VOLATILE flag from chmap ctls
The VOLATILE flag was added to control elements by
snd_pcm_add_chmap_ctls() just because I didn't want to have a
side-effect of "alsactl restore".  But now the set operation doesn't
allow to change the value unless the PCM stream is in PREAPRED state,
there is no reason to keep this flag.  Let's rip it off.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:08:33 +02:00
Takashi Iwai
8d50cdc1f5 ALSA: ctxfi: Implement channel maps
Assign the multi-channel map to front PCM, and other channel map to
each other channel PCM.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:08:33 +02:00
Takashi Iwai
f49921b894 ALSA: cmipci: Implement channel mapping
Simply enable the channel map according to the h/w capability.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:08:32 +02:00
Takashi Iwai
e36e3b86c7 ALSA: Implement channel maps for standard onboard AC97 drivers
Just set the channel maps depending on the hardware availability.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:08:31 +02:00
Takashi Iwai
833a493b7e ALSA: ac97: Implement channel map workaround for ALC650
ALC650 has a channel swap option between surround and CLFE channels,
so we need to tweak the channel maps dynamically depending on the
register bit.

Now struct snd_ac97 can contain chmap pointers for playback and
capture.  The driver may store these and let ac97 driver changing the
channel mapping dynamically.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:08:30 +02:00
Takashi Iwai
53775b0d0c ALSA: hda - Fix channel maps for Nvidia 7x 8ch HDMI codecs
Some old Nvidia HDMI codecs with 8ch support only 2/8 or
2/6/8 channels and with the fixed CLFE-first map.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:08:30 +02:00
Takashi Iwai
d45e6889ee ALSA: hda - Provide the proper channel mapping for generic HDMI driver
... instead of the standard fixed channel maps.
The generic HDMI is based on the audio infoframe, and its configuration
can be selected via CA bits.  Thus we need a translation between the
CA index and the verbose channel map list.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:08:26 +02:00
Takashi Iwai
9c9a5175e6 ALSA: hda - Add standard channel maps
Although HD-audio allows pair-wise channel configurations, only the
fixed channel positions are used in this version.  In future, this can
be changed and allow user to modify the channel positions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:01:18 +02:00
Takashi Iwai
a8d372f171 ALSA: control: Fix missing VOLATILE flag at creating controls
The SNDRV_CTL_ELEM_ACCESS_VOLATILE bit flag wasn't properly inherited
at creating control elements via snd_ctl_new1().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:01:16 +02:00
Takashi Iwai
2d3391ec0e ALSA: PCM: channel mapping API implementation
This patch implements the basic data types for the standard channel
mapping API handling.

- The definitions of the channel positions and the new TLV types are
  added in sound/asound.h and sound/tlv.h, so that they can be
  referred from user-space.

- Introduced a new helper function snd_pcm_add_chmap_ctls() to create
  control elements representing the channel maps for each PCM
  (sub)stream.

- Some standard pre-defined channel maps are provided for
  convenience.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 18:01:16 +02:00
Takashi Iwai
1a6003b525 ALSA: hda - Move non-PCM check to per_pin in patch_hdmi.c
Recently the check for non-PCM stream state was added to the generic
HDMI driver code.  But this check should be done rather to each pin
instead of each converter.  Otherwise when a different converter is
assigned at the next open, the audio infoframe can be inconsistent
with the setup using the previous converter.

For fixing this issue, this patch moves the state of the current
non-PCM status from per_cvt to per_pin.  (In addition an unused
argument cvt_nid is stripped from hdmi_setup_channel_mapping())

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 17:59:19 +02:00
Takashi Iwai
1213a205f9 ALSA: usb-audio: Fix bogus error messages for delay accounting
The recent fix for the missing fine delayed time adjustment gives
strange error messages at each start of the playback stream, such as
  delay: estimated 0, actual 352
  delay: estimated 353, actual 705

These come from the sanity check in retire_playback_urb().  Before the
stream is activated via start_endpoints(), a few silent packets have
been already sent.  And at this point the delay account is still in
the state as if the new packets are just queued, so the driver gets
confused and spews the bogus error messages.

For fixing the issue, we just need to check whether the received
packet is valid, whether it's zero sized or not.

Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Cc: <stable@vger.kernel.org> [v3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 15:00:15 +02:00
Dylan Reid
57b2d68863 ASoC: samsung dma - Don't indicate support for pause/resume.
The pause and resume operations indicate that the stream can be
un-paused/resumed from the exact location they were paused/suspended.
This is not true for this driver, the pause and suspend triggers share
the same code path with stop, they flush all pending DMA transfers.
This drops all pending samples.  The pause_release/resume triggers are
the same as start, except that prepare won't be called beforehand,
nothing will be enqueued to the DMA engine and nothing will happen (no
audio).  Removing the pause flag will let apps know that it isn't
supported.  Removing the resume flag will cause user space to call
prepare and start instead of resume, so audio will continue playing when
the system wakes up.

Before removing the pause and resume flags, I tested this on an exynos
5250, using 'aplay -i'. Pause/un-pause leads to silence followed by a
write error.  Suspend/resume testing led to the same result.  Removing
the two flags fixes suspend/resume (since snd_pcm_prepare is called
again). And leads to a proper reporting of pause not supported.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-09-06 18:55:59 +08:00
Gaëtan Carlier
6d97c09c64 ASoC: imx-mc13783: use defines instead of numerical address of register
This uses already defined name of registers and makes code more readable.

Signed-off-by: Gaëtan Carlier <gcembed@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 18:47:19 +08:00
David Henningsson
298efee7f5 ALSA: hda - fix control names for multiple speaker out on IDT/STAC
For multiple speaker outs, the names were previously
"Speaker,0", "Speaker,1", "Center"/"LFE", "Speaker,3". This is
inconsistent, confusing, and is not picked up correctly by PulseAudio.
Instead use "Front", "Surround", "Center"/"LFE", "Side" which
is more standard.

BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1046734
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 12:01:55 +02:00
Takashi Iwai
ab548d2dba ALSA: hda - Fix missing Master volume for STAC9200/925x
With the commit [2faa3bf: ALSA: hda - Rewrite the mute-LED hook with
vmaster hook in patch_sigmatel.c], the former Master volume control
was converted to PCM.  This was supposed to be covered by the vmaster
control.  But due to the lack of "PCM" slave definition, this didn't
happen properly.  The patch fixes the missing entry.

Reported-by: Andrew Shadura <bugzilla@tut.by>
Cc: <stable@vger.kernel.org> [v3.4+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 10:10:11 +02:00
Wang Xingchao
2d7e887cbb ALSA: HDMI - Setup channel mapping for non_pcm audio
For HBR stream test, use straight channel mapping way.
when switched back to "speaker-test -c8", even the audio
infoframe is up-to-date, there should be correct channel mapping setup.

Signed-off-by: Wang Xingchao <xingchao.wang@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 08:50:35 +02:00
Wang Xingchao
433968da4d ALSA: HDMI - Enable HBR feature on Intel chips
HDMI channel remapping apparently effects HBR packets on Intel's chips.
For compressed non-PCM audio, use "straight-through" channel mapping.
For uncompressed multi-channel pcm audio, use normal channel mapping.

Signed-off-by: Wang Xingchao <xingchao.wang@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 08:50:33 +02:00
Wang Xingchao
72357c78b7 ALSA: HDMI - Fix channel_allocation array wrong order
The array channel_allocations[] is an ordered list, add function to get
correct order by ca_index.

Signed-off-by: Wang Xingchao <xingchao.wang@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-06 08:50:31 +02:00
Javier Martin
104c229932 ASoC: Revert 'ASoC: imx-ssi: Remove mono support'
Revert 0865a75(ASoC: imx-ssi: Remove mono support).

The bug this patch is meant to solve doesn't occur in Visstrim_M10 boards.
Furthermore, after applying this patch sound in Visstrim_M10 is played
at slower rates.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 08:44:21 +08:00
Mark Brown
e2d32ff6ce ASoC: dapm: Ensure bypass paths are suspended and resumed
Since bypass paths aren't part of DAPM streams and we may not have any
DAPM streams there may not be anything that triggers a DAPM sync for
them. Mark all input and output widgets as dirty and then sync to do so
at the end of suspend and resume.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-09-06 08:22:19 +08:00
Hebbar, Gururaja
e5ec69da24 ASoC: Davinci: McASP: add support new McASP IP Variant
The OMAP2+ variant of McASP is different from Davinci variant w.r.to
some register offset.

Changes
- Add new MCASP_VERSION_3 to identify new variant. New DT compatible
  "ti,omap2-mcasp-audio" to identify version 3 controller.
- The register offsets are handled depending on the version.

Note:
    DMA parameters (dma fifo offset) are not updated and will be done later.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 08:20:33 +08:00
Fabio Estevam
37f45cc54c ASoC: mc13783: Remove mono support
Playing a mono track on a mc13783 codec results in incorrect playback rate.

Remove mono support so that a mono track can be played correctly.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Gaëtan Carlier <gcembed@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 08:17:12 +08:00
Heather Lomond
4758be37c0 ASoC: arizona: Fix typo in 44.1kHz rates
Signed-off-by: Heather Lomond <hlomond@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 06:58:44 +08:00
Stephen Warren
03f6743375 ASoC: tegra: move platform data header
Move the Tegra+WM8903 ASoC platform data header out of
arch/arm/mach-tegra, as a pre-requisite of single zImage.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 06:29:33 +08:00
Emil Goode
5d86e25c70 ASoC: wm0010: Fix warning, use format %zu for type size_t
Fix warning by using format specifier %zu for type size_t

Sparse warning:
sound/soc/codecs/wm0010.c:411:2: warning:
        format ‘%d’ expects argument of type ‘int’,
        but argument 4 has type ‘size_t’ [-Wformat]

Signed-off-by: Emil Goode <emilgoode@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 06:22:56 +08:00
Dan Carpenter
4f3ad7956d ASoC: wm0010: unlock on error path
We're holding the wm0010->lock mutex when we goto err_core.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 06:20:14 +08:00
Fengguang Wu
58d4683286 ASoC: wm0010: Add missing IRQF_ONESHOT
FYI, there are new coccinelle warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-3.7
head:   e3523e0186
commit: e3523e0186 [95/95] ASoC: wm0010: Add initial wm0010 DSP driver

All coccinelle warnings:

+ sound/soc/codecs/wm0010.c:850:7-27: ERROR: Threaded IRQ with no primary handler requested without IRQF_ONESHOT
--
+ sound/soc/codecs/wm0010.c:660:1-7: preceding lock on line 359

vim +850 sound/soc/codecs/wm0010.c
   847			trigger = IRQF_TRIGGER_FALLING;
   848		trigger |= IRQF_ONESHOT;
   849
 > 850		ret = request_threaded_irq(irq, NULL, wm0010_irq, trigger,
   851					   "wm0010", wm0010);
   852		if (ret)
   853			dev_err(wm0010->dev, "Failed to request IRQ %d: %d\n",

Please consider folding the attached diff :-)

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-06 06:20:02 +08:00
Mark Brown
75d8f2931a Merge branch 'asoc-omap' into for-3.7 2012-09-05 20:05:11 +08:00
Peter Ujfalusi
e93c7d1bc3 ASoC: omap-mcbsp: Fix compilation error due to leftover code
Part of commit (which patches sound/soc/omap/mcbsp.c file):
8fef626 ARM/ASoC: omap-mcbsp: Remove CLKR/FSR mux configuration code

since the tree where it has been applied did not had the earlier patch:
d0db84e ASoC: omap-mcbsp: Fix 6pin mux configuration
which changed code around omap_mcbsp_6pin_src_mux().

Because of the missing part from 8fef626 the sound/soc/omap/mcbsp.c does
not compile in linux-next.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-05 20:05:02 +08:00
Takashi Iwai
14e4291721 Merge branch 'fixes' of git://git.alsa-project.org/alsa-kernel into for-next 2012-09-05 09:17:31 +02:00
Wei Yongjun
292f2b6254 ALSA: emu10k1: use list_move_tail instead of list_del/list_add_tail
Using list_move_tail() instead of list_del() + list_add_tail().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-05 09:15:12 +02:00
Wei Yongjun
3a4a7ef567 ALSA: opl4: use list_move_tail instead of list_del/list_add_tail
Using list_move_tail() instead of list_del() + list_add_tail().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-05 09:14:45 +02:00
Mark Brown
fc600432cd Linux 3.6-rc4
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
 iQEcBAABAgAGBQJQQkiRAAoJEHm+PkMAQRiGk64H/Rp67mBWom2xMmU8gul3gr7d
 MFq7dQOShoHZVyuCtKFNF+RTFkHDT2mw0ZkdszHdMkPEznIVRNklieN6GayOwj7C
 XcRb50z/C0CTvEskLOzWsaC+Rok6doOi5VCgkkZ+6N4CvWQNEqWLfWW5H6wZ7juo
 ME1xx/59GDm/4TYMUXzPI9UygptGGXvH/18n/z47FQpvL5EbAECTVt1nPX1uvn/S
 ZzdSLG8MrbK+IX+62JZqRG5M6TUC2b8ggog2cFfP20JNK0TwU9dMQPtbk2Y+LZRg
 JiUqyRUOuQJFbCgE+b1JuleJHAlsAgqIs7tkY9VfdFYfh+NQcaccWjDjdeB7Hjo=
 =Ooia
 -----END PGP SIGNATURE-----

Merge tag 'v3.6-rc4' into asoc-omap

Linux 3.6-rc4
2012-09-05 13:04:34 +08:00
Jaroslav Kysela
4266274836 ALSA: remove the main version information
Remove the main ALSA version number from the kernel ALSA driver.
The ALSA driver package release diverges from the upstream. This may
confuse users to see the same ALSA version for many kernel releases
and this version lost it's original purpose and connection.

The "ioctl" APIs have own version numbers, so the user space may check
for specific API changes only.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2012-09-04 11:38:32 +02:00
Daniel Mack
2b58fd5b31 ALSA: snd-usb: Add quirks for Playback Designs devices
Playback Designs' USB devices have some hardware limitations on their
USB interface. In particular:

 - They need a 20ms delay after each class compliant request as the
   hardware ACKs the USB packets before the device is actually ready
   for the next command. Sending data immediately will result in buffer
   overflows in the hardware.
 - The devices send bogus feedback data at the start of each stream
   which confuse the feedback format auto-detection.

This patch introduces a new quirks hook that is called after each
control packet and which adds a delay for all devices that match
Playback Designs' USB VID for now.

In addition, it adds a counter to snd_usb_endpoint to drop received
packets on the floor. Another new quirks function that is called once
an endpoint is started initializes that counter for these devices on
their sync endpoint.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Andreas Koch <andreas@akdesigninc.com>
Supported-by: Demian Martin <demianm_1@yahoo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-04 11:31:14 +02:00
Marko Friedemann
c05fce586d ALSA: USB: Support for (original) Xbox Communicator
Added support for Xbox Communicator to USB quirks.

Signed-off-by: Marko Friedemann <mfr@bmx-chemnitz.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-03 10:14:25 +02:00
Wei Yongjun
1f3b14072b ALSA: fix possible memory leak in snd_mixer_oss_build_input()
uinfo has been allocated in this function and should be
freed before leaving from the error handling cases.

spatch with a semantic match is used to found this problem.
(http://coccinelle.lip6.fr/)

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-03 10:08:28 +02:00
Josh Triplett
a03e4a66c7 ALSA: Remove the last mention of SNDRV_MAIN_OBJECT_FILE
SNDRV_MAIN_OBJECT_FILE hasn't done anything since the pre-git days, and
the only remaining reference occurs as a #define in sound/last.c.  Drop
that last mention of it.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-09-03 10:07:23 +02:00
Paul Bolle
19feb61e99 oss: remove maui_boot.h from .gitignore and dontdiff
Commit d56b9b9c46 ("The scheduled removal
of some OSS drivers") removed all traces of maui_boot.h from the tree.
Remove its entries in dontdiff and oss's .gitignore file.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2012-09-01 08:36:09 -07:00
Hebbar, Gururaja
ffb690d5aa ASoC: Davinci: evm: Fix typo in cpu dai name
Fix typo caused by recent commit (cf53756 - ASoC: davinci: davinci-pcm
does not need to be a plaform_driver)

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-31 17:47:19 -07:00
Prasad Joshi
fd4fb262b3 ASoC: spear: correct the check for NULL dma_buffer pointer
The if condition
	if (!buf && !buf->area)

checks if the buf pointer is NULL and then dereferences it again to
check if the buffer area is NULL, resulting in possible NULL
dereference.

Signed-off-by: Prasad Joshi <prasadjoshi.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-31 14:24:52 -07:00
Daniel Mack
2e4a263ca8 ALSA: snd-usb: fix cross-interface streaming devices
Commit 68e67f40b ("ALSA: snd-usb: move calls to usb_set_interface")
saved us some unnecessary calls to snd_usb_set_interface() but ignored
the fact that there is at least one device out there which operates on
two endpoint in different interfaces simultaniously.

Take care for this by catching the case where data and sync endpoints
are located on different interfaces and calling snd_usb_set_interface()
between the start of the two endpoints.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-by: Robert M. Albrecht <linux@romal.de>
Cc: stable@kernel.org [v3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-31 21:04:53 +02:00
Daniel Mack
245baf983c ALSA: snd-usb: fix calls to next_packet_size
In order to support devices with implicit feedback streaming models,
packet sizes are now stored with each individual urb, and the PCM
handling code which fills the buffers purely relies on the size fields
now.

However, calling snd_usb_audio_next_packet_size() for all possible
packets in an URB at once, prior to letting the PCM code do its job
does in fact not lead to the same behaviour than what the old code did:
The PCM code will break its loop once a period boundary is reached,
consequently using up less packets that it really could.

As snd_usb_audio_next_packet_size() implements a feedback mechanism to
the endpoints phase accumulator, the number of calls to that function
matters, and when called too often, the data rate runs out of bounds.

Fix this by making the next_packet function public, and call it from the
PCM code as before if the packet data sizes are not defined.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Cc: stable@kernel.org [v3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-31 21:03:48 +02:00
Daniel Mack
fbcfbf5f67 ALSA: snd-usb: restore delay information
Parts of commit 294c4fb8 ("ALSA: usb: refine delay information with USB
frame counter") were unfortunately lost during the refactoring of the
snd-usb driver in 3.5.

This patch adds them back, restoring the correct delay information
behaviour.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: stable@kernel.org [3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-31 21:03:08 +02:00
Pavel Roskin
03d2f44e96 ALSA: snd-usb: use list_for_each_safe for endpoint resources
snd_usb_endpoint_free() frees the structure that contains its argument.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-31 18:17:45 +02:00
Takashi Iwai
d819387ef7 ALSA: hda - Clean up redundant FG checks
Just refactoring, no functional changes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-31 07:58:28 -07:00
Takashi Iwai
08fa20ae20 ALSA: hda - Yet another fix for D3 stop-clock refcounting
The call of pm_notify callback in snd_hda_codec_free() should be with
the check of the current state whether pm_notify(false) is called or
not, instead of codec->power_on check.

For improving the code readability and fixing this inconsistency,
codec->d3_stop_clk_ok is renamed to codec->pm_down_notified, and this
flag is set only when runtime PM down is called.  The new name reflects
to a more direct purpose of the flag.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-31 07:50:28 -07:00
Takashi Iwai
5a798394c8 ALSA: cs5530: Fix resource leak in error path
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=44741

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-30 13:21:00 -07:00
Takashi Iwai
fbaf6a5a35 ALSA: korg1212: Fix reverted min/max ADC sense range
k1212MinADCSens and k1212MaxADCSens are defined wrongly.
The max must be greater than the min by obvious reason.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=46561

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-30 07:57:38 -07:00
Takashi Iwai
4b927345a3 ALSA: hda - Optimize bitfield usage in struct hda_codec
Move up a few bitfields to be packed into a single int.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-30 07:50:40 -07:00
Takashi Iwai
83012a7ccb ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE
CONFIG_SND_HDA_POWER_SAVE is no longer an experimental feature and its
behavior can be well controlled via the default value and module
parameter.  Let's just replace it with the standard CONFIG_PM.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-30 07:50:13 -07:00
Takashi Iwai
432c641e01 ALSA: hda - Fix D3 clock stop check for codecs with own set_power_state op
When a codec provides its own set_power_state op, the D3-clock-stop
isn't checked correctly.  And the recent changes for repeating the
state-setting operation isn't applied to such a codec, too.

This patch fixes these issues by moving the call of codec's own op to
the place where the generic power-set operation is done, and move the
power-state synchronization code out of
snd_hda_set_power_state_to_all() so that it can be called always at
the end of power-up/down sequence, and updates the D3 clock-stop flag
properly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-30 07:48:55 -07:00
Takashi Iwai
68467f51c1 ALSA: hda - Fix runtime PM leftover refcounts
When the HD-audio is removed, it leaves the refcounts when codecs are
powered up (usually yes) in the destructor.  For fixing the unbalance,
and cleaning up the code mess, this patch changes the following:
- change pm_notify callback to take the explicit power on/off state,
- check of D3 stop-clock and keep_link_on flags is moved to the caller
  side,
- call pm_notify callback in snd_hda_codec_new() and snd_hda_codec_free()
  so that the refcounts are proprely updated.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-30 07:48:49 -07:00
Daniel Mack
015618b902 ALSA: snd-usb: Fix URB cancellation at stream start
Commit e9ba389c5 ("ALSA: usb-audio: Fix scheduling-while-atomic bug in
PCM capture stream") fixed a scheduling-while-atomic bug that happened
when snd_usb_endpoint_start was called from the trigger callback, which
is an atmic context. However, the patch breaks the idea of the endpoints
reference counting, which is the reason why the driver has been
refactored lately.

Revert that commit and let snd_usb_endpoint_start() take care of the URB
cancellation again. As this function is called from both atomic and
non-atomic context, add a flag to denote whether the function may sleep.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Cc: stable@kernel.org [3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-30 07:46:27 +02:00
Takashi Iwai
48ee7cb8b4 ALSA: usb-audio: Remove obsoleted fields in struct snd_usb_substream
The two entries are duplicated in struct snd_usb_endpoint.
Seems forgotten in the last clean-up.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-28 16:30:02 -07:00
David Flater
1338fc97d0 ALSA: emu8000: fix emu8000 DRAM sized 512 KiB too small
v2:  Fixed result still wrong in the case of 512 KiB DRAM.  Oops.

Applicable to 3.5.3 mainline.

In emu8000.c, size_dram determines the amount of memory on the sound card by
doing write/readback tests starting at 512 KiB and incrementing by 512 KiB.
On success, detected_size is updated to the successful address and testing
continues.  On failure, the loop is immediately exited.  The resulting
detected_size is 512 KiB too small except in two special cases:

1. If there is no memory, the initial 0 value of detected_size is used, which
   is correct.
2. If the address space wraps around, detected_size is updated before the
   bailout, so the result is correct.

The patch corrects all cases and was tested with an AWE64 Gold.  Before:
  EMU8000 [0x620]: 3584 Kb on-board memory detected
  asfxload 4GMGSMT.SF2 (4174814 B) fails.
After:
  EMU8000 [0x620]: 4096 Kb on-board memory detected
  asfxload 4GMGSMT.SF2 succeeds.

I do not have a card with 512 KiB to test with, but by forcibly enabling the
added conditional I verified on the AWE64 Gold that it detects 512 KiB
(successfully reading from the first memory location) and does not hang the
card.

C.f. Bug 46451 https://bugzilla.kernel.org/show_bug.cgi?id=46451

Signed-off-by: David Flater <dave@flaterco.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-28 19:58:12 +02:00
Alexander Shiyan
0ed275eff3 ASoC: Rename ep93xx soc directory to cirrus
This patch is to rename the directory "ep93xx" in "cirrus".
Name more accurately reflects the manufacturer and allows to add
drivers not only for architecture ep93xx in this directory.
Patch not contain any functional changes.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-28 10:24:21 -07:00
Sangsu Park
3d721a34e6 ASoC: SAMSUNG: Change Kconfig to support all SAMSUNG ASoC
All SAMSUNG ASoC needs SND_SOC_SAMSUNG configuration.
This patch change Kconfig to support all SAMSUNG ASoC.

Signed-off-by: Sangsu Park <sangsu4u.park@samsung.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-28 10:17:40 -07:00
Stephen Warren
c921928661 sound: tegra_alc5632: remove HP detect GPIO inversion
Both the schematics and practical testing show that the HP detect GPIO
is high when the headphones are plugged in. Hence, the snd_soc_jack_gpio
should not specify to invert the signal.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Andrey Danin <danindrey@mail.ru>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: <stable@vger.kernel.org> # v3.4 v3.5
2012-08-28 10:14:01 -07:00
Takashi Iwai
a184d4e459 Merge branch 'for-linus' into for-next
Need to merge the fixes regarding EPSS.

Conflicts:
	sound/pci/hda/hda_codec.c
2012-08-28 09:26:59 -07:00
Takashi Iwai
c36b5b054a ALSA: hda - Don't trust codec EPSS bit for IDT 92HD83xx & co
These codecs seem reporting EPSS but require longer delay for the
proper D3 transition.  For example, D3_STOP_CLOCK_OK bit won't be set
correctly even after D3.

In this patch, codec->epss flag is overridden for avoid the
misbehavior.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-28 09:26:16 -07:00
Takashi Iwai
983f6b9381 ALSA: hda - Avoid unnecessary parameter read for EPSS
EPSS parameter should be static, so we can read it once and remember.
This also allows more easily to override the wrong EPSS capability
reported from a codec by changing the flag in the codec
initialization step.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-28 09:25:57 -07:00
Takashi Iwai
5d908ab941 ALSA: hda - Make clear built-in driver optimization
Use unsigned int to make clear that the codes required only for
modules will be reduced by the compiler optimization.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-28 09:12:09 -07:00
Hebbar, Gururaja
3e3b8c3415 ASoC: Davinci: McASP: add device tree support for McASP
Add device tree probe for McASP driver.

Note:
DMA parameters are not populated from DT and will be done later.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 11:12:09 -07:00
Hebbar, Gururaja
896f66b7de ASoC/ARM: Davinci: McASP: split asp header into platform and audio specific
Davinci McASP header & driver are shared by few OMAP platforms (like
TI81xx, AM335x). Splitting asp header into Davinci platform specific
header and Audio specific header helps to share them across platforms.

Audio specific defines is moved to to common
<linux/platform_data/davinci_asp.h> so that the header can be
accessed by all related platforms.

While here, correct the header usage (remove multiple header
re-definitions and unused headers) and remove platform names from
structures comments and enum. Also some some coding style errors.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Acked-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 11:12:09 -07:00
Hebbar, Gururaja
f08095a408 ASoC: davinci: davinci-pcm does not need to be a plaform_driver
Same as the commit 518de86 (ASoC: tegra: register 'platform' from DAIs,
get rid of pdev). It makes davinci-pcm not a platform_driver but helper
to register "platform", so that the platform_device for davinci-pcm can
be saved completely.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 11:12:08 -07:00
Hebbar, Gururaja
c24fdc886f ASoC: tlv320aic3x: Add device tree bindings
Device tree support for tlv320aic3x CODEC driver.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 10:25:58 -07:00
Sachin Kamat
2a9a9c876f ASoC: ad1836: Use module_spi_driver
module_spi_driver makes the code simpler by eliminating
module_init and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 09:55:28 -07:00
Sachin Kamat
a5c8878017 ASoC: wm8770: Use module_spi_driver
module_spi_driver makes the code simpler by eliminating
module_init and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 09:55:28 -07:00
Sachin Kamat
9bb280a2eb ASoC: tlv320aic26: Use module_spi_driver
module_spi_driver makes the code simpler by eliminating
module_init and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-27 09:55:27 -07:00
Markus Bollinger
8c3f1b1cbc ALSA: pcxhr: Add 8 new sound cards
add new sound cards VX442HR VX442e PCX442HR PCX442e VX822HR VX822e PCX822HR and PCX822e

Signed-off-by: Markus Bollinger <bollinger@digigram.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-27 16:10:29 +02:00
Mark Brown
b10be23b88 Merge branch 'asoc-omap' into for-3.7 2012-08-25 13:31:39 -07:00
Peter Ujfalusi
db61550931 ASoC: omap-mcbsp: Single macro for st channel volume set/get
Since we always need to have set and get callbacks for McBSP sidetone it
makes sense to combine the two macro to create the two callbacks.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:30:27 -07:00
Peter Ujfalusi
8996a31c58 ASoC: omap-mcbsp: Use macro to create the McBSP2/3 ST controls
To remove duplicated code from the driver.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:30:23 -07:00
Peter Ujfalusi
8a88df4cda ASoC: omap-mcbsp: Only print warning if the st_data is missing for the port
When asked to add the ST controls warn only if the st_data is missing.
In this way we do not block the otherwise functional card to probe.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:30:19 -07:00
Peter Ujfalusi
28739dfcff ASoC: omap-mcbsp: Check mcbsp->id instead of cpu_dai->id when adding ST controls
In ddevice tree booted kernel all device have unique name and their device
id is set to 0.
Use the mcbsp->id for checking to decide which control set we should add
for McBSP sidetone handling.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:30:11 -07:00
Mark Brown
32c50a31aa ASoC: wm0010: Move resource acquisition to device probe
This is more idimatic for modern drivers. Also fix a couple of return
codes while we're at it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:23:51 -07:00
Mark Brown
bf9d323722 ASoC: wm0010: Tweak diagnostic output
Make it scan better by writing ROM with capitals.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:23:45 -07:00
Mark Brown
4f3c3c1b32 ASoC: wm0010: Don't double free reset GPIO
We are using devm_ to allocate the GPIO so it will be freed automatically.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:23:42 -07:00
Mark Brown
d3fd716e82 ASoC: wm0010: Set idle_bias_off
Doesn't make any practical difference given that _SUSPEND and _OFF are
equivalent for the driver but it's what we're really doing.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:23:40 -07:00
Mark Brown
1470bfacb6 ASoC: wm0010: Add dummy widget for CLKIN
Make it easier to integrate the management of the clock supplying the
WM0010 with DAPM by providing a dummy supply widget which supplies the
interface widgets, this can be connected to clock outputs by the machines.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:23:37 -07:00
Mark Brown
6df3198635 ASoC: wm0010: Enable 44.1kHz support
With appropriate clocking configuration the WM0010 driver supports 44.1kHz
audio; enable that.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:23:34 -07:00
Mark Brown
f9372c9c06 ASoC: samsung: Add hookup of WM0010 on Speyside
The Speyside platform by default has a WM0010 fitted.  Now that we have
a public driver hook it up in the machine integration.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:53:15 +01:00
Mark Brown
1549c34bfd ASoC: wm0010: Fix passthrough routing
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:51:33 +01:00
Mark Brown
4e872a4682 ASoC: dapm: Don't force card bias level to be updated
Commit 412312 (ASoC: dapm: Make sure all dapm contexts are updated) means
that any DAPM context being updated will have the bias level automatically
set, including the card. We can't safely do this as the card callbacks are
called for each device context and so the management of the card bias is
more complex. Several multi-component cards rely on this behaviour.

Skip updates during the asynchronous run entirely. We should really do them
in the synchronous section but it's not 100% clear which values to pick as
the different DAPM contexts may have different bias levels.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:51:09 +01:00
Mark Brown
d8c3bb911f ASoC: dapm: Make sure we update the bias level for CODECs with no op
Commit 412312 (ASoC: dapm: Make sure all dapm contexts are updated)
ensures that we update non-CODEC DAPM contexts but means that if a
CODEC has no set_bias_level() operation it'll not be updated. Fix
that.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-25 13:50:21 +01:00
Takashi Iwai
56244d0868 ALSA: cmi8328: Fix build error with CONFIG_GAMEPORT=n
sound/isa/cmi8328.c: In function 'snd_cmi8328_remove':
  sound/isa/cmi8328.c:416:24: error: 'cmi' undeclared (first use in this function)
  sound/isa/cmi8328.c:416:24: note: each undeclared identifier is reported only once for each function it appears in
  make[3]: *** [sound/isa/cmi8328.o] Error 1

Reported-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-24 07:54:16 +02:00
Mengdong Lin
5d6147f101 ALSA: hda - bug fix on references without checking CONFIG_SND_HDA_POWER_SAVE
The patch to support runtime PM introduced a bug:
Module parameter 'power_save_controller', and the codec flag 'd3_stop_clk'
'd3_stop_clk_ok' are defined only when HDA power save is enabled in config. But
there are references to them without checking macro CONFIG_SND_HDA_POWER_SAVE.

This patch is to fix the bug.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-24 07:22:42 +02:00
Dimitris Papastamos
e3523e0186 ASoC: wm0010: Add initial wm0010 DSP driver
The WM0010 is a compact digital signal processor that has been
highly optimised for low-power audio applications.  Extensive memory
resources and core optimisation allow the device to manage all audio
processing algorithms efficiently and autonomously, while the host
processor sleeps or performs other tasks.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-23 16:12:12 +01:00
Mark Brown
52ca1138fa ASoC: wm8994: Update for new WM1811 variants
There are some new WM1811 variants distinguished by both revision and
cust_id which need slightly different handling.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-23 16:01:48 +01:00
Mengdong Lin
b8dfc46241 ALSA: hda - add runtime PM support
Runtime PM can bring more power saving:
- When the controller is suspended, its parent device will also have a chance
  to suspend.
- PCI subsystem can choose the lowest power state the controller can signal
  wake up from. This state can be D3cold on platforms with ACPI PM support.
And runtime PM can provide a gerneral sysfs interface for a system policy
manager.

Runtime PM support is based on current HDA power saving implementation. The user
can enable runtime PM on platfroms that provide acceptable latency on transition
from D3 to D0.

Details:
- When both power saving and runtime PM are enabled:
  -- If a codec supports 'stop-clock' in D3, it will request suspending the
     controller after it enters D3 and request resuming the controller before
     back to D0. Thus the controller will be suspended only when all codecs are
     suspended and support stop-clock in D3.
  -- User IO operations and HW wakeup signal can resume the controller back to
     D0.
- If runtime PM is disabled, power saving just works as before.
- If power saving is disabled, the controller won't be suspended because the
  power usage counter can never be 0.

More about 'stop-clock' feature:
If a codec can support targeted pass-through operations in D3 state when there
is no BCLK present on the link, it will set CLKSTOP flag in the supported power
states and report PS-ClkStopOk when entering D3 state. Please refer to HDA spec
section 7.3.3.10 Power state and 7.3.4.12 Supported Power State.

[Fixed CONFIG_PM_RUNTIME dependency in hda_intel.c by tiwai]

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-23 14:21:32 +02:00
Mark Brown
2bbf6078dc Merge branch 'asoc-omap' into for-3.7 2012-08-22 20:19:01 +01:00
Peter Ujfalusi
11dd586421 ASoC: omap-mcbsp: Add device tree bindings
Device tree support for McBSP modules on OMAP2+ SoC.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 20:17:18 +01:00
Peter Ujfalusi
dc26df5245 ASoC: omap-mcbsp: Remove cpu_is_omap* checks from the code
We can use the has_ccr flag to replace the cpu_is_omap* checks.
This provides future proof implementation and we do not need to update the
code if new OMAP revision starts to use the McBSP driver.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 20:17:12 +01:00
Peter Ujfalusi
8d3c090965 ASoC: omap-mcbsp: Remove unused defines
NUM_LINKS is no longer in use by the code.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 20:17:11 +01:00
Peter Ujfalusi
8fef6263ea ARM/ASoC: omap-mcbsp: Remove CLKR/FSR mux configuration code
Remove the feature to configure the CLKR/FSR mux on McBSP port with 6pin
configuration.
When moving to devicetree these callback can no longer be used in a clean
way anymore.
If a board require to change the 6pin port to work in 4pin setup it needs
to set up the mux in the board file.
For OMAP2/3:
u32 devconf0;

/* McBSP1 CLKR/FSR signal to be connected to CLKX/FSX pin */
devconf0 = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
devconf0 |=  OMAP2_MCBSP1_CLKR_MASK | OMAP2_MCBSP1_FSR_MASK;
omap_ctrl_writel(devconf0, OMAP2_CONTROL_DEVCONF0);

For OMAP4:
u32 mcbsp_pad;

/* McBSP4 CLKR/FSR signal to be connected to CLKX/FSX pin */
mcbsp_pad = omap4_ctrl_pad_readl(OMAP2_CONTROL_DEVCONF0);
mcbsp_pad |=  ((1 << 31) | (1 << 30));
omap4_ctrl_pad_writel(mcbsp_pad, OMAP2_CONTROL_DEVCONF0);

In case when the kernel is booted with DT blob the pinctrl-single will be
provided as soon as it is enabled on the platform.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 20:17:05 +01:00
Peter Ujfalusi
fca04aea36 ASoC: am3517evm: Do not configure McBSP1 CLKR/FSR signal muxing
The muxing is done at board level, no need to do it in the ASoC machine
driver.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 20:17:04 +01:00
Peter Ujfalusi
f199131a8f ARM/ASoC: omap-mcbsp: Move OMAP2+ clock parenting code to ASoC driver
Move the McBSP CLKS re-parenting code to ASoC driver from
arch/arm/mach-omap2.
The call fort the re-parenting has been already limited to OMAP2+ SoC in
the ASoC driver. There is no longer need to have callback function for it.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 20:16:55 +01:00
Mark Brown
02e7947699 ASoC: wm_hubs: Allow configuration of MICBIAS power up delay via pdata
Sometimes the analogue circuitry connected to the microphone needs some
time to settle after power up. Allow systems to configure this delay in
the platform data, the driver will then insert the required delay during
power up of paths that involve the microphone.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 19:00:37 +01:00
Mark Brown
20bac1f3f4 ASoC: wm_hubs: Add trace showing semantics of the DCS update
Aids diagnostics.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 19:00:33 +01:00
Mark Brown
363947d7d9 ASoC: wm_hubs: Use explicit casts for converting to signed
Should be no behaviour change.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 19:00:28 +01:00
Mark Brown
3eadd88a37 ASoC: wm9712: Provide TLV information for capture boost controls
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-22 17:55:03 +01:00
Takashi Iwai
8a5354140a ALSA: hda - Call snd_hda_jack_report_sync() generically in hda_codec.c
Instead of calling the jack sync in the init callback of each codec,
call it generically at initialization and resume.  By calling it at
the last of resume sequence, a possible race between the jack sync and
the unsol event enablement in the current code will be closed, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-22 16:48:17 +02:00
David Henningsson
042b92c185 ALSA: hda - Do not set GPIOs for speakers on IDT if there are no speakers
This fixes an issue with a machine where there were no speakers,
but GPIO0 had to be data=1 for the headphone to be functioning.

I'm not sure if we need a more advanced patch to solve all possible cases,
but if so, this patch would still provide a minor optimisation.

BugLink: https://bugs.launchpad.net/bugs/1040077
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-22 16:26:05 +02:00
Sachin Kamat
1be437fa53 ASoC: soc-compress: Remove unused variable
codec_dai is not used in the function.

sound/soc/soc-compress.c: In function ‘soc_compr_set_params’:
sound/soc/soc-compress.c:156:22: warning:
unused variable ‘codec_dai’ [-Wunused-variable]

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-21 15:09:44 +01:00
Vinod Koul
9d2667a910 ASoC: compress - fix code alignment
Reported-by: Fengguang Wu <wfg@linux.intel.com>
Signed-off-by: Namarta Kohli <namartax.kohli@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-21 15:09:44 +01:00
Ondrej Zary
f993348746 ALSA: introduce snd-cmi8328: C-Media CMI8328 driver
Introduce snd-cmi8328 driver for C-Media CMI8328-based sound cards, such as
AudioExcel AV500.

It supports PCM playback and capture (full-duplex) through wss_lib, gameport,
OPL3 and MPU401. The AV500 card has onboard Dream wavetable synth connected
to the MPU401 port and Aux 1 input internally which works too.
The CDROM interface is not supported (as the drivers for these CDROMs were
removed from the kernel some time ago).

A separate driver is needed because CMI8328 is completely different chip to
CMI8329/CMI8330. It's configured by magic registers (there's no PnP). Sound is
provided by a real WSS codec (CS4231A) and the SB part is just a SB Pro
emulation (for DOS games, useless for Linux).

When SB is enabled, the CMI8328 chip disables access to the WSS codec,
emulates SoundBlaster on one side and outputs sound data to the codec - so SB
and WSS can't work together with this card. The WSS codec can do full duplex
by itself so there's no need for crazy things like snd-cmi8330 does
(combining SB and WSS parts into one driver).

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-21 07:30:46 +02:00
Ondrej Zary
53e1719f3d ALSA: snd-als100: fix suspend/resume
snd_card_als100_probe() does not set pcm field in struct snd_sb.
As a result, PCM is not suspended and applications don't know that they need
to resume the playback.

Tested with Labway A381-F20 card (ALS120).

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-21 07:29:40 +02:00
Tejun Heo
43829731dd workqueue: deprecate flush[_delayed]_work_sync()
flush[_delayed]_work_sync() are now spurious.  Mark them deprecated
and convert all users to flush[_delayed]_work().

If you're cc'd and wondering what's going on: Now all workqueues are
non-reentrant and the regular flushes guarantee that the work item is
not pending or running on any CPU on return, so there's no reason to
use the sync flushes at all and they're going away.

This patch doesn't make any functional difference.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Mattia Dongili <malattia@linux.it>
Cc: Kent Yoder <key@linux.vnet.ibm.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: Bryan Wu <bryan.wu@canonical.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-wireless@vger.kernel.org
Cc: Anton Vorontsov <cbou@mail.ru>
Cc: Sangbeom Kim <sbkim73@samsung.com>
Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: Petr Vandrovec <petr@vandrovec.name>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Avi Kivity <avi@redhat.com>
2012-08-20 14:51:24 -07:00
Takashi Iwai
ddf83485d7 Merge branch 'for-linus' into for-next
Conflicts:
	sound/pci/hda/hda_codec.c

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 22:14:26 +02:00
Vinod Koul
c514a9119a ASoC: mid-x86 - add support for compressed streams
Signed-off-by: Namarta Kohli <namartax.kohli@intel.com>
Signed-off-by: Ramesh Babu K V <ramesh.babu@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-20 20:50:39 +01:00
Namarta Kohli
1245b7005d ASoC: add compress stream support
This patch adds the support to parse the compress dai's and then also adds the
soc-compress.c file while handles the compress stream operations, mostly analogus
to what is done in the soc-pcm.c and aditional handling of the compress
opertaions

Signed-off-by: Namarta Kohli <namartax.kohli@intel.com>
Signed-off-by: Ramesh Babu K V <ramesh.babu@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-20 20:50:38 +01:00
Julia Lawall
bc72d26bdb ASoC: am3517evm: fix error return code
It was forgotten to initialize ret to the result of calling
snd_soc_dai_set_sysclk, unlike at the other calls in the same function.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-20 20:44:36 +01:00
Julia Lawall
b18e93a493 ASoC: ux500_msp_i2s: better use devm functions and fix error return code
Remove unnecessary calls to devm_kfree and replace iounmap by devm_iounmap
(and use resource_size for the third argument).  These changes make it
possible to remove the error-handling code at the end of
ux500_msp_i2s_init_msp, and all of the gotos become direct returns.

In the case of the second call to devm_kzalloc, the return variable ret was
not initialized.  Here it is changed to a direct return of -ENOMEM.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-20 20:44:28 +01:00
Julia Lawall
db8b624d55 ASoC: imx-sgtl5000: fix error return code
Initialize ret on the second call to imx_audmux_v2_configure_port so that
the subsequent test checks that result and not the previous one.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-20 20:44:19 +01:00
Takashi Iwai
535b6c51fe ALSA: hda - Fix leftover codec->power_transition
When the codec turn-on operation is canceled by the immediate
power-on, the driver left the power_transition flag as is.
This caused the persistent avoidance of power-save behavior.

Cc: <stable@vger.kernel.org> [v3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 21:25:22 +02:00
Takashi Iwai
f0b433e9f3 ASoC: Additional updates for 3.6
A batch more bugfixes, all driver-specific and fairly small and
 unremarkable in a global context.  The biggest batch are for the newly
 added Arizona drivers.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJQLsRjAAoJEFJkBDiqVpZ4HI0QALREeI4Hq7xGxOEPsY9QV+Eh
 0zs+Q2KnlGKlm87cm3PfsIpI+atf8WGVAO5/nTk7TPewvPbkvJp8p6zgzaMwvq1r
 5TqTdwTOwg0UuoiFakmET6x7mHmYvks0U1uAm5VwPzdNbahvHLArCsRgufXtNsEz
 4M9FmLL/+e9r/n3EKXMoNYab4krvmyVft5QCUxFkHgfcbfv95KIn9So54T5H/jG9
 fzhmKjMMGUja7Q7nLtpr6OHkJLZd1iPTu8xdjsQB7htNW7P8KPaseVt0oAUXNkXS
 K0WhTjqtQbDtm9KfrifY0vpdWNLbTi1R+vnm6FwQiDN0fZ1Tm18992veNZfaOAUE
 QWlGzt5Av2sCGwNXA55SF0cLo1lbxD1kwGN9o45zztGw0wW5qjkH9VF92XkpqISh
 zdE+bQoQk7I9UBtwql/YtY17QLn3KUBoDlHDaOQqrmQYXW69J8RnnjUMskoO/2Tu
 LTMPWLPnudVXIcfW+C/j1GSBN0l0q3FHGBYVfoCWwXShwjIr3Fzg8hhtHwL056/J
 YhEykqucR4iDJaOpjSxKiiKWjFfMQBkzipuTL6p/vqQJ3fPTp9LjQTABUnzsGqYQ
 mIx9W3BqZ1q/LiZYPYEExiIChdlE3g6+aFZfukk0sQQ0/dpipC/0qXRWMb8Kks6W
 18HFsHL5jX5s5e8qG5ac
 =X06H
 -----END PGP SIGNATURE-----

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

ASoC: Additional updates for 3.6

A batch more bugfixes, all driver-specific and fairly small and
unremarkable in a global context.  The biggest batch are for the newly
added Arizona drivers.
2012-08-20 21:26:04 +02:00
Takashi Iwai
099d53c308 ALSA: hda - Add missing ifdef CONFIG_SND_HDA_POWER_SAVE to tracepoints
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 18:04:40 +02:00
Andi Kleen
8dea9d382a ALSA: lto, sound: Fix export symbols for !CONFIG_MODULES
The new LTO EXPORT_SYMBOL references symbols even without CONFIG_MODULES.
Since these functions are macros in this case this doesn't work.
Add a ifdef to fix the build.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:53:10 +02:00
Takashi Iwai
65fcd41d37 ALSA: hda - Check the power state when power_save option is changed
... by calling the newly introduced snd_hda_power_sync().

I had to reimplement a wheel for adding the trigger at changing the
parameter -- the parameter set ops is overwritten to pass the integer
parameter, then trigger the power-state sync.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:46:06 +02:00
Takashi Iwai
c376e2c72b ALSA: hda - Implement snd_hda_power_sync() helper function
Added a new helper function snd_hda_power_sync() to trigger the
power-saving manually.  It's an inline function call to
snd_hda_power_save() helper function.

Together with this addition, snd_hda_power_up*() and
snd_hda_power_down() functions are inlined to a call of the same
snd_hda_power_save() helper function.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:46:05 +02:00
Takashi Iwai
fa2f5bf096 Merge branch 'topic/ca0132-fix' into for-linus
This is a series of fixes for CA0132, especially the missing SPDIF I/O
and the mixer build errors.
2012-08-20 11:38:31 +02:00
David Henningsson
c41999a239 ALSA: hda - don't create dysfunctional mixer controls for ca0132
It's possible that these amps are settable somehow, e g through
secret codec verbs, but for now, don't create the controls (as
they won't be working anyway, and cause errors in amixer).

Cc: stable@kernel.org
BugLink: https://bugs.launchpad.net/bugs/1038651
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:33:23 +02:00
Takashi Iwai
b244d33560 ALSA: hda - Add tracepoints at snd_hda_power_up/down entrances.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:24:29 +02:00
Ondrej Zary
6f0fa66051 ALSA: snd-ad1816a: Implement suspend/resume
Implement suspend/resume support for AD1816 chips.
Tested with Terratec SoundSystem Base-1.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:12:56 +02:00
Ondrej Zary
c86b6b452a ALSA: snd-ad1816a: remove useless struct snd_card_ad1816a
struct snd_card_ad1816a is only set but the values are never used then.
Removing it allows struct snd_card's private_data to be used for
struct snd_ad1816a, simplifying the code.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:10:39 +02:00
Julia Lawall
c86b93628e ALSA: sound/ppc/snd_ps3.c: fix error return code
Initialize ret before returning on failure, as done elsewhere in the
function.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:01:14 +02:00
Julia Lawall
b17cbdd85f ALSA: sound/pci/rme9652/hdspm.c: fix error return code
Convert a nonnegative error return code to a negative one, as returned
elsewhere in the function.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 11:00:51 +02:00
Julia Lawall
ae970eb45d ALSA: sound/pci/sis7019.c: fix error return code
Initialize rc before returning on failure, as done elsewhere in the
function.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 10:57:51 +02:00
Julia Lawall
4d8ce1c996 ALSA: sound/pci/ctxfi/ctatc.c: fix error return code
Initialize err before returning on failure, as done elsewhere in the
function.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 10:57:30 +02:00
Julia Lawall
0c23e46eb4 ALSA: sound/atmel/ac97c.c: fix error return code
In the first case, the second test of whether retval is negative is
redundant.  It is dropped and the previous and subsequent tests are
combined.

In the second case, add an initialization of retval on failure of ioremap.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 10:56:01 +02:00
Julia Lawall
aaf265c22e ALSA: sound/atmel/abdac.c: fix error return code
Initialize retval before returning from a failed call to ioremap.

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

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 10:53:13 +02:00
Dan Carpenter
94f3ec6b22 sound: oss/sb_audio: prevent divide by zero bug
Speed comes from get_user() in audio_ioctl().  We use it to set the "s"
variable before clamping it to valid values so it could lead to a divide
by zero bug.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-20 10:24:21 +02:00
Mark Brown
6bf6d1af86 Merge remote-tracking branch 'asoc/topic/blackfin' into for-3.7 2012-08-17 23:26:44 +01:00
Scott Jiang
d14a13d3d9 ASoC: bf5xx-ad1836: convert to use snd_soc_register_card
Cpu dai and codec name are passed in through platform data.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-17 23:25:17 +01:00
Mark Brown
28c42c2830 ASoC: wm9712: Fix inverted capture volume
The capture volume increases with the register value so it shouldn't be
flagged as inverted.

Reported-by: Christoph Fritz <chf.fritz@googlemail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-17 22:43:18 +01:00
Mark Brown
ccf795847a ASoC: wm9712: Fix microphone source selection
Currently the microphone input source is not selectable as while there is
a DAPM widget it's not connected to anything so it won't be properly
instantiated. Add something more correct for the input structure to get
things going, even though it's not hooked into the rest of the routing
map and so won't actually achieve anything except allowing the relevant
register bits to be written.

Reported-by: Christop Fritz <chf.fritz@googlemail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2012-08-17 22:42:14 +01:00
Mark Brown
45a690f6bc ASoC: wm8994: Add bytes controls for DRC
If DRC coefficients are not configured via platform data then add bytes
controls for them instead so they can be configured by applications. This
is the normal means of controlling things like this for newer systems, we
maintain compatibility with platform data to avoid disruption to existing
systems.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-17 22:40:53 +01:00
Mark Brown
939d5044b1 ASoC: wm5102: Remove DRC2
It will be removed from future device revisions.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-17 22:38:27 +01:00
Mark Brown
a3150f0917 ASoC: wm5102: Add AEC routing control
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-17 22:32:59 +01:00
David Henningsson
5e68fb3cab ALSA: hda - Don't send invalid volume knob command on IDT 92hd75bxx
Instead of blindly initializing a volume knob widget, first check
that there actually is a volume knob widget.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-16 14:14:56 +02:00
Takashi Iwai
e9ba389c5f ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream
A PCM capture stream on usb-audio causes a scheduling-while-atomic
BUG, as reported in the bugzilla entry below.  It's because
snd_usb_endpoint_start() is called at first at trigger START for a
capture stream, and this function contains the left-over EP
deactivation codes.  The problem doesn't happen for a playback stream
because the function is called at PCM prepare time, which can sleep.

This patch fixes the BUG by moving the EP deactivation code into the
PCM prepare callback.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=46011
Cc: <stable@vger.kernel.org> [v3.5+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-16 08:04:07 +02:00
Mark Brown
1837ce352d Merge remote-tracking branch 'asoc/topic/omap' into for-3.7 2012-08-15 17:14:04 +01:00
Peter Ujfalusi
152c6e56f6 ASoC: Remove obsolete OMAP3 machine drivers
The new omap-twl4030 handles the boards used the following drivers:
igep0020, omap3beagle, omap3evm and overo.
Remove these drivers since they are mostly identical and we already have
drop in replacement for all of them.

Note: Earlier patch added the needed code for the board files to retain the
audio support for boards I can identify that used one of the removed
drivers.
If I missed something please take a look at for example:
arch/arm/mach-omap2/board-omap3beagle.c on how add support for omap-twl4030
audio.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-15 17:10:00 +01:00
Peter Ujfalusi
fff8491c8b ASoC: omap-twl4030: Simple machine driver for TI SoC with twl4030 codec
Machine driver to handle simple devices using twl4030 as audio codec.
The driver supports the following boards:
- Beagleboard or Devkit8000
- Gumstix Overo or CompuLab CM-T35/CM-T3730
- IGEP v2
- OMAP3EVM

All of these boards can be switched to use this driver since their setup is
identical.
Devicetree support for the omap-twl4030 machine driver also implemented.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-15 17:09:59 +01:00
Takashi Iwai
1c86845268 ALSA: hda - Add 3stack-automute model to AD1882 codec
Added a simple support of automute for the front HP jack to AD1882
stack model.  Such an addition is basically an exception -- we really
want to avoid the static quirk codes, but AD1882 parser isn't still
ready for moving to the BIOS auto-parser yet.  So, as a quick fix, I
merged it for now.

In near future, we really need the big clean up of patch_analog.c to
move on to the auto-parser...

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-15 11:50:05 +02:00
Takashi Iwai
c7561cd804 ALSA: PCI: Replace CONFIG_PM with CONFIG_PM_SLEEP
Otherwise we may get compile warnings due to unused functions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-14 18:12:04 +02:00
Takashi Iwai
7ccbde57ce ALSA: hda - Fix possible compile warnings regarding CONFIG_PM
Replace with a proper ifdef check of CONFIG_PM_SLEEP in hda_intel.c.
But other places in HD-audio driver are still marked with CONFIG_PM,
since these can be called for power-saving even without
CONFIG_PM_SLEEP.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-14 18:11:51 +02:00
Takashi Iwai
3bdcff70b6 ALSA: lx6464es: Add a missing error check
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=44541

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-14 17:42:11 +02:00
David Henningsson
265d931a9e ALSA: hda - Fix 'Beep Playback Switch' with no underlying mute switch
Some Conexant devices (e g CX20590) have no mute capability on
their Beep widgets.
This patch makes sure we don't try setting mutes on those widgets.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-14 10:22:31 +02:00
Mark Brown
12022a7853 ASoC: jack: Always notify full jack status
Don't just notify for the bits we've updated, notify the full state of the
jack otherwise users might get confused by misleading reports.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-13 20:47:58 +01:00
Mark Brown
17c3f7e8f3 ASoC: wm5110: Add missing input PGA routes
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-13 13:27:30 +01:00
Mark Brown
14ebd8a8c1 ASoC: wm5102: Add missing input PGA routes
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-13 13:27:29 +01:00
Wang Xingchao
088c820b73 ALSA: hda - fix Copyright debug message
As spec said, 1 indicates no copyright is asserted.

Signed-off-by: Wang Xingchao <xingchao.wang@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-13 10:02:01 +02:00
Wang Xingchao
6152597971 ALSA: hda - show ICT/KAE control bits
Enable two debug options for S/PDIF Converter Control.
KAE: Keep Alive Enable; ICT: IEC Coding Type.

Signed-off-by: Wang Xingchao <xingchao.wang@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-13 10:01:29 +02:00
Sachin Kamat
61f5d61ef9 ASoC: Samsung: Fix build error
Fixes the following build error:
In file included from arch/arm/mach-exynos/include/mach/dma.h:24:0,
		from arch/arm/plat-samsung/include/plat/dma-ops.h:17,
		from arch/arm/plat-samsung/include/plat/dma.h:128,
		from sound/soc/samsung/pcm.c:23:
arch/arm/plat-samsung/include/plat/dma-pl330.h:106:8:
			error: redefinition of ‘struct s3c2410_dma_client’
arch/arm/plat-samsung/include/plat/dma.h:40:8: note: originally defined here
make[3]: *** [sound/soc/samsung/pcm.o] Error 1

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Sachin Kamat <sachin.kamat@samsung.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-10 18:07:20 +01:00
Jerry Snitselaar
3876566a36 ASoC: core: remove unused variable in soc_probe() in linux-next
With commit 28d528c8 "ASoC: core: Remove pointless error on card
registration failure", the variable ret is no longer used in
soc_probe() and generates an unused variable warning during a build.

Signed-off-by: Jerry Snitselaar <dev@snitselaar.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-10 17:57:03 +01:00
Mengdong Lin
e037cb4a54 ALSA : hda - bug fix on checking the supported power states of a codec
The return value of snd_hda_param_read() is -1 for an error, otherwise
it's the supported power states of a codec.

The supported power states is a 32-bit value. Bit 31 will be set to 1
if the codec supports EPSS, thus making "sup" negative. And the bit
28:5 is reserved as "0".
So a negative value other than -1 shall be further checked.

Please refer to High-Definition spec 7.3.4.12 "Supported Power
States", thanks!

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-10 14:11:58 +02:00
David Henningsson
14bc9c6dc6 ALSA: hda - Fix panned "Beep Playback Switch"
When "Beep Playback Switch" had a different value on left and right
channels (such as muting left but not right, or vice versa), this
could result in the right channel being ignored.

This patch enables beep to be sounding from right channel only, and
also give correct result back to userspace (e g amixer).

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-10 14:10:20 +02:00
Dan Carpenter
de64c0ee7d ALSA: cs46xx - signedness bug in snd_cs46xx_codec_read()
This function returns its own error codes instead of normal negative
error codes.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-10 12:11:21 +02:00
Mark Brown
b545dd924b ASoC: bells: Add machine driver for Wolfson Bells boards
The Wolfson Bells board takes submodules for various audio functions but
since the system integrations are virtually identical for most of them we
can support the overwhemling majority from the same machine driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 19:34:30 +01:00
Mark Brown
94237f8e8e ASoC: wm5110: Enable output clocks
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 19:34:30 +01:00
Mark Brown
c665d1a8c4 ASoC: wm5102: Enable output clocks
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 19:34:29 +01:00
Mark Brown
cbd840dade ASoC: arizona: Implement OPCLK support
Arizona devices support two output system clocks. Provide support for
configuring these via set_sysclk(). Once the clock API is more useful
we should migrate over to that.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 19:34:28 +01:00
Mark Brown
28d528c8db ASoC: core: Remove pointless error on card registration failure
If we fail to register the card we should say why somewhere else so there's
no point in repeating the same thing with less information.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 19:34:28 +01:00
Mark Brown
fb099cb712 ASoC: core: Upgrade the severity of probe deferral errors to dev_err()
In the past when ASoC had a custom probe deferral mechanism people
complained about the logspam it generated and didn't want to know about
the fact that we were doing probe deferral so all the error messages for
it were at dev_dbg(), making diagnostics hard. Now that we have probe
deferral as an accepted thing and it's generating log messages anyway
there's no need to worry about this so upgrade the severity of all the
probe deferral sources to dev_err() so that they are displayed by default.

Also add one for missing aux_devs since there wasn't one.

Reported-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 19:34:04 +01:00
James Ralston
144dad99ef ALSA: hda_intel: Add Device IDs for Intel Lynx Point-LP PCH
This patch adds the Intel HD Audio Device IDs for the Intel Lynx Point-LP PCH

Signed-off-by: James Ralston <james.d.ralston@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-09 18:42:42 +02:00
Takashi Iwai
7b03d1d9c0 Merge branch 'topic/hda-probe-defer' into for-next
Fix a build error when CONFIG_SND_HDA_PATCH_LOADER isn't set.
2012-08-09 17:41:44 +02:00
Takashi Iwai
97c6a3d17b ALSA: hda - Fix forgotten ifdef CONFIG_SND_HDA_PATCH_LOADER
The firmware callback must be protected by that ifdef.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-09 17:41:01 +02:00
Takashi Iwai
5f1890897c Merge branch 'topic/hda-probe-defer' into for-next
This branch fixes the stall during probing the HD-audio driver when
the specified "patch" firmware doesn't exist.  It's basically a long-
standing issue, but mostly harmless until the recent rework of
firmware loader base code.
2012-08-09 16:30:13 +02:00
Takashi Iwai
5cb543dba9 ALSA: hda - Deferred probing with request_firmware_nowait()
For processing the firmware handling properly for built-in kernels,
implement an asynchronous firmware loading with
request_firmware_nowait().  This means that the codec probing is
deferred when the patch option is specified.

Tested-by: Thierry Reding <thierry.reding@avionic-design.de>
Reviewed-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-09 16:28:51 +02:00
Takashi Iwai
4918cdab49 ALSA: hda - Load firmware in hda_intel.c
This is a preliminary work for the deferred probing for
request_firmware() errors at init.

This patch moves the call of request_firmware() to hda_intel.c, and
call it in the earlier stage of probing rather than
azx_probe_continue().

Tested-by: Thierry Reding <thierry.reding@avionic-design.de>
Reviewed-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-09 16:28:19 +02:00
Takashi Iwai
d34e4e00ad ALSA: platform: Check CONFIG_PM_SLEEP instead of CONFIG_PM
When CONFIG_PM is set but CONFIG_PM_SLEEP is unset,
SIMPLE_DEV_PM_OPS() ignores the given functions, and this leads to
compile warnings.

For avoiding this, simply check CONFIG_PM_SLEEP instead of CONFIG_PM.

Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-09 15:47:15 +02:00
Chris Rattray
15676937e6 ASoC: wm8994: Add missing dapm routes for WM8958 rev A
Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 14:21:47 +01:00
Mark Brown
52c0eee332 ASoC: wm8962: Don't duplicate bias level management in resume
The core will bring the bias level up for us since we use idle_bias_off,
duplicating this may be harmful.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 14:11:10 +01:00
Scott Jiang
8b5eae137b ASoC: bfin: fix memory leak in sport3 controller driver
Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 14:08:59 +01:00
Hebbar, Gururaja
10884347f1 ASoC: McASP: Convert driver to use Runtime PM API
* Add Runtime PM support to McASP host controller.
  * Use Runtime PM API to enable/disable McASP clock.

This was tested on AM18x Board using suspend/resume

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 14:06:10 +01:00
Hebbar, Gururaja
8f24549979 ASoC: Davinci: McASP: remove unused header include
Defines or parameters from <mach/mux.h> isn't used anywhere. Hence
remove the header include.

Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 14:06:10 +01:00
Vaibhav Bedia
0d62427572 ASoC: Davinci: McASP: Flush the FIFO before enabling
FIFO should be flushed before it is enabled for the first time.
This fixes the I/O errors reported by the ASoC core on a fresh boot

Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 14:05:47 +01:00
David Henningsson
94c142a160 ALSA: hda - Fix pop noise in headphones on S3 for Asus X55A, X55V
To turn off pin control for the pin was tested, and helped against
this issue.

BugLink: https://bugs.launchpad.net/bugs/1034779
Tested-by: Chih-Hsyuan Ho <chih.ho@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-09 11:00:40 +02:00
Linus Torvalds
6666cabf5a Sound fixes for 3.6-rc2
Containing only a few really small/trivial fixes.
 The only urgent fix is a regression fix of HDMI codec probing,
 introduced in 3.6-rc1.  The rest are HD-audio specific fixes and
 a copule of minor bug fixes in PCM core and the old emu10k1.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQIcBAABAgAGBQJQIiwbAAoJEGwxgFQ9KSmkT2wP/0U1sCg8TQxEICKfPL8/ODP9
 ATsr++nsvwTxem8wB8YG3Q7IMyOd7b1ZT5f7suWGiVG4PE2Sc4/loyTfcp/MQ9AL
 hEyt27RGa1/vF9rke3bdw4v8CyscG/72jBgmtKHsmTR2dNDFfoupDpGwjGjy81M6
 kJpkFQ8gfgt8SEzY0fjMP2KkcIQRdo02xBD0LD+rfROmMdTPTHrPcLL9VsNWQajv
 DV6hrRCs93Md23g7E4QjTcSURzRuIdj9xPV5beyKlNmBXltFuKRuBkbEZP80q308
 UjsgSorudEQt7nir079KBlFymeb1FPur76xfpH0wutwwDv43jDVeXbfyXZnHTtAy
 3kIvZK9BXsfAYVgAjuCr39XMTy7DNwvDpzJ137tB1g5qJ3VdHbOLDiV1SKwemYA3
 oKsWo08vWB76Vd53v18XfgM5QsKnlRi0eB6KFEYW1rFH5W/s2tssho1BLMNVrvc8
 28DymZ4xyO28JQr7C9kvbPuUNLG0nQF3y7rgQm+qtLTkZqYOhkfhqT5F5myeM6k2
 eb0PuTTxxiJGJHza2a8/hGctg60GPsBCc++ErEB5MsZ+B1PvOr+4NjQezBmU45r3
 akQV7c9p+3OUS3adUO7g0RDI94mShGq1KJV89X6khS/7yFZd0WhpeAlMYHgMxPHd
 BdafYlndCnZIZTZrxqAQ
 =bt0I
 -----END PGP SIGNATURE-----

Merge tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "Containing only a few really small/trivial fixes.  The only urgent fix
  is a regression fix of HDMI codec probing, introduced in 3.6-rc1.  The
  rest are HD-audio specific fixes and a copule of minor bug fixes in
  PCM core and the old emu10k1."

* tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hda - Fix double quirk for Quanta FL1 / Lenovo Ideapad
  ALSA: hda - Fix ugly debug prints with CONFIG_SND_VERBOSE_PRINTK=y
  ALSA: hda - remove redundant auto quirks for conexant 506x
  ALSA: hda - remove quirk for Dell Vostro 1015
  ALSA: hda - add dock support for Thinkpad X230
  ALSA: hda - Fix regression of HDMI codec probing
  ALSA: hda - add dock support for Thinkpad T430s
  ALSA: emu10k1: Avoid access to invalid pages when period=1
  ALSA: PCM: Fix possible memory leaks in the error path
2012-08-08 19:59:52 +03:00
Takashi Iwai
8e13fc1c5f ALSA: hda - Add missing SPDIF I/O setup for CA0132
CA0132 driver had some codes to handle the S/PDIF I/O, but the actual
setups of pins and converters were missing.  Now the pins are added.

Also, fixed a few points triggering invalid codec verbs and mixer
elements since the digital I/O audio widgets on CA0132 have no amp.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-08 17:27:50 +02:00
Takashi Iwai
27ebeb0b1b ALSA: hda - Use the standard PCM ops for CA0132
Now with the workaround using codec->pcm_format_first flag, we can
clean up the home-baked codes in patch_ca0132.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-08 17:25:02 +02:00
Takashi Iwai
55cf87fe0e ALSA: hda - Fix superfluous "-in" suffix from CA0132 capture items
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-08 17:15:55 +02:00
Takashi Iwai
ed36081350 ALSA: hda - Add codec->pcm_format_first flag
Introduced a new flag to set up the PCM stream format at first before
the stream_id and channel tag.  Some codecs (e.g. CA0132) seem
preferring this over stream_id -> format order.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-08 17:12:52 +02:00
Fabio Estevam
0865a75d41 ASoC: imx-ssi: Remove mono support
Playing a mono track results in incorrect playback rate, ie, the audio
is played at a faster rate.

Remove mono support in the driver by setting 'channes_min' to dual-channel
and this allows mono tracks to be played correctly.

Reported-by: Gaëtan Carlier <gcembed@gmail.com>
Tested-by: Gaëtan Carlier <gcembed@gmail.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-08 14:31:22 +01:00
Fabio Estevam
48a08bab30 ASoC: mxs: Fix the name of the SoC family
SND_SOC_MXS_SGTL5000 is used on MXS boards, so fix the SoC family name.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-08 12:15:10 +01:00
David Henningsson
012e7eb1e5 ALSA: hda - Fix double quirk for Quanta FL1 / Lenovo Ideapad
The same ID is twice in the quirk table, so the second one is not used.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Cc: <stable@vger.kernel.org> [v3.2+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-08 09:03:13 +02:00
Takashi Iwai
709aea6b05 ALSA: hda - Fix ugly debug prints with CONFIG_SND_VERBOSE_PRINTK=y
When CONFIG_SND_VERBOSE_PRINTK=y is set, the debug print in
hda_auto_parser.c looks really ugly like:

  ALSA sound/pci/hda/hda_auto_parser.c:331    mono: mono_out=0x0
  ALSA sound/pci/hda/hda_auto_parser.c:334    dig-out=0x12/0x0
  ALSA sound/pci/hda/hda_auto_parser.c:335    inputs:
  ALSA sound/pci/hda/hda_auto_parser.c:339  Mic=0x11ALSA sound/pci/hda/hda_auto_parser.c:339  Line=0x10
  ALSA sound/pci/hda/hda_auto_parser.c:341
  ALSA sound/pci/hda/hda_auto_parser.c:343    dig-in=0x13

Better to put one item at each line.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-07 18:10:31 +02:00
Fabio Estevam
730963f819 ASoC: mxs-saif: Use devm_clk_get()
Using devm_clk_get can make the code simpler and smaller.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-07 15:10:50 +01:00
Peter Ujfalusi
5f800080ca ASoC: core: Set dapm->idle_bias_off for DAIs not mapped with a codec
The idle_bias_off flag is not configured for DAIs not mapped with a codec.
This causes the pm counter to be increased at probe time for the CPU dai
which unbalances the pm counter handling.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-07 15:09:58 +01:00
Sachin Kamat
209ffe19ff ASoC: cs42l52: Remove duplicate inclusion of slab.h header file
slab.h header file was included twice.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-07 15:09:25 +01:00
Peter Ujfalusi
d0db84e713 ASoC: omap-mcbsp: Fix 6pin mux configuration
The check for the mux_signal callback was wrong which prevents us to
configure the 6pin port's FSR/CLKR signal mux.

Reported-by: CF Adad <cfadad@rocketmail.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org (3.4+)
2012-08-07 15:04:02 +01:00
David Henningsson
bb10b09a8e ALSA: hda - remove redundant auto quirks for conexant 506x
Now that the auto model is the default, these quirks are redundant
and can be removed.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-07 14:14:16 +02:00
David Henningsson
e9fc83cb2e ALSA: hda - remove quirk for Dell Vostro 1015
This computer is confirmed working with model=auto on kernel 3.2.
Also, parsing fails with hda-emu with the current model.

Cc: stable@kernel.org (3.2+)
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-07 14:14:09 +02:00
Felix Kaechele
c8415a48fc ALSA: hda - add dock support for Thinkpad X230
As with the ThinkPad Models X230 Tablet and T530 the X230 needs a qurik to
correctly set up the pins for the dock port.

Signed-off-by: Felix Kaechele <felix@fetzig.org>
Cc: <stable@vger.kernel.org> [v3.2+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-07 08:02:49 +02:00
Sachin Kamat
f062e2b641 ASoC: tpa6130a2: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:36 +01:00
Sachin Kamat
cee4fcfa9d ASoC: cs42l51: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:35 +01:00
Sachin Kamat
a8af02cf62 ASoC: max98095: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:35 +01:00
Sachin Kamat
2be59418f7 ASoC: wm8974: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:35 +01:00
Sachin Kamat
3c010e60ee ASoC: wm8960: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:35 +01:00
Sachin Kamat
d0b2d4fabb ASoC: adau1373: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:35 +01:00
Sachin Kamat
5c86ea44bb ASoC: wm8903: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:35 +01:00
Sachin Kamat
8b08eb28c7 ASoC: wm8961: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:34 +01:00
Sachin Kamat
794836b959 ASoC: wm8940: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:34 +01:00
Sachin Kamat
3a4bfd88af ASoC: wm2000: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:34 +01:00
Sachin Kamat
a9418ddca6 ASoC: wm2200: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:34 +01:00
Sachin Kamat
07c9c32be0 ASoC: wm8955: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:34 +01:00
Sachin Kamat
2342a07f2c ASoC: max98088: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:34 +01:00
Sachin Kamat
0b34ac810a ASoC: wm8978: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:33 +01:00
Sachin Kamat
f6ec139f2d ASoC: lm4857: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:33 +01:00
Sachin Kamat
0ecbbb4fe5 ASoC: ak4671: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:33 +01:00
Sachin Kamat
28285b96c9 ASoC: wm8971: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:33 +01:00
Sachin Kamat
4abdc8c8fd ASoC: max9850: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:33 +01:00
Sachin Kamat
beb22de07e ASoC: adau1701: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:33 +01:00
Sachin Kamat
63a47a7544 ASoC: tlv320dac33: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:32 +01:00
Sachin Kamat
0ead1136bd ASoC: sta32x: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:32 +01:00
Sachin Kamat
fd39d14b96 ASoC: tlv320aic3x: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:32 +01:00
Sachin Kamat
5e383f53e8 ASoC: cs4270: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:32 +01:00
Sachin Kamat
38ece8db99 ASoC: wm8991: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:32 +01:00
Sachin Kamat
96124c2910 ASoC: wm9090: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:32 +01:00
Sachin Kamat
a3627e9c0a ASoC: max9877: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:31 +01:00
Sachin Kamat
3b09efd1de ASoC: tlv320aic32x4: Use module_i2c_driver
module_i2c_driver makes the code simpler by eliminating module_init
and module_exit calls.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-06 15:20:30 +01:00
Takashi Iwai
8dfaa57391 ALSA: hda - Fix regression of HDMI codec probing
The commit c4bfe94a causes a regression on some codecs at probing.
Since this was just a workaround to shut up a kernel warning, it'd be
better to revert and fix properly.  So we ended up with re-adding the
cleanup callback.

Tested-and-reported-by: Matt Horan <matt@matthoran.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-06 14:52:44 +02:00
Philipp A. Mohrenweiser
4407be6ba2 ALSA: hda - add dock support for Thinkpad T430s
Add a model/fixup string "lenovo-dock", for Thinkpad T430s, to allow
sound in docking station.

Tested on Lenovo T430s with ThinkPad Mini Dock Plus Series 3

Cc: stable@kernel.org
Signed-off-by: Philipp A. Mohrenweiser <phiamo@googlemail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-06 13:16:08 +02:00
Andy Shevchenko
793ea49c47 ALSA: print small buffers via %*ph[C]
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-08-06 11:09:50 +02:00
Mark Brown
a0f1e98b34 ASoC: imx-ssi: Say if we fail to register a second AC'97 bus
Saves anyone wondering what happened if they run into this error.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-04 12:18:02 +01:00
Mark Brown
1427cc37b6 ASoC: sta529: Staticise non-exported codec driver struct
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:04:01 +01:00
Mark Brown
689185b78b ASoC: wm9712: Fix name of Capture Switch
Help UIs associate it with the matching gain control.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:04:00 +01:00
Mark Brown
9a37eae230 ASoC: wm9712: Fix funky indentation
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:04:00 +01:00
Fabio Estevam
ad3ab1bba9 ASoC: imx-ssi: Use devm functions
Using devm_ functions can make the code simpler and smaller.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:59 +01:00
Daniel Mack
02286190f3 ASoC: Add reset-gpio DT property to cs4270 driver
In the process of moving over from static board files to the device
tree, reset pins of peripheral reset pins should be handled by their
corresponding drivers.

Add a reset-gpio DT property to the cs4270 driver, and de-assert it
before probing the chip. The logic could be augmented some day to
re-assert it when codec is put to suspend.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:59 +01:00
Daniel Mack
85d07e4d62 ASoC: add DT bindings for cs4270
Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:58 +01:00
Chris Rattray
d9f34df782 ASoC: wm8994: enable mic and short detect debounce.
Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:57 +01:00
Mark Brown
d95e933730 ASoC: ab8500: Remove pointless cast
There's never any need to cast away from void.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
2012-08-03 23:03:57 +01:00
Mark Brown
7435d4eec7 ASoC: wm8994: Fix some indentation issues
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:57 +01:00
Mark Brown
a7892c35cf ASoC: wm_hubs: Rename calibrate_dc_servo()
Really we're enabling it here and the name will become very confusing
shortly.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:57 +01:00
Mark Brown
fae4efa23a ASoC: wm_hubs: Factor out DC servo readback code
It's currently only used in one place but another user will be added
shortly and there's an argument it's clearer anyway.

Also add support for readback in mode 1, though it's not currently used.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:57 +01:00
Mark Brown
99af79dff5 ASoC: wm8994: Ensure we get a notification on startup for jackdet
Since jackdet only reports deltas it won't generate an interrupt on startup
when a jack is not present. This doesn't make a difference to userspace
but does mean we don't generate a notification via the internal notifier
chains. Fix that by scheduling a work to poll the chip after the clock is
enabled. Use an extremely large timeout since there's no urgency and we
don't want to report a false negative.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:56 +01:00
Mark Brown
8cb8e83bfa ASoC: wm_hubs: Move CODEC stored in private data into wm_hubs
Further wm_hubs code will use this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:56 +01:00
Mark Brown
acaf24f015 ASoC: jack: Always update jack state even for noop changes
Now that DAPM is very cheap for most updates we've no need to avoid trying
to run it so always notify even if we don't think there are any changes.
This avoids potential issues with bootstrapping state like the pin state
or other notifiers when there's nothing in the jack.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
2012-08-03 23:03:56 +01:00
Peter Ujfalusi
5ef75e710b ASoC: omap-abe-twl6040: Add device tree support
When the board boots with device tree the driver will receive the name of the
card, DAPM routing map, phandle for the audio components described in the dts
file, mclk speed, and the possibility of detecting the jack detection.

The card will be set up based on this information.
Since the routing is provided via DT we can mark the card fully routed so
core can take care of disconnecting the unused pins.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviwed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:56 +01:00
Lee Jones
0dcd47426a ASoC: ux500: Strengthen error checking after memory allocation
Currently there is no out-of-memory error checking after attempting
to allocate memory for the ux500_msp or ux500_msp_i2s_drvdata data
structures. Instead we go about populating them regardless. This
patch applies the necessary error checking to prevent a panic.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:55 +01:00
Mark Brown
fbfe69836c ASoC: wm8994: Implement support for self-oscillation mode in the FLL
The FLLs in the WM8994 series devices can be started without any reference
being supplied, mainly for use in analogue bypass cases. Implement support
for this mode.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:55 +01:00
Sachin Kamat
0651322bfc ASoC: isabelle: Remove version.h header file inclusion
version.h header file inclusion is no longer needed for this file.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-03 23:03:55 +01:00