Commit Graph

15808 Commits

Author SHA1 Message Date
Fabio Estevam 7c647af43f ASoC: sgtl5000: Use i2c_get_clientdata()
We should use i2c_get_clientdata() to get the codec private structure.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 16:06:36 +01:00
Mark Brown 9c24b16722 ASoC: wm8962: Restore device state after reset in runtime resume
After the device has been reset we need to repeat the same
initialisation we do on probe to make sure that the device is in
a known state.

Tested-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-10 13:50:44 +01:00
Mark Brown 902a75cdc4 Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linus 2013-06-10 10:28:51 +01:00
Mark Brown 4351ac5b9f Merge remote-tracking branch 'asoc/fix/tlv320aic3x' into asoc-linus 2013-06-10 10:28:50 +01:00
Mark Brown ed75019204 Merge remote-tracking branch 'asoc/fix/cs42l52' into asoc-linus 2013-06-10 10:28:49 +01:00
Mark Brown 56f1275b85 Merge remote-tracking branch 'asoc/fix/core' into asoc-linus 2013-06-10 10:28:49 +01:00
Mark Brown 97e0002aab Merge remote-tracking branch 'asoc/fix/arizona' into asoc-linus 2013-06-10 10:28:48 +01:00
Fabio Estevam 9e13f34588 ASoC: sgtl5000: Let the codec acquire its clock
On a mx6qsabrelite board the following error happens on probe:

sgtl5000: probe of 0-000a failed with error -5
imx-sgtl5000 sound.13: ASoC: CODEC (null) not registered
imx-sgtl5000 sound.13: snd_soc_register_card failed (-517)
platform sound.13: Driver imx-sgtl5000 requests probe defer

Prior to reading the codec ID we need to turn the SYS_MCLK clock, so let's
enable the codec clock inside sgtl5000_i2c_probe().

Also remove the codec clock enable/disable functions from the machine driver.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-10 10:26:23 +01:00
Mark Brown 915b2c750e Merge branch 'topic/fsl' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-sgtl5000 2013-06-10 10:26:16 +01:00
Stefan Richter 94a87157cd firewire: introduce fw_driver.probe and .remove methods
FireWire upper layer drivers are converted from generic
    struct driver.probe() and .remove()
to bus-specific
    struct fw_driver.probe() and .remove().

The new .probe() adds a const struct ieee1394_device_id *id argument,
indicating the entry in the driver's device identifiers table which
matched the fw_unit to be probed.  This new argument is used by the
snd-firewire-speakers driver to look up device-specific parameters and
methods.  There is at least one other FireWire audio driver currently in
development in which this will be useful too.

The new .remove() drops the unused error return code.

Although all in-tree drivers are being converted to the new methods,
support for the old methods is left in place in this commit.  This
allows public developer trees to merge this commit and then move to the
new fw_driver methods.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Acked-by: Clemens Ladisch <clemens@ladisch.de> (for sound/firewire/)
Cc: Peter Hurley <peter@hurleysoftware.com> (for drivers/staging/fwserial/)
2013-06-09 18:15:00 +02:00
Andreas Irestål 2894770ec1 ASoC: tlv320aic3x: Remove deadlock from snd_soc_dapm_put_volsw_aic3x()
When calling snd_soc_dapm_sync(), it eventually tries to lock the same mutex
already locked in snd_soc_dapm_put_volsw_aic3x() and a deadlock occurs. By
moving the mutex unlock to just before snd_soc_dapm_sync(), this deadlock is
prevented. This problem was introduced in Linux 3.5

Signed-off-by: Andreas Irestål <Andreas.Irestal@axis.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-07 17:57:16 +01:00
Mark Brown 4616274d33 ASoC: dapm: Treat DAI widgets like AIF widgets for power
Even though they are virtual widgets DAI widgets still get counted for the
DAPM context power management so we can't just use the active state to
check if they should be powered as they may not be part of a complete path.

Instead split them into input and output widgets and do the same power
checks as we perform on AIFs.

Reported-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-07 15:54:50 +01:00
Nicolin Chen d74e9e7090 ASoC: wm8962: Add device tree binding
Document the device tree binding for the WM8962 codec, and modify the
driver to extract platform data from the device tree, if present.

Based on work of WM8903 by Stephen Warren <swarren@nvidia.com>

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-07 10:35:17 +01:00
Wang Xingchao 99a2008d0b ALSA: hda - Add power-welll support for haswell HDA
For Intel Haswell chip, HDA controller and codec have
power well dependency from GPU side. This patch added support
to request/release power well in audio driver. Power save
feature should be enabled to get runtime power saving.

There's deadlock when request_module(i915) in azx_probe.
It looks like:
device_lock(audio pci device) -> azx_probe -> module_request
(or symbol_request) -> modprobe (userspace) -> i915 init ->
drm_pci_init -> pci_register_driver -> bus_add_driver -> driver_attach ->
which in turn tries all locks on pci bus, and when it tries the one on the
audio device, it will deadlock.

This patch introduce a work to store remaining probe stuff, and let
request_module run in safe work context.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-06-06 17:31:56 +02:00
Takashi Iwai 5c90680e42 ALSA: hda - Move azx_first_init() into azx_probe_continue()
This is a preliminary work for the upcoming Haswell HDMI audio fixes.

azx_first_init() function can be safely called after the f/w loader,
since the f/w loader doesn't require the sound hardware initialization
beforehand.  Moving it into azx_probe_continue() cleans up the code
flow a bit.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-06-06 17:31:52 +02:00
Wang Xingchao c67e2228b7 ALSA: hda - Fix runtime PM check
The device can support runtime PM no matter whether it support
signal wakeup or not. For some chips like Haswell which doesnot
support PME by default, this patch let haswell Display HD-A controller
enter runtime suspend, and bring more power saving whith power-well
feature enabled.

Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-06-06 17:31:47 +02:00
Nicolin Chen e75a52c672 ASoC: WM8962: Create default platform data structure
Embed a copy of struct wm8962_pdata in stuct wm8962_priv
so that there's no need to check validity of pdata any more.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-06 14:26:29 +01:00
Takashi Iwai 63e51fd708 ALSA: hda - Don't take unresponsive D3 transition too serious
When a codec is powered off, some systems don't respond properly after
D3 FG transition, while the driver still expects the response and
tries to fall back to different modes (polling and single-cmd).  When
the fallback happens, the driver stays in that mode, and falling back
to the single-cmd mode means it'll loose the unsol event handling,
too.

The unresponsiveness at D3 isn't too serious, thus this fallback is
mostly superfluous.  We can gracefully ignore the error there so that
the driver keeps the normal operation mode.

This patch adds a new bit flag for codec read/write, set in the power
transition stage, which is notified to the controller driver via a new
bus->no_response_fallback flag.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-06 14:20:19 +02:00
Takashi Iwai e7ecc27e52 ALSA: hda - Introduce bit flags to snd_hda_codec_read/write()
snd_hda_codec_read(), snd_hda_codec_write() & co take the argument
"direct" that indicates whether the given NID is a direct reference or
an indirect reference.  However, the indirect reference is practically
unimplemented and never exists.  And moreover, we don't need the
indication of indirect reference at this high level, as NID can be
represented in 16bit values at this point.

Meanwhile, there are some cases where it'd be nice to give some
operational options to these functions.  So, we can reuse this
argument as a new bit flag!  Pretty frugal, eh?

All callers so far pass zero to this argument, thus there is no
behavior change by this replacement.

The real usage of this new bit option will be added in the following
patches.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-06 14:11:14 +02:00
Takashi Iwai 36bb00d4b2 ALSA: hda - Drop hard dependency on CONFIG_SND_DYNAMIC_MINORS
Currently HDMI codec driver sets the hard dependency (reverse
selection) on CONFIG_SND_DYNAMIC_MINORS because the recent codecs may
support more than two PCMs.  But, this doesn't mean that we need
always this option, since there can be a single PCM stream even with
the modern codecs.

This patch drops the hard dependency again but give more sensible
error message when no enough PCMs are available due to the lack of
this option.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-06 12:21:20 +02:00
Mark Brown 3722dc8ebf ASoC: max98090: Guard runtime PM callbacks
Otherwise the functions will be defined but unreferenced when runtime PM
is disabled, generating warnings.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-06 09:59:13 +01:00
Mark Brown 2bdc1bb2b4 ASoC: sgtl5000: Make device cache only when powered off
When the regulators have been disabled mark the device as cache only so
that we don't try to interact with the hardware.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 19:38:15 +01:00
Barry Song bf7c6e6ccb ASoC: omap-hdmi-codec: make the driver common for other SoCs
to support HDMI on CSR SiRFprimaII and atlasVI, we need one more HDMI pseudo
codec, rather than add a new driver, we can make omap HDMI codec common for
other SoCs as well. then the omap-hdmi codec becomes a generic HDMI pseudo-
codec as HDMI audio features depend on HDMI specification not on SoCs.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 16:54:55 +01:00
Charles Keepax 6dc6a3f81e ASoC: arizona: Hookup SYSCLK to inputs and noise generators
All sources and sinks should enable SYSCLK.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 15:46:01 +01:00
Charles Keepax ee4b7c7fe0 ASoC: arizona: Correct AEC loopback enable
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 15:45:42 +01:00
Takashi Iwai 2c38d990fb ALSA: hda/via - Use standard snd_hda_shutup_pins()
Just a minor clean up.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-05 15:25:18 +02:00
Takashi Iwai c9e34d1525 Merge branch 'for-linus' into for-next
* for-linus: (778 commits)
  ALSA: usb-audio - Fix invalid volume resolution on Logitech HD webcam c270
  ALSA: usb-audio - Apply Logitech QuickCam Pro 9000 quirk only to audio iface
  ALSA: hda/via - Clean up duplicated codes
  ALSA: hda/via - Fix wrongly cleared pins after suspend on VT1802
  ALSA: hda - Add keep_eapd_on flag to generic parser
  ALSA: hda - Allow setting automute/automic hooks after parsing
  ALSA: hda/via - Disable broken dynamic power control
  ALSA: usb-audio: fix Roland/Cakewalk UM-3G support
  ALSA: hda - Add headset quirk for two Dell machines
  ALSA: hda - add dock support for Thinkpad T431s
  ALSA: sis7019: fix error return code in sis_chip_create()
  ASoC: cs42l52: fix default value for MASTERA_VOL.
  ASoC: wm8994: check for array index returned
  ASoC: wm8994: Fix reporting of accessory removal on WM8958
  ASoC: wm8994: use the correct pointer to get the control value
  Linux 3.10-rc3
  ipc/sem.c: Fix missing wakeups in do_smart_update_queue()
  score: remove redundant kcore_list entries
  ASoC: wm5110: Correct DSP4R Mixer control name
  ARC: lazy dcache flush broke gdb in non-aliasing configs
  ...
2013-06-05 15:21:29 +02:00
Anisse Astier 02b504d9d8 ALSA: hda - add mic fixup for ALC269VB on Ordissimo EVE2
This fixes the internal and external mic on Ordissimo EVE2,  also known
as Malata PC-B1303.

We still don't know how to detect mic jack like Realtek's windows
driver.

Signed-off-by: Anisse Astier <anisse@astier.eu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-05 12:24:16 +02:00
Takashi Iwai 11e7064f35 ALSA: usb-audio - Fix invalid volume resolution on Logitech HD webcam c270
USB audio driver spews an error message when probing Logitech HD
webcam c270:
  ALSA mixer.c:1300 usb_audio: Warning! Unlikely big volume range (=6144), cval->res is probably wrong.
  ALSA mixer.c:1304 usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 1536/7680/1

Obviously the device needs a fixed volume resolution (cval->res = 384)
like other Logitech devices.

Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=821735

Reported-and-tested-by: Cristian Rodríguez <crrodriguez@opensuse.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-05 08:35:26 +02:00
Stephen Warren 249e66c326 ASoC: tegra: add runtime PM to resume functions
Tegra HW needs clocks etc. active when touching registers. Make sure they
are active during resume, by calling pm_runtime_get_sync() before touching
HW.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-04 20:47:11 +01:00
Marek Vasut dd4d2d6dfb ASoC: sgtl5000: Fix VAG_POWER enabling/disabling order
The VAG_POWER must be enabled after all other bits in CHIP_ANA_POWER
and disabled before any other bit in CHIP_ANA_POWER. See the SGTL5000
datasheet (Table 31, BIT 7, page 42-43). Failing to follow this order
will result in ugly loud "POP" noise at the end of playback.

To achieve such order, use the _PRE and _POST DAPM widgets to trigger
the power_vag_event, where the event type check has to be fixed
accordingly as well.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-04 18:46:57 +01:00
Takashi Iwai 8eafc0a161 ALSA: usb-audio - Apply Logitech QuickCam Pro 9000 quirk only to audio iface
... instead of applying to all interfaces.

Reference: http://forums.gentoo.org/viewtopic-p-6886404.html

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-04 16:07:48 +02:00
Lee Jones 43f2e1a3be dmaengine: ste_dma40: Convert data_width from register bit format to value
When a DMA client requests and configures a DMA channel, it requests
data_width in Bytes. The DMA40 driver then swiftly converts it over to
the necessary register bit value. Unfortunately, for any subsequent
calculations we have to shift '1' by the bit pattern (1 << data_width)
times to make any sense of it.

This patch flips the semantics on its head and only converts the value
to its respective register bit pattern when writing to registers. This
way we can use the true data_width (in Bytes) value.

Cc: Dan Williams <djbw@fb.com>
Cc: Per Forlin <per.forlin@stericsson.com>
Cc: Rabin Vincent <rabin@rab.in>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-06-04 11:12:09 +02:00
Stephen Warren 5c5b08286f ASoC: tegra: implement suspend/resume for Tegra30 I2S
Add tegra30_i2s_{suspend,resume}. These use regcache functions to
restore all HW registers after power loss during a suspend/resume cycle.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-03 19:53:07 +01:00
Stephen Warren 2f41a3f48a ASoC: tegra: implement suspend/resume for Tegra30 AHUB
Add tegra30_ahub_{suspend,resume}. These use regcache functions to
restore all HW registers after power loss during a suspend/resume cycle.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-03 19:53:07 +01:00
Sachin Kamat ea421eb18d ASoC: davinci: Remove redundant use of of_match_ptr macro
'mcasp_dt_ids' is always compiled in. Hence of_match_ptr is not
necessary.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-03 16:46:05 +01:00
Charles Keepax fd8b965744 ASoC: wm0010: Clear IRQ as wake source and include missing header
Both clear the IRQ as being a wake source when we are finished with it
and include a missing header file that is required.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-03 16:38:06 +01:00
Takashi Iwai 963afde950 ALSA: hda/via - Clean up duplicated codes
The previous commit was written in the way to make the backport to
3.9.y easier, and left the duplicated open codes intentionally.
Now let's clean up the duplicated codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-03 11:34:00 +02:00
Takashi Iwai 5a6f294e87 ALSA: hda/via - Fix wrongly cleared pins after suspend on VT1802
VIA driver has a special suspend handling only for VT1802 to reduce
the pop noise.  During the transition to the generic parser, the
behavior of snd_hda_set_pin_ctl() was also changed to modify the
cached values, too.  And this caused a regression where the pin is
still cleared even after the resume (including the resume from power
save), resulting in the silent output.

The fix is simply to replace snd_hda_set_pin_ctl() with the explicit
call of snd_hda_codec_write() again.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-03 11:33:16 +02:00
Takashi Iwai 05909d5c67 ALSA: hda - Add keep_eapd_on flag to generic parser
VT1802 codec seems to reset EAPD of other pins in the hardware level,
and this was another reason of the silent headphone output on some
machines.  As a workaround, introduce a new flag indicating to keep
the EPAD on to the generic parser, and set it in patch_via.c.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-03 11:33:06 +02:00
Takashi Iwai 77afe0e948 ALSA: hda - Allow setting automute/automic hooks after parsing
Some codec drivers (VIA codecs and some Realtek fixups) set the
automute and automic hooks after calling
snd_hda_gen_parse_auto_config().  In the current code, the hook
pointers are referred only in snd_hda_gen_parse_auto_config() and
passed to snd_hda_jack_detect_enable_callback(), thus changing the
hook values won't change the actually called callbacks properly.

This patch fixes this bug by setting the static functions as the
primary callback functions for the jack detection, and let them
calling the appropriate hooks dynamically.

Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-03 11:33:06 +02:00
Takashi Iwai 087c2e3b4e ALSA: hda/via - Disable broken dynamic power control
Since the transition to the generic parser, the actual routes used
there don't match always with the assumed static paths in some
set_widgets_power_state callbacks.  This results in the wrong power
setup in the end.  As a temporary workaround, we need to disable the
calls together with the non-functional dynamic power control enum.

Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-03 11:32:55 +02:00
Mark Brown 056790923e ASoC: pcm: Require both CODEC and CPU support when declaring stream caps
When declaring playback and capture capabilities check for both CODEC
side and CPU side support rather than only checking for CODEC side
support.  While it is unusual some CPUs do have unidirectional DAIs.

Reported-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2013-06-03 09:55:00 +01:00
Clemens Ladisch a0c6d309c6 ALSA: usb-audio: fix Roland/Cakewalk UM-3G support
Commit 927c9423dd (ALSA: usb-audio: add
Edirol UM-3G support) used a wrong quirk type, which would make the
driver refuse to attach with the error message "MIDIStreaming interface
descriptor not found".

Cc: <stable@vger.kernel.org> # 3.3 and later
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-06-03 09:42:21 +02:00
Mark Brown 2da1c4bf76 ASoC: wm8994: Allow debounce before MICDET identification
For systems which do not have a jack detection feature allow some debounce
to be specified before we perform accessory identification, improving
robustness without impacting button detection responsiveness.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-06-01 19:28:58 +01:00
Mark Brown 2d01e39b90 ASoC: wm8994: Remove unused variable
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-06-01 19:28:54 +01:00
Adrian Knoth 7b5593976c ALSA: hdspm - Allow SingleSpeed WordClock when in DS/QS mode
Similarly to MADI, WordClock can also be at SingleSpeed while the card
is actually working at twice or four times this rate. If so, multiply
the base rate accordingly.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-31 15:06:01 +02:00
Adrian Knoth a8a729fa06 ALSA: hdspm - Refactor SS/DS/QS clock multiplier into function
When the DoubleSpeed or QuadSpeed bit is set, the SingleSpeed frequency
has to be multiplied accordingly. Since this functionality will be
required at least twice, refactor it into a separate function.

The second reference to the newly introduced hdspm_rate_multiplier()
will be in a separate commit.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-31 15:05:41 +02:00
Adrian Knoth a8cd714804 ALSA: hdspm - Add support for 128-192kHz WordClock input
Allow WordClock input rates of 128, 176.4 and 192kHz.

Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-31 15:05:19 +02:00
David Henningsson 3ee2102fbe ALSA: hda - Add headset quirk for two Dell machines
This quirk is required for the headset mic to work on these
two machines.

BugLink: https://bugs.launchpad.net/bugs/1186170
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-31 10:45:26 +02:00
Ondrej Zary 8e0d70434d ALSA: es1968: Add radio support for MediaForte M56VAP
Add support for TEA5757 tuner on MediaForte M56VAP sound+modem+radio card.
The GPIO connection type is automatically detected (like snd-fm801 driver).

Also add a safety subsystem vendor check to skip radio detection if vendor
differs from ESS (so we don't touch GPIOs on laptops).

Tested with SF64-PCE2 and M56VAP cards.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-31 08:39:48 +02:00
Ebben Aries 6b4dc2bd7e ALSA: hda - add dock support for Thinkpad T431s
Add a model/fixup string "lenovo-dock", for Thinkpad T431s, to allow sound in docking station.

Tested on Lenovo T431s with ThinkPad Mini Dock Plus Series 3

Signed-off-by: Ebben Aries <earies@dscp.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-31 08:19:46 +02:00
Wei Yongjun 8b1dacb6ae ALSA: sis7019: fix error return code in sis_chip_create()
Fix to return a negative error code in the pci_set_dma_mask() error
handling case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-31 08:19:12 +02:00
Mark Brown 50941968fc ASoC: wm8994: Add digital loopback paths
There is loopback control within the audio interfaces, provide control of
this as there are some obscure scenarios where this could be used in
production.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 13:48:08 +01:00
Mark Brown 7afce3f5e5 ASoC: wm8994: Ensure microphone detection state is reset on removal
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 13:47:46 +01:00
Lars-Peter Clausen cc37961b21 ASoC: blackfin: Remove bf5xx-tdm driver
Now that the bf5xx-i2s driver supports TDM mode and all users of the bf5xx-tdm
driver have been switch over to using the bf5xx-i2s driver there is no need to
keep the b5fxx-tdm driver around.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:41 +01:00
Lars-Peter Clausen 34f4095564 ASoC: blackfin: Switch bf5xx-ad1836 from bf5xx-tdm to bf5xx-i2s
The bf5xx-i2s driver now has support for TDM mode and the bf5xx-tdm driver is
going to be removed soon, so switch the driver over to bf5xx-i2s.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:41 +01:00
Lars-Peter Clausen b88546324e ASoC: blackfin: Switch bf5xx-ad193x from bf5xx-tdm to bf5xx-i2s
The bf5xx-i2s driver now has support for TDM mode and the bf5xx-tdm driver is
going to be removed soon, so switch the driver over to bf5xx-i2s.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen 8b5e2e396b ASoC: blackfin: bf5xx-i2s: Add support for TDM mode
The bf5xx-i2s{,-pcm} and bf5xx-tdm{-pcm} drivers are nearly identical. Both are
for the same hardware each supporting a slight different subset of the hardware.
The bf5xx-i2s driver supports 2 channel I2S mode while the bf5xx-tdm driver
supports TDM mode and channel remapping. This patch adds support for TDM mode
and channel remapping to the bf5xx-i2s driver so that we'll eventually be able
to retire the bf5xx-tdm driver. Unfortunately the hardware is fixed to using 8
channels in TDM mode. The bf5xx-tdm driver jumps through a few hoops to make it
work well with other channel counts as well:
	* Don't support mmap
	* Translate between internal frame size (which is always 8 * sample_size)
	  and ALSA frame size (which depends on the channel count)
	* Have special copy and silence callbacks which are aware of the mismatch
	  between internal and ALSA frame size
	* Reduce the maximum buffer size to ensure that there is enough headroom for
	  dummy data.

The bf5xx-i2s driver is going to use the same mechanisms when being used int
TDM mode.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen a3935a29f6 ASoC: blackfin: bf5xx-i2s-pcm: Use snd_pcm_lib_preallocate_pages_for_all()
Use snd_pcm_lib_preallocate_pages_for_all() for pre-allocating the DMA buffers
instead of re-implementing the same functionality.  Note that there is no need
to call snd_pcm_lib_free_pages_for_all() since the ALSA core takes care of this
for us.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen 569ef65a97 ASoC: blackfin: bf5xx-i2s: Allocate buffer only as large as requested
There is no need to always allocate the maximum buffer size. While we are at it
also pass errors returned by snd_pcm_lib_malloc_pages() on to the upper layers.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen 6344260484 ASoC: blackfin: bf5xx-sport: Allow setting rx and tx mask independently
Since the hardware supports it there is no need to artificially limit this to
just being able to set the same mask for both tx and rx.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen b7ede5dea0 ASoC: blackfin: bf5xx-i2s: Use dev_{err, dbg} instead of pr_{error, debug}
Using dev_{err,dbg} instead of pr_{error,debug} makes it easier to recognize
which device created the message.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen d65f63da22 ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h
The structs defined in these files are completely unused, so remove both the
structs and the files.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Mark Brown 9e43088bb0 ASoC: wm8994: Avoid leaking pm_runtime reference on removed jack race
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:10:02 +01:00
Paul Bolle 18b494527b ASoC: OMAP: Remove obsolete Makefile line
Support for omap2evm was removed in v3.0. But only one of its two
lines in this Makefile was removed. Remove the second line too.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 11:49:24 +01:00
Charles Keepax e684533b10 ASoC: wm0010: Set IRQ as a wake source
The DSPs IRQ should be a wake source as several of the possible
algorithms may run whilst the AP is asleepi and require to wake the AP
to push or pull more data, such as compressed playback.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 11:48:04 +01:00
Mark Brown 70bd3b298b ASoC: wm8994: Defer declaration of open circuit microphones
Provide a bit of debounce to handle pathological cases with slow input
better by allowing the microphone detection to run for a bit longer.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-29 20:31:33 +01:00
Nicolas Schichan 7d8acf2cba ASoC: cs42l52: fix hp_gain_enum shift value.
Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-29 19:24:39 +01:00
Nicolas Schichan 8ac60a6866 ASoC: cs42l52: use correct PCM mixer TLV dB scale to match datasheet.
Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-29 19:24:36 +01:00
Takashi Iwai 8a90bb5116 ASoC: Updates for v3.10
A series of driver specific updates, none particularly critical, plus
 one fix to the compressed API code to handle capture streams properly
 which is very safe for mainline as there's no current users.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRpMLdAAoJELSic+t+oim9V+MP/R8NwuY9wNXuLRgnPQFTKJoH
 oLNKgVmOKKI43Z6zNNH4kh+HJX0N+kcWDZpu0L6hmXFfy/dUUyYrO8B4GG1FEnC8
 rMlnR1Tgie9yRVXDou9V9XH9itjjXCSJZs7fD/CNgcAJgu7pnTUrsj2Rd2KDHlwD
 pkLzxl5wJWbdvC1ESGK5DqVLPL/S7jRK/3nHZ1635O9BmpimvOPnttqVoNo5XqC4
 ld3piAgizAyWLsVOowVdVvOl0UHSLCRZbhr0xHKpaWO4x92GI9KI/C5EOLrInQFp
 ieS6369GKDMROX9vymNKDqnhM78ZpRQLMzVEqHFjAnroiUbtAkubmhtWpv6Gr+Vn
 RT9adGs6Z75QwJ6je3FW8kE2x8yFnlcOnaSgD3YToOa6BFfDn/EYxRijrTt1jfTa
 RrEQDosyKzsZPiT+GymzcRb9Zj5ir+37xijpNcWyYG8ToX/K6Od/fgNT2uRNmAQt
 0NKdV5Qjg0oIc+E2w/NuLYI5jG7K83NnX1IPZVzqzBWAcibSRHHKrmhSE142SNP+
 T+avVIaoZ0q7J115vtrmbxTHKNPpwElDW9UAQse3PVIvd4CdQzg9bgWhQmReb6KY
 keN0+ul1SiCWPBqQ8DlYMbRkxDftgGUauRmhGdq8y9FLleLQ33Ckt1DFlMBVONIl
 2ZvNO1xHxfZQU7SS1xiv
 =BZaD
 -----END PGP SIGNATURE-----

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

ASoC: Updates for v3.10

A series of driver specific updates, none particularly critical, plus
one fix to the compressed API code to handle capture streams properly
which is very safe for mainline as there's no current users.
2013-05-29 12:52:16 +02:00
Takashi Iwai f35e839a3c ALSA: Remove the rest of *_set_drvdata(NULL) calls
A few calls are still left in parport drivers after this commit, which
I'm not quite sure yet.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-29 12:50:59 +02:00
Takashi Iwai 8b5a1f9c46 ALSA: ISA: Remove superfluous *_set_drvdata(NULL) calls
Similarly like the previous commit for PCI drivers, remove
dev_set_drvdata(NULL) and pnp_set_drvdata(NULL) calls in ISA drivers
now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-29 12:50:28 +02:00
Takashi Iwai d2c6980715 sound: OSS: Remove superfluous pci_set_dvdata(pci, NULL)
Only kahlua.c has it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-29 12:40:04 +02:00
Takashi Iwai 20a24225d8 ALSA: PCI: Remove superfluous pci_set_drvdata(pci, NULL) at remove
As drvdata is cleared to NULL at probe failure or at removal by the
driver core, we don't have to call pci_set_drvdata(pci, NULL) any
longer in each driver.

The only remaining pci_set_drvdata(NULL) is in azx_firmware_cb() in
hda_intel.c.  Since this function itself releases the card instance,
we need to clear drvdata here as well, so that it won't be released
doubly in the remove callback.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-29 12:37:32 +02:00
Mark Brown f7dbd399ef ASoC: wm8994: Ensure lambda is zeroed for WM8994
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 15:57:38 +01:00
Mark Brown 287d03e9cd ASoC: wm8994: Remove restore of DAC enable state
It's not been needed since the regmap conversion.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 15:57:34 +01:00
Mark Brown 1ab9ecc248 Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linus 2013-05-28 15:41:37 +01:00
Mark Brown 9f1b2556c5 Merge remote-tracking branch 'asoc/fix/max98090' into asoc-linus 2013-05-28 15:41:36 +01:00
Mark Brown 72322e6362 Merge remote-tracking branch 'asoc/fix/davinci' into asoc-linus 2013-05-28 15:41:36 +01:00
Mark Brown 7ae3433628 Merge remote-tracking branch 'asoc/fix/cs42l52' into asoc-linus 2013-05-28 15:41:35 +01:00
Mark Brown d63aaee1fe Merge remote-tracking branch 'asoc/fix/compress' into asoc-linus 2013-05-28 15:41:35 +01:00
Mark Brown c6859959fc Merge remote-tracking branch 'asoc/fix/arizona' into asoc-linus 2013-05-28 15:41:34 +01:00
Nicolas Schichan 04d245b789 ASoC: cs42l52: fix default value for MASTERA_VOL.
The default register value for MASTERA_VOL is 0x00, the same as
MASTERB_VOL.

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-05-28 15:40:50 +01:00
Vinod Koul 7d6898be8d ASoC: wm8994: check for array index returned
The array 'drc_cfg' of size 3 may use index value -22 (EINVAL)
The array 'retune_mobile_cfg' of size 3 may use index value -22 (EINVAL)

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 15:36:45 +01:00
Kuninori Morimoto c375b2d7ef ASoC: fsi: fixup sparse errors
This patch fixup below sparse errors

${LINUX}/sound/soc/sh/fsi.c:1459:9: \
	error: incompatible types in conditional expression (different base types)
${LINUX}/sound/soc/sh/fsi.c:1634:25: \
	error: incompatible types in conditional expression (different base types)
${LINUX}/sound/soc/sh/fsi.c:1639:17: \
	error: incompatible types in conditional expression (different base types)
${LINUX}/sound/soc/sh/fsi.c:2093:9: \
	error: incompatible types in conditional expression (different base types)
${LINUX}/sound/soc/sh/fsi.c:2105:9: \
	error: incompatible types in conditional expression (different base types)

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 15:35:46 +01:00
Dimitris Papastamos 0c2e3f3420 ASoC: wm_adsp: Ensure set controls are synced on each boot
Rename `dirty' to `set' as it is a bit more descriptive.  A set
control is any control that has been set by the user.  We need to ensure
that everytime we boot the DSP we sync out any controls that were
set.

We could at some point start keeping track of the default values of
the controls to suppress some of the device I/O.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 15:34:26 +01:00
Fabio Baltieri a130243b96 ASoC: ux500: Ensure consistent configuration between DAIs
Current implementation of mop500_ab8500 allows for inconsistent sample
rate and channel count configuration between the playback and recording
interfaces, through in the hardware the two MSP controllers share
common clock and frame sync signals.

This patch adds the necessary code to ensure that the two device are
configure consistently.  The check is added at machine driver level, as
how to lock DAI configuration depend of the actual hardware
implementation.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 10:23:23 -04:00
Mark Brown 9767a58b8b ASoC: wm8994: Fix reporting of accessory removal on WM8958
During recent refactoring the code to report removal when MICDET reports
an absent microphone was removed, causing problems for systems which rely
solely on the MICDET for this functionality. Restore it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 10:22:36 -04:00
Vinod Koul d3134e211e ASoC: wm8994: use the correct pointer to get the control value
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-28 10:10:09 -04:00
Takashi Iwai 4059a42c51 ALSA: hda - Enable mic-mute LED on more HP laptops
The newer HP laptops have SSID 103c:20xx and 103c:21xx, and these
usually have the mic-mute LED on Fn-F8.  Let's enable it, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-28 14:53:40 +02:00
Charles Keepax 939d3c6a6c ASoC: bells: Hookup DMICs for Bells
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-27 08:05:19 -04:00
Fabio Baltieri f82030f978 ASoC: ux500: Drop redundant msp id enumerations
Ux500 has two equivalent enum for device id, one in platform_data and
one in a local header.  Fix this by dropping the local one.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 15:58:35 -04:00
Fabio Baltieri 06b9671ee6 ASoC: ux500: Add missing mop500_ab8500.h include
Add a missing include that was resulting in some sparse warning for
non-static structure without forward declaration.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 15:58:34 -04:00
Fabio Baltieri 2a357137fa ASoC: ux500: Drop unused code from msp headers
Drop unused fields and structures from ux500_msp_i2s header file, as
those looks like leftover from a previous implementation of the driver.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 15:58:34 -04:00
Fabio Baltieri b7230d7e4c ASoC: ux500: Drop dangling struct i2s_controller
Drop struct i2s_controller from the ux500 ASoC driver as right now it is
instantiated but not used anywhere.  Also drop a mismatched
device_unregister in the process.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 15:58:33 -04:00
Fabio Baltieri 7f92581b21 ASoC: ab8500-codec: Move codec ops on a separate structure
Define ab8500 codec operations structure on its own rather than inline
with snd_soc_dai_drivers to clean up the code and make the style
coherent with other codec drivers.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 15:58:33 -04:00
Fabio Baltieri 6ee0b4b0ef ASoC: ux500: Drop pinctrl sleep support
Drop pinctrl default/sleep state switching code, as it was breaking the
capture interface by putting the I2S pins in hi-z mode regardless of its
usage status, and not giving any real benefit.

Pinctrl default mode configuration is already managed automatically by a
specific pinctrl hog.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 15:58:21 -04:00
Daniel Mack 04561eacaa ASoC: codecs: adau1701: add DT bindings
Apart from pure matching, the bindings also support setting the the
reset gpio line.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 10:34:45 -04:00
Lars-Peter Clausen b6b5e76bb8 ASoC: Add ssm2518 support
This patch adds a ASoC CODEC driver for the SSM2516. The SSM2516 is a stereo
Class-D audio amplifier with an I2S interface for audio in and a built-in
dynamic range control processor.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-25 10:33:30 -04:00
Charles Keepax 39d4ecdb71 ASoC: wm5110: Correct DSP4R Mixer control name
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-05-25 09:29:10 -05:00
Takashi Iwai 7bb2491b35 ALSA: Add kconfig to specify the max card numbers
Currently ALSA supports up to 32 card instances when the dynamic minor
is used.  While 32 cards are usually big enough for normal use cases,
there are sometimes weird requirements with more card support.

Actually, this limitation, 32, comes from the index option, where you
can pass the bit mask to assign the card.  Other than that, we can
actually give more cards up to the minor number limits (currently 256,
which can be extended more, too).

This patch adds a new Kconfig to specify the max card numbers, and
changes a few places to accept more than 32 cards.

The only incompatibility with high card numbers would be the handling
of index option.  The index option can be still used to pass the
bitmask for card assignments, but this works only up to 32 slots.
More than 32, no bitmask style option is available but only a single
slot can be specified via index option.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-24 16:41:46 +02:00
Takashi Iwai 8edbb198a6 ALSA: Fix the default suffix string with high card number
ALSA core tries to add a suffix as "_1" automatically when the given
id string conflicts.  The current code assumes implicitly that the max
card number is 16 so that the single hex "_X" suffix can be put.
However, with the dynamic device management, the card can be at most
32, so it can put even a non-hex character there.  Also, when the max
card number is increased in future, this would result in worse.

This patch rewrites the code to add the suffix string in a simpler
(thus cleaner) way.  It can support up to three digits, so it should
suffice for most requirements.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-24 16:30:39 +02:00
Lars-Peter Clausen e6c2e7eb27 ALSA: Constify the snd_pcm_substream struct ops field
The ops field of the snd_pcm_substream struct is never modified inside the ALSA
core. Making it const allows drivers to declare their snd_pcm_ops struct as
const.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-24 15:41:44 +02:00
Daniel Mack 47f5b692e0 ASoC: adau1701: refactor firmware loading function
Pass a struct i2c_client * to adau1701_load_firmware directly to make
the code more readable.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-23 08:59:55 -05:00
Sachin Kamat 3cf981484a ALSA: sh_dac_audio: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Rafael Ignacio Zurita <rizurita@yahoo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:36:45 +02:00
Sachin Kamat 2bc594a276 ALSA: sh: aica: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Adrian McMenamin <adrian@mcmen.demon.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:36:05 +02:00
Sachin Kamat 464ede3ce5 ALSA: powermac: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:35:58 +02:00
Sachin Kamat 50c7d0da64 ALSA: virmidi: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:35:51 +02:00
Sachin Kamat 45837cb214 ALSA: serial-u16550: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:35:45 +02:00
Sachin Kamat a4302ede92 ALSA: pcsp: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Stas Sergeev <stsp@users.sourceforge.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:35:40 +02:00
Sachin Kamat a204341dae ALSA: mtpav: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:35:33 +02:00
Sachin Kamat 984ef60cb1 ALSA: mpu401: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:34:24 +02:00
Sachin Kamat 186c1821f9 ALSA: ml403-ac97cr: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:34:18 +02:00
Sachin Kamat 5ed5824bf4 ALSA: aloop: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:34:09 +02:00
Sachin Kamat 54d672e922 ALSA: pxa2xx-ac97: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:34:03 +02:00
Torsten Schenk d47333ddb2 ALSA: usb-6fire: Modify firmware version check
Check only the uppermost 16 bits instead of the whole 32 bits of
the version information. Do this because all firmware version tested
with this version information worked correctly and the strict check
causes problems for several users.

Signed-off-by: Torsten Schenk <torsten.schenk@zoho.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-23 14:30:26 +02:00
Lars-Peter Clausen cf1f7c6e87 ASoC: Fix early event callback list iteration
The power_list field is used when adding a widget to a power sequence list. Use
the same field when iterating the list using list_for_each_entry, otherwise
we'll see undefined behavior.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-22 17:32:58 -05:00
Nicolas Schichan 40e2516acb ASoC: cs42l52: fix master playback mute mask.
The mask should define the bits to change in the register, not the
bits to preserve.

This fixes the inadvertent changes of the "Headphone Analog Gain"
value during mute/unmute.

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-22 13:37:07 -05:00
Nicolas Schichan 99674c721f ASoC: cs42l52: fix bogus shifts in "Speaker Volume" and "PCM Mixer Volume" controls.
Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-22 13:37:02 -05:00
Nicolas Schichan 0b6e81d165 ASoC: cs42l52: microphone bias is controlled by IFACE_CTL2 register.
Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-22 13:36:38 -05:00
Daniel Mack 7967189251 ASoC: davinci: fix sample rotation
McASP serial audio engine needs different rotation values on TX and RX
channels. Commit dde109fb46 ("ASoC: McASP: Fix data rotation for
playback. Enables 24bit audio playback") changed the calculation to fix
the playback format, but broke the capture stream by doing it for both
TXFMT and RXFMT.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org [3.9 only]
2013-05-21 13:21:09 -05:00
Barry Song 200ceb962f ASoC: dfbmcs320: make the driver common for other BT modules
DFBM-CS320 is only one of bluetooth modules using CSR bluetooth chips,
we don't want everyone to have a seperate codec driver. anyway, the
feature of Bluetooth SCO is same on all platforms, so this patch
makes the DFBM-CS320 driver become a common BT SCO link driver.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-21 13:17:08 -05:00
Fabio Baltieri da33d723bc ASoC: ab8500-codec: Set rx dai slots from rx_mask
Replace hard coded rx slot numbers from ab8500_codec_set_dai_tdm_slot
using the ones requested by the machine driver in rx_mask instead.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-21 11:39:34 -05:00
Mark Brown 4510dbe324 Linux 3.10-rc2
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQEcBAABAgAGBQJRmpexAAoJEHm+PkMAQRiGrRIH/1uWFW38RvaCV/PXm/ia6Z+x
 BfBJfBIvPxGwb4n7aQNQlhU25xkfrPZ6szO4WiBH5/KPH3xYi2I2OZ1AzffkYqMF
 BWkPmsPK6EsTdp16zsi6JtH2aXArG4SpYA7ZamPvDkmfigHuiZg7GlL/9eHTRPNV
 P7Q8JToOrcnP8RoGgNj0uFiQeQbc62Kmoq7WuPtUhVlpQCCCknXgOJiYgz9w6Xe9
 /i79YFS8WRrzAquExT1NbIOh4ZMqB9MvuroaVWy8JDDLUyz7QUvOCe3tCDNguwgi
 FdWvU6nfkdQq5SLaWCWXDE9Rp/pL1MvfBn9vCOwFcp42aw0aQ0PgJVIXvsqufd0=
 =jgDI
 -----END PGP SIGNATURE-----

Merge tag 'v3.10-rc2' into asoc-ux500

Linux 3.10-rc2
2013-05-21 11:39:21 -05:00
Fabio Baltieri b296263398 ASoC: ab8500-codec: Set tx dai slots from tx_mask
Replace hard-coded tx slot numbers from ab8500_codec_set_dai_tdm_slot
using the ones requested by the machine driver in tx_mask instead.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-21 11:35:17 -05:00
Mark Brown 62cc4d595f ASoC: wm5110: Add missing speaker initialisation
Add callback to initialise the speaker in the core following the recent
changes to handling of integration with the thermal interrupts.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-20 11:33:51 -05:00
Mark Brown d217f90556 ASoC: wm5110: Stub hookup for Slimbus interface
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-20 11:27:59 -05:00
Mark Brown 1804aff60d ASoC: wm5102: Stub hookup for Slimbus interface
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-20 11:27:58 -05:00
Mark Brown bd1dd88569 ASoC: arizona: Provide simple DAI ops for autoconfiguring interfaces
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-20 11:27:58 -05:00
Mark Brown 435705e892 ASoC: wm8994: Handle LRCLK inversion for WM8958 and WM1811A
On WM8958 and WM1811A separate control of the LRCLK inversion bit is
available for the DAC and ADC LRCLKs which for compatibility reasons is
done in a new register bit.

Since writes to each scheme have no effect on parts using the other just
always write to both for simplicity.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Tested-by: Samreen Nilofer <samreen.nilofer@intel.com>
2013-05-20 11:27:06 -05:00
Charles Keepax 2c071ed7c3 ASoC: soc-compress: Send correct stream event for capture start
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-20 08:01:48 -05:00
Andrew Bresticker 3d15aacbb8 ASoC: max98090: request IRQF_ONESHOT interrupt
request_threaded_irq() rejects calls which both do not specify a handler
(indicating that the primary IRQ handler should be used) and do not set
IRQF_ONESHOT because the combination is unsafe with level-triggered
interrupts.  It is safe in this case, though, since max98090 IRQs are
edge-triggered and the interrupts aren't ACK'ed until the codec's IRQ
status register is read.  Because of this, an IRQF_ONESHOT interrupt
doesn't really make a difference, but request one anyway in order to make
request_threaded_irq() happy.

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-20 13:58:49 +01:00
Linus Torvalds e51066824a Merge branch 'devm_no_resource_check' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull devm usage cleanup from Wolfram Sang:
 "Lately, I have been experimenting how to improve the devm interface to
  make writing device drivers easier and less error prone while also
  getting rid of its subtle issues.  I think it has more potential but
  still needs work and definately conistency, especiall in its usage.

  The first thing I come up with is a low hanging fruit regarding
  devm_ioremap_resouce().  This function already checks if the passed
  resource is valid and gives an error message if not.  So, we can
  remove similar checks from the drivers and get rid of a bit of code
  and a number of inconsistent error strings.

  This series only removes the unneeded check iff devm_ioremap_resource
  follows platform_get_resource directly.  The previous version tried to
  shuffle code if needed, too, what lead to an embarrasing bug.  It
  turned out to me that shuffling code for all cases found will make the
  automated script too complex, so I am unsure if an automated cleanup
  is the proper tool for this case.  Removing the easy stuff seems
  worthwhile to me, though.

  Despite various architectures and platform dependencies, I managed to
  compile test 45 out of 57 modified files locally using heuristics and
  defconfigs."

Pulled because: 296 deletions, 0 additions.

* 'devm_no_resource_check' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (33 commits)
  sound/soc/kirkwood: don't check resource with devm_ioremap_resource
  sound/soc/fsl: don't check resource with devm_ioremap_resource
  arch/mips/lantiq/xway: don't check resource with devm_ioremap_resource
  arch/arm/plat-samsung: don't check resource with devm_ioremap_resource
  arch/arm/mach-tegra: don't check resource with devm_ioremap_resource
  drivers/watchdog: don't check resource with devm_ioremap_resource
  drivers/w1/masters: don't check resource with devm_ioremap_resource
  drivers/video/omap2/dss: don't check resource with devm_ioremap_resource
  drivers/video/omap2: don't check resource with devm_ioremap_resource
  drivers/usb/phy: don't check resource with devm_ioremap_resource
  drivers/usb/host: don't check resource with devm_ioremap_resource
  drivers/usb/gadget: don't check resource with devm_ioremap_resource
  drivers/usb/chipidea: don't check resource with devm_ioremap_resource
  drivers/thermal: don't check resource with devm_ioremap_resource
  drivers/staging/nvec: don't check resource with devm_ioremap_resource
  drivers/staging/dwc2: don't check resource with devm_ioremap_resource
  drivers/spi: don't check resource with devm_ioremap_resource
  drivers/rtc: don't check resource with devm_ioremap_resource
  drivers/pwm: don't check resource with devm_ioremap_resource
  drivers/pinctrl: don't check resource with devm_ioremap_resource
  ...
2013-05-18 10:54:54 -07:00
Dan Carpenter 571ab6c6f3 ASoC: wm8994: missing break in wm8994_get_fll_config()
Smatch complains that:

	sound/soc/codecs/wm8994.c:2087 wm8994_get_fll_config()
		warn: missing break? reassigning 'fll->k'

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-18 12:25:49 +01:00
Wolfram Sang 12716cd44d sound/soc/kirkwood: don't check resource with devm_ioremap_resource
devm_ioremap_resource does sanity checks on the given resource. No need to
duplicate this in the driver.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2013-05-18 11:59:45 +02:00
Wolfram Sang 5f68d04d39 sound/soc/fsl: don't check resource with devm_ioremap_resource
devm_ioremap_resource does sanity checks on the given resource. No need to
duplicate this in the driver.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2013-05-18 11:59:44 +02:00
Uwe Kleine-König 7d0cd22382 ASoC: simplify registration of snd-soc-dummy device
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-17 12:07:49 +01:00
Andrew Bresticker fd5f940f82 ASoC: max98090: add digital mic mux to record path
The max98090 driver currently treats the digital mic enable as a supply
on the record path, causing the digital mic enable to always be turned on
when attempting to record.  This is incorrect, however, since the digital
mic enable is also a mux control where 0 selects the ADC output as input
to the record-path DSP and 1 selects the digital mic.  This patch adds
a virtual DMIC mux to the reocrd path so that we can switch between the
ADC and the digital mic for recording.

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-17 12:07:18 +01:00
Chew, Chiau Ee e44007e0f9 ALSA: hda - add PCI IDs for Intel BayTrail
Add HD Audio Device PCI ID for the Intel BayTrail platform.

Signed-off-by: Chew, Chiau Ee <chiau.ee.chew@intel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-17 09:35:17 +02:00
Torstein Hegge e6135fe960 ALSA: usb-audio: proc: use found syncmaxsize to determine feedback format
freqshift is only set for the data endpoint and syncmaxsize is only set
for the sync endpoint. This results in a syncmaxsize of zero used in the
proc output feedback format calculation, which gives a feedback format
incorrectly shown as 8.16 for UAC2 devices.

As neither the data nor the sync endpoint gives all the relevant
content, output the two combined.

Also remove the sync_endpoint "packet size" which is always zero
and the sync_endpoint "momentary freq" which is constant.

Tested with UAC2 async and UAC1 adaptive, not tested with UAC1 async.

Reported-by: B. Zhang <bb.zhang@free.fr>
Signed-off-by: Torstein Hegge <hegge@resisty.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-17 08:05:34 +02:00
Charles Keepax a64cbb949a ASoC: wm5102: Correct OSR control name for EPOUT
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-16 18:29:03 +01:00
David Henningsson 436c4a0cfb ALSA: hda - Add headset mic support for another Dell machine
BugLink: https://bugs.launchpad.net/bugs/1180351
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-16 07:19:09 +02:00
Michael Ellerman 088578617d ALSA: snd-aoa: Add a layout entry for PowerBook6,5
Either one or a combination of commits 81e5d86
"Register i2c devices from device-tree" and 3a3dd01
"Improve detection of devices from device-tree" broke sound on
PowerBook6,5 machines.

Fix it by adding an entry to the new driver to match PowerBook6,5
machines.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-16 07:19:01 +02:00
Takashi Iwai 478e858b2f ASoC: Fixes for v3.10
A few small driver-specific fixes, none of them especially crippling.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRkxCXAAoJELSic+t+oim9YTQP/Avaf/2NQymaMgeIDcr2e0kD
 4lZsMp/Oz/9dtD83jIDDpcjggDUzZkO8IlOhTfqway1e2xmDBUZDW+wXFQXnINfx
 r8pNQgHCZWTXDGC9AAsIzleorCQkswECXgsNLHK+pjJ2GZ0kQeRCW04mIeHYYlVK
 HuwKDp+AI8nuvQQA7E8wFvV34TUxyoM7O2gptVUtRq4hPk1WEvctmE+xu/UtbxR2
 yBM3ZYEfB0G8Dw5Nol+BmBWGxhLFJuNT5R1SN8eDvTbzviFN+kVqD6xtf+dcaBYj
 c/ePgtAPKUQdZZocAp1wS8WxnUNHwV4tgZJBdzNRE+t/AFhtZrpJ4UoP2j14F4Z7
 2ko/tzJ+dyKQE/rLbHVp9sFReVYGfJSrICitM0YIlintNNgZKTOZJ7cHEPFMBU+N
 lcRHqtf8iEFQds4iQmBeXusqTxGvCp/jITSy28Vy10zbO4h+pwv1OJEEpMC9rjKU
 wR55Nt0/C5ZlwiGpBUNrQCpujRZbCPPKH0rTG3uGIlOh0bdbANyKOSQTo+JAXALy
 hdwBJupcgzmcf9nNlx6+k/qfQQX0FAQioefnC2+sEqO+bmHcJX1XJiS5e71O4hxk
 b+hWiJM+2inn8tYVHrqmTqrtw1H6yE2D1kp7AFc2c02LR7uK6pH8276epUE2CPGh
 jgE5AHXuYhduf1hIJLj/
 =GQj5
 -----END PGP SIGNATURE-----

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

ASoC: Fixes for v3.10

A few small driver-specific fixes, none of them especially crippling.
2013-05-16 07:18:48 +02:00
Takashi Iwai b1b9fbd050 ALSA: hda - Check the activity of the NID to be powered down
When an inactive path is powered down with spec->power_down_unused
flag, we should check the activity of each widget in the path whether
it's still referred from any active path.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-16 07:18:05 +02:00
Shawn Guo dbdf6b5434 ASoC: fsl: remove imx-pcm driver
With imx-pcm-dma moving to generic dmaengine pcm driver and the removal
of imx-pcm-audio/imx-fiq-pcm-audio platform device use, now imx-pcm
driver contains a few functions that are only used by imx-pcm-fiq.c.
Move these functions into imx-pcm-fiq.c and remove imx-pcm.c completely.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 09:27:27 +04:00
Shawn Guo 2bf9d4bbd0 ASoC: fsl: remove use of imx-fiq-pcm-audio from imx-ssi
Rather than instantiating imx-fiq-pcm-audio to call imx_pcm_fiq_init(),
imx-ssi can just directly call it to save the use of imx-fiq-pcm-audio.
With this change, imx-ssi becomes not only a cpu DAI but also a platform
device, so updates platform device setup in eukrea-tlv320, phycore-ac97
and wm1133-ev1 accordingly.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 09:27:27 +04:00
Shawn Guo 88e89f5548 ASoC: fsl: create function imx_pcm_fiq_exit()
Create function imx_pcm_fiq_exit() to be paired with imx_pcm_fiq_init()
just like the pair of imx_pcm_dma_init() and imx_pcm_dma_exit().

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 09:27:27 +04:00
Shawn Guo 3b7d46380b ASoC: fsl: remove use of imx-pcm-audio from imx-ssi
Rather than instantiating imx-pcm-audio to call imx_pcm_dma_init(),
imx-ssi can just directly call it to save the use of imx-pcm-audio.
With this change, imx-ssi becomes not only a cpu DAI but also a
platform device, so updates platform device setup in imx-mc13783 and
mx27vis-aic32x4 accordingly.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 09:27:27 +04:00
Shawn Guo bd41bc9696 ASoC: fsl: remove use of imx-pcm-audio from fsl_ssi
Rather than instantiating imx-pcm-audio to call imx_pcm_dma_init(),
fsl_ssi can just directly call it to save the use of imx-pcm-audio.
With this change, fsl_ssi becomes not only a cpu DAI but also a platform
device, so updates platform device setup in imx-sgtl5000 accordingly.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 09:27:26 +04:00
Paul Bolle 7ae6871fe5 ASoC: remove saarb and tavorevb3 machine drivers
Support for PXA95x was removed in v3.8. This means that the Kconfig
symbols MACH_SAARB and MACH_TAVOREVB3 are no longer available. This
leaves the SoC Audio support for Marvell Saarb and Marvell Tavor EVB3
unbuildable. Remove these drivers too.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:59:29 +04:00
Lars-Peter Clausen cde11aedea ASoC: davinci-sffsdr: Staticize non exported struct
The pcm3008_codec struct is not used outside of davinci-sffsdr.c, so make it
static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:54:14 +04:00
Lars-Peter Clausen 3eb28d3ca8 ASoC: sn95031: Staticize non exported struct
The sn95031_codec struct is not used outside of sn95031.c, so make it static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:53:05 +04:00
Lars-Peter Clausen aba1e2be4d ASoC: mop500: Staticize non exported struct
The mop500_dai_links struct is not used outside of mop500.c, so make it static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:52:02 +04:00
Lars-Peter Clausen cdeecac4e6 ASoC: mop500_ab8500: Staticize non exported functions
The mop500_ab8500_startup(), the mop500_ab8500_shutdown() and the
mop500_ab8500_hw_params() function are not used outside of mop500_ab8500, so
make them static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:51:58 +04:00
Lars-Peter Clausen 19b6317b8c ASoC: bf5xx-tdm-pcm: Staticize non exported struct
The bf5xx_tdm_pcm_ops struct is only used in bf5xx-tdm-pcm.c, so make it static.

Cc: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:50:28 +04:00
Lars-Peter Clausen 5d9ff40215 ASoC: mmp-sspa: Staticize non exported struct
The mmp_sspa_dai struct is only used in mmp-sspa.c, so make it static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:50:00 +04:00
Lars-Peter Clausen 60e10d2fb0 ASoC: mmp-pcm: Staticize non exported structs and functions
The mmp_pcm_ops and mmp_soc_platform struct as well as the mmp_pcm_new()
function are only used in mmp-pcm.c, so make them static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:49:34 +04:00
Lars-Peter Clausen 19c7efcd24 ASoC: spear: spdif_out: Staticize unexported function
The spdif_soc_dai_probe function is only used in spdif_out.c, so make it static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:48:37 +04:00
Lars-Peter Clausen 169cc48982 ASoC: spear: spdif_in: Staticize non exported struct
The spdif_in_dai struct is not used outside of spdif_in.c, so make it static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:48:32 +04:00
Lars-Peter Clausen 5d0c8a5874 ASoC: kirkwood-dma: Staticize non exported struct
The kirkwood_dma_ops struct is not used outside of kirkwood-dma.c, so make it
static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:47:37 +04:00
Lars-Peter Clausen be87f75efe ASoC: ep93xx-i2s: Staticize non exported struct
The ep93xx_i2s_dma_data struct is not used outside of ep93xx-i2s.c, so make it
static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:46:38 +04:00
Mark Brown 407a0e18ec Merge remote-tracking branch 'asoc/fix/wm0010' into asoc-linus 2013-05-14 16:53:21 +04:00
Mark Brown c583eac39a Merge remote-tracking branch 'asoc/fix/ux500' into asoc-linus 2013-05-14 16:53:20 +04:00
Mark Brown 0335cd6c4f Merge remote-tracking branch 'asoc/fix/da7213' into asoc-linus 2013-05-14 16:53:19 +04:00
Lars-Peter Clausen 2b58107435 ASoC: core: Use kasprintf instead of opencoding it
kasprintf calculates the size of the result string, allocates a buffer large
enough to hold the string and then performs the format string operation. There
are a couple of places in ASoC where these three steps are done by hand and
where kasprintf can be used instead.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-14 16:52:52 +04:00
Lars-Peter Clausen bd477c31ca ASoC: core: Add helper function to initialize the runtime pcm
We use the same code to initialize the runtime pcm based on the
snd_soc_pcm_stream struct on both the playback and capture path. Factor this
code into a helper function to make things a bit more tidy.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-14 16:52:48 +04:00
Lars-Peter Clausen 90996f43b3 ASoC: core: Move snd_soc_set_runtime_hwparams() to soc-pcm.c
snd_soc_set_runtime_hwparams() is the only PCM related function that lives in
soc-core.c. All other PCM related functions live in soc-pcm.c, so move
snd_soc_set_runtime_hwparams() over as well for a bit more consistency.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-14 16:52:43 +04:00
Dan Carpenter 9dbce04402 ASoC: wm_adsp: memory leak in wm_adsp_create_control()
There are two return paths which don't kfree(name).

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-14 16:39:59 +04:00
Stephen Warren 110147c8c5 ASoC: tegra: always use clk_get() in utility code
Now that all of the Tegra device trees have been updated to represent
the required audio clocks, remove the compatibility code from the Tegra
ASoC utility code, and always use clk_get() rather than clk_get_sys().

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-14 08:45:11 +04:00
Lars-Peter Clausen e27e8a60cb ASoC: ep93xx: Use generic dmaengine PCM
Use the generic dmaengine PCM driver instead of a custom implementation.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-13 18:20:56 +04:00
Lars-Peter Clausen 785d81e29b ASoC: ep93xx: Setup dma data in DAI probe
This allows us to access the DAI DMA data when we create the PCM. We'll use
this when converting ep39xx to generic DMA engine PCM driver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-13 18:20:55 +04:00
Paul Bolle a62ee234a5 sound: Fix make allmodconfig on MIPS correctly
Commit d4702b189c ("sound: Fix make allmodconfig on MIPS") added a
(negative) dependency on ISA_DMA_SUPPORT_BROKEN. Since that Kconfig
symbol doesn't exist, this dependency will always evaluate to true.
Apparently GENERIC_ISA_DMA_SUPPORT_BROKEN was meant to be used here.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-13 15:54:19 +02:00
Shawn Guo 62477adf5f ASoC: mxs: move to use generic DMA helper
With mxs-dma converted to generic DMA bindings, let's move mxs-pcm to
use it by removing flages SND_DMAENGINE_PCM_FLAG_NO_DT and
SND_DMAENGINE_PCM_FLAG_COMPAT.  As the result, those mxs custom dma
params code can be removed now.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-13 09:55:28 +04:00
Mark Brown d1a0a29958 ASoC: wm8994: Support EFS mode for FLL
Later WM8994 devices support an enhanced accuracy FLL divisor mode called
EFS which allows more precise selection of fractional source to output
ratios. Support this on relevant devices.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-13 09:40:12 +04:00
Lars-Peter Clausen 010187fb45 ASoC: jz4740-i2s: Use clk_prepare_enable/clk_disable_unprepare
In preparation to switching the jz4740 clk driver to the common clk framework
update the clk enable/disable calls to clk_prepare_enable/clk_disable_unprepare.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 22:09:03 +04:00
Sachin Kamat 48dcf1d82f ASoC: mid-x86: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 22:07:59 +04:00
Fabio Baltieri b9600b4b1c ASoC: ab8500-codec: Add missing ad_to_slot definitions
According to the AB8500 user manual AD to Slot register multiplexer
accept values from 0 to 15 where:

   0 to  7 corresponds to AD_OUTx slots
   8 to 11 corresponds to zero output
  12 to 15 sets the output in tristate mode

Update enum_ad_to_slot_map array to reflect this definition.

This also allows alsamixer to properly display the default
configuration, as all controls are set to tristate (=12) at reset.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 22:06:10 +04:00
Fabio Baltieri 2e8e3880a1 ASoC: ux500: drop clock gating widgets from machine driver
Drop ab8500 clock gating widgets from mop500_ab8500_ctrls, as these bits
are already controlled by ab8500 codec driver and should not be exposed
to the user.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 22:06:10 +04:00
Fabio Baltieri f656df6574 ASoC: ux500: register controls to card instead of codec
Update mop500_ab8500_machine_init to register mop500_ab8500_ctrls as
card control instead of codec control, as it only contains
SOC_DAPM_PIN_SWITCH definitions.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 22:06:10 +04:00
Uwe Kleine-König bfcc74e610 ASoC: SPEAr spdif_{in,out}: use devm for clk and a few more cleanups
Drop dev_set_drvdata as this is handled in the core and use
devm_request_and_ioremap instead of devm_ioremap to properly register the
address range used

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 22:03:12 +04:00
Lars-Peter Clausen 52c102e534 ASoC: spear: Use generic dmaengine PCM
Use the generic dmaengine PCM driver instead of a custom implementation.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 22:01:41 +04:00
Lars-Peter Clausen 46fdd8b11d ASoC: spear: Setup dma data in DAI probe
This allows us to access the DAI DMA data when we create the PCM. We'll use
this when converting spear to generic DMA engine PCM driver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:58:03 +04:00
Marek Belisko f9c8ba8965 ASoC: spdif_receiver: Add DT support.
Add devicetree support for this dummy audio soc driver.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:51:06 +04:00
Marek Belisko 1b7c8b350f ASoC: spdif_transmitter: Add DT support.
Add devicetree support for this dummy audio soc driver.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:51:06 +04:00
Marek Belisko ee492cfcb1 ASoC: spdif_transceiver: Change driver filename to spdif_transmitter.c.
Transceiver usually means receiver + transmitter. This codec can do only
transmit. Update driver accordingly.

Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:51:06 +04:00
Fabio Estevam af8ee11209 ASoC: sgtl5000: Fix driver probe after reset
After a 'reboot' command in Linux or after pressing the system's reset button
the sgtl5000 driver fails to probe:

sgtl5000 0-000a: Device with ID register ffff is not a sgtl5000
sgtl5000 0-000a: ASoC: failed to probe CODEC -19
imx-sgtl5000 sound.12: ASoC: failed to instantiate card -19
imx-sgtl5000 sound.12: snd_soc_register_card failed (-19)

sgtl5000 codec does not have a reset line, nor a reset command in software, so
after a system reset the codec does not contain the default register values
from sgtl5000_reg_defaults[] anymore, as these are only valid after a
power-on-reset cycle.

Fix this issue by explicitly reading all the reset register values from
sgtl5000_reg_defaults[] and writing them back into sgtl5000 to ensure a sane
state.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Eric Nelson <eric.nelson@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:50:02 +04:00
Fabio Estevam b871f1ad3c ASoC: sgtl5000: Read SGTL5000_CHIP_ID in i2c_probe()
The usual place for reading chip ID is inside i2c_probe, so move it there and
also convert it to regmap.

sgtl5000_enable_regulators() needs to read the chip revision, so keep the
revision check there.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:50:02 +04:00
Fabio Estevam 24279dcee5 ASoC: mxs-sgtl5000: Remove unneeded fields from snd_soc_dai_link
It makes no sense to hardcode the I2C bus into the codec_name field.

cpu_dai_name and platform_name are also overwritten later in
mxs_sgtl5000_probe_dt().

So remove the three fields, as mxs platform is dt-only platform.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:50:02 +04:00
Fabio Estevam 29f421c210 ASoC: mxs-sgtl5000: Remove unneeded 'ret' variable
Variable 'ret' is not needed here, so just remove it.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:50:02 +04:00
Fabio Estevam e5d80e82e3 ASoC: sgtl5000: Convert to use regmap directly
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:50:02 +04:00
Fabio Estevam 271f193d73 ASoC: sgtl5000: Fix comment about register addresses
The list below the comment relates to sgtl5000 registers addresses, so change
the comment to improve the description.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:50:01 +04:00
Sachin Kamat e75fa9b1f9 ASoC: Samsung: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:49:13 +04:00
Sachin Kamat 3d77876b8f ASoC: omap-mcbsp: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:48:29 +04:00
Fabio Estevam e76af6d189 ASoC: mxs: mxs-saif: Let device core handle pinctrl
Since commit ab78029 (drivers/pinctrl: grab default handles from device core),
we can rely on device core for handling pinctrl.

So remove devm_pinctrl_get_select_default() from the driver.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:47:51 +04:00
Sachin Kamat bc2716fb5a ASoC: jz4740: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:46:16 +04:00
Fabio Estevam 436947fc82 ASoC: fsl: imx-audmux: Let device core handle pinctrl
Since commit ab78029 (drivers/pinctrl: grab default handles from device core),
we can rely on device core for handling pinctrl.

So remove devm_pinctrl_get_select_default() from the driver.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:45:34 +04:00
Fabio Estevam 666c25e3d7 ASoC: mxs-sgtl5000: Remove unneeded fields from snd_soc_dai_link
It makes no sense to hardcode the I2C bus into the codec_name field.

cpu_dai_name and platform_name are also overwritten later in
mxs_sgtl5000_probe_dt().

So remove the three fields, as mxs platform is dt-only platform.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:45:34 +04:00
Fabio Estevam f8b24fcbd0 ASoC: mxs-sgtl5000: Remove unneeded 'ret' variable
Variable 'ret' is not needed here, so just remove it.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:45:34 +04:00
Fabio Estevam 2fc059f2cc ASoC: imx-sgtl5000: Do not enter the error path on success
Return on success instead of entering the error path.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:45:34 +04:00
Sachin Kamat 701c73aa89 ASoC: ep93xx: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:44:54 +04:00
Mark Brown 8011412999 ASoC: dapm: Provide early event callbacks for power up and down
Some devices may benefit from being able to start some parts of the widget
power up/down sequence earlier on in the sequence than the point at which
the final power state is committed. Support these by providing events which
are called before any power state changes are done.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
2013-05-12 20:44:18 +04:00
Michał Mirosław 10e8aa9af1 ASoC: fix kernel message grepability
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:44:18 +04:00
Mark Brown 9b74fad508 ASoC: sam9g20ek: Let device core handle pinctrl
Since commit ab78029 (drivers/pinctrl: grab default handles from device
core) we can rely on device core for handling pinctrl so remove
devm_pinctrl_get_select_default() from the driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Bo Shen <voice.shen@atmel.com>
2013-05-12 20:43:37 +04:00
Dimitris Papastamos 6ab2b7b415 ASoC: wm_adsp: Expose coefficient blocks as ALSA binary controls
Add initial support for runtime tuning for the ADSP cores.  This
is achieved by exposing the coefficient configuration blocks as
ALSA binary controls.
The current code assumes that no controls on the DSP are volatile.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:30:36 +04:00
Sachin Kamat b1d9e66c1c ASoC: 88pm860x: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-12 20:19:53 +04:00
Linus Torvalds 05a88a4360 sound fixes for v3.10-rc1
This contains small fixes since the previous pull request:
 - A few regression fixes and small updates of HD-audio
 - Yet another fix for Haswell HDMI audio
 - A copule of trivial fixes in ASoC McASP, DPAM and WM8994
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQIcBAABAgAGBQJRjOOfAAoJEGwxgFQ9KSmkzE8P/iX7Tz8F7DCTJnbE6W617fwI
 z9weFqy7D/f6pTlMZrfzVCFJQBcACYLxN5OxfPDNu4zMao1Cki6ngococ6QBRMl/
 bSu02pM3N2EGQQU4emQYfgR6+ZelUlVDS441jmIz6JOQYQql+eZZnO1XxWb0fHQC
 MtHcxWLMhuXIcgSDeYeg+wQZjM/XxeN/AYA8Lnn8EEwoNV6vrZw4slOm8eC9qQnb
 uqLjrivhcJpARetl/n5aPdIbtplkUVUAeyZnK6O4NHsN7AqBQ2RXSpPTTj4DV+fN
 pN0Ah39eDNcF/zM0JqcDheSXP7MkB7s7kRcZOEmPwNSgCXfhjdwPDd4Si2y5tTbI
 NMIZUawEdx47NkZDmyGRHyOQLixkMC/+qPQcD7cAof5WJAygpBAyU9WlOEVJ9MOZ
 ytA0S+RWW05+jh5tiYHI+pjVl1TcN/ltgMsyBu+3owI4jQQs9LyIYR+IM4QkhpfE
 gNDeDV6Do0xL0LSnPfYwgxV+H0oSWrRrUOlgEEeuyXBLcnIqJfUl+Y4n7afwO+xz
 04izx1SUdp4dQ9Fo2/jInVn/EhQwwpw361yNUHtozFCh4ETNatBGiXIvWyLSW4FS
 j9d+aNIZR4CtZ28+wymFSw6yiqLkJArNoUNgcJcKATgeqg6CUa+ZdYi6gkirp+gk
 sU+bSxrxp4dv5hOj+rIF
 =DMsb
 -----END PGP SIGNATURE-----

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

Pull sound fixes from Takashi Iwai:
 "This contains small fixes since the previous pull request:

   - A few regression fixes and small updates of HD-audio

   - Yet another fix for Haswell HDMI audio

   - A copule of trivial fixes in ASoC McASP, DPAM and WM8994"

* tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  Revert "ALSA: hda - Don't set up active streams twice"
  ALSA: Add comment for control TLV API
  ALSA: hda - Apply pin-enablement workaround to all Haswell HDMI codecs
  ALSA: HDA: Fix Oops caused by dereference NULL pointer
  ALSA: mips/sgio2audio: Remove redundant platform_set_drvdata()
  ALSA: mips/hal2: Remove redundant platform_set_drvdata()
  ALSA: hda - Fix 3.9 regression of EAPD init on Conexant codecs
  sound: Fix make allmodconfig on MIPS
  ALSA: hda - Fix system panic when DMA > 40 bits for Nvidia audio controllers
  ALSA: atmel: Remove redundant platform_set_drvdata()
  ASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.
  ASoC: wm8994: missing break in wm8994_aif3_hw_params()
  ASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format
  ASoC: dapm: use clk_prepare_enable and clk_disable_unprepare
2013-05-10 07:51:56 -07:00
Takashi Iwai 6c35ae3c32 Revert "ALSA: hda - Don't set up active streams twice"
This reverts commit affdb62b81.

The commit introduced a regression with AD codecs where the stream is
always clean up.  Since the patch is just a minor optimization and
reverting the commit fixes the issue, let's just revert it.

Reported-and-tested-by: Michael Burian <michael.burian@sbg.at>
Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-10 13:41:37 +02:00
Axel Lin 61559af111 ASoC: da7213: Fix setting dmic_samplephase and dmic_clk_rate
When set dmic_samplephase and dmic_clk_rate bits for dmic_cfg,
current code checks pdata->dmic_data_sel which is wrong.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-05-09 14:29:04 +01:00
Fabio Baltieri 2371e9cf14 ASoC: ux500: Swap even/odd AD slot definitions
AD slots definitions for ab8500 codec were erroneously swapped between
even and odd channels.  Fix this by swapping the definitions to be
coherent with the channel number.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-08 12:02:30 +01:00
Takashi Iwai 17df3f5565 ALSA: hda - Apply pin-enablement workaround to all Haswell HDMI codecs
This is a revised patch based on Mengdong Lin's fix patch, which is a
supplement to a previous patch [1611a9c9: ALSA: hda - Add fixup for
Haswell to enable all pin and convertor widgets].

Some Haswell BIOS will disable the 2nd and 3rd pin/covertor widgets
when the HD-A controller changes state from D3 to D0.  So when the
controller resumes after a system or runtime suspend, these widgets
are disabled and programming these widgets to D0 will cause H/W error
and codec will not respond.

In addition, we found out that some BIOS disables the pins at S3
although it shows up at boot.  This confuses the driver utterly, and
the hardware falls into the fatal communication error like the above.

So in this patch, we apply intel_haswell_enable_all_pins() not only as
a fixup to a certain device (with 8086:2010) but to all Haswell
machines.  The codec driver basically assumes that all pins are
exposed, so it's anyway better to see them from the beginning.  Even
if all pins and converters are shown by this call, there should be no
regression in practice: the pin default configurations are still kept,
thus the disabled pins are handled as disabled by the driver
properly.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-08 08:24:57 +02:00
Kent Overstreet a27bb332c0 aio: don't include aio.h in sched.h
Faster kernel compiles by way of fewer unnecessary includes.

[akpm@linux-foundation.org: fix fallout]
[akpm@linux-foundation.org: fix build]
Signed-off-by: Kent Overstreet <koverstreet@google.com>
Cc: Zach Brown <zab@redhat.com>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Asai Thambi S P <asamymuthupa@micron.com>
Cc: Selvan Mani <smani@micron.com>
Cc: Sam Bradshaw <sbradshaw@micron.com>
Cc: Jeff Moyer <jmoyer@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Reviewed-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-05-07 20:16:25 -07:00
Wei Yongjun 2e0192f13c ASoC: wm0010: fix error return code in wm0010_boot()
Fix to return -ENOMEM in the memory malloc of 'out' and 'img_swap' error
handling case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-07 14:54:08 +01:00
Wang YanQing 2195b063f6 ALSA: HDA: Fix Oops caused by dereference NULL pointer
The interrupt handler azx_interrupt will call azx_update_rirb,
which may call snd_hda_queue_unsol_event, snd_hda_queue_unsol_event
will dereference chip->bus pointer.

The problem is we alloc chip->bus in azx_codec_create
which will be called after we enable IRQ and enable unsolicited
event in azx_probe.

This will cause Oops due dereference NULL pointer. I meet it, good luck:)

[Rearranged the NULL check before the tracepoint and added another
 NULL check of bus->workq -- tiwai]

Signed-off-by: Wang YanQing <udknight@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-07 07:31:59 +02:00
Sachin Kamat 5a4ca9b3fa ALSA: mips/sgio2audio: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Vivien Chappelier <vivien.chappelier@linux-mips.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-06 10:45:54 +02:00
Sachin Kamat 3183520616 ALSA: mips/hal2: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Thomas Bogendoerfer <tsbogend@alpha.fanken.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-06 10:45:47 +02:00
Takashi Iwai ff359b1491 ALSA: hda - Fix 3.9 regression of EAPD init on Conexant codecs
The older Conexant codecs have up to two EAPDs and these are supposed
to be rather statically turned on.  The new generic parser code
assumes the dynamic on/off per path usage, thus it resulted in the
silent output on some machines.

This patch fixes the problem by simply assuming the static EAPD on for
such old Conexant codecs as we did until 3.8 kernel.

Reported-and-tested-by: Christopher K. <c.krooss@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-04 10:57:16 +02:00
Linus Torvalds 9992ba7232 sound updates for v3.10-rc1
Mostly many small changes spread as seen in diffstat in sound/*
 directory by this update.  A significant change in the subsystem level
 is the introduction of snd_soc_component, which will help more generic
 handling of SoC and off-SoC components.
 
 Also, snd_BUG_ON() macro is enabled unconditionally now due to its
 misuses, so people might hit kernel warnings (it's a good thing for
 us).
 
 - compress-offload: support for capture by Charles Keepax
 - HD-audio: codec delay support by Dylan Reid
 - HD-audio: improvements/fixes in generic parser: better headphone mic
   and headset mic support, jack_modes hint consolidation, proper beep
   attach/detachment, generalized power filter controls by David
   Henningsson, et al
 - HD-audio: Improved management of HDMI codec pins/converters
 - HD-audio: Better pin/DAC assignment for VIA codecs
 - HD-audio: Haswell HDMI workarounds
 - HD-audio: ALC268 codec support, a few new quirks for Chromebooks
 - USB: regression fixes: USB-MIDI autopm fix, the recent ISO latency
   fix by Clemens Ladisch
 - USB: support for DSD formats by Daniel Mack
 - USB: A few UAC2 device endian/cock fixes by Eldad Zack
 - USB: quirks for Emu 192kHz support, Novation Twitch DJ controller,
   Yamaha THRxx devices
 - HDSPM: updates for TCO controls by Adrian Knoth
 - ASoC: Add a snd_soc_component object type for generic handling of
   SoC and off-SoC components by Kuninori Morimoto,
 - dmaengine: a large set of cleanups and conversions by Lars-Peter
   Clausen
 - ASoC DAPM: performance optimizations from Ryo Tsutsui
 - ASoC DAPM: support for mixer control sharing by Stephen Warren
 - ASoC: multiplatform ARM cleanups from Arnd Bergmann
 - ASoC: new codec drivers for AK5385 and TAS5086 from Daniel Mack
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQIcBAABAgAGBQJRg2bUAAoJEGwxgFQ9KSmksasQAIq1ypbylrLA3vf7PUXmL7Jb
 hMtC5tzasZqJsIZ2fyhiZL8J5yQ78Z5dhjehFWlCbJEaKhsjZVyb67RpuK597b6K
 Ypa30OghbWuCoKjmaXK9AFTuijTxdefmewIJfgwVMYtgA5rBU70qt96NC/b/UQXk
 gEPI740i7EFJL2wfcqRpGoKGO1o80yMuKzIj3gHUZMFHYYhPgvVuGt9cCe3cXwLV
 IBT77PjMoGt1Q7iJQkX4DGlB5n526l1G8a6VptdCou0qyEWfhgSik5I3msNuAXte
 1KYE4zj0Rq4xqN28/D/eAF1o3q+X9aiLttGpG0sJLiwGagdWVFaXLyJDMhZxCbwz
 1F4k+B8UCucojw3HtNzoIQJezoRX2aHMjlAZ50b416hITkg5VQe5+sJBxpjIJo4I
 GSmizUiNahDk9jtI/PEGo7yr8CdRTY3v38mdZRGYxyWgJ1a8sNwQwqUdH6A0D/w6
 3wMp4Y9Zt8AK/kiWLLWvsDVvwRptqplrXistTvv4v2xVJgvU+klDsDpa5Lz7kG7Z
 q43RA4o+yWdG6d1hTgMXp7FGwUkcer7WKWEmAZsQmX03Q0zjZqMhfUwVUtaHIx9c
 6YipHdVMAJ0sz/dYrKnZ92hbZcXNj/A9zfqYWeFlA/18FCO6u4BXODBup8BLwyUm
 hfOv+M/q6haNA98GDHS9
 =sYiI
 -----END PGP SIGNATURE-----

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

Pull sound updates from Takashi Iwai:
 "Mostly many small changes spread as seen in diffstat in sound/*
  directory by this update.  A significant change in the subsystem level
  is the introduction of snd_soc_component, which will help more generic
  handling of SoC and off-SoC components.

  Also, snd_BUG_ON() macro is enabled unconditionally now due to its
  misuses, so people might hit kernel warnings (it's a good thing for
  us).

   - compress-offload: support for capture by Charles Keepax
   - HD-audio: codec delay support by Dylan Reid
   - HD-audio: improvements/fixes in generic parser: better headphone
     mic and headset mic support, jack_modes hint consolidation, proper
     beep attach/detachment, generalized power filter controls by David
     Henningsson, et al
   - HD-audio: Improved management of HDMI codec pins/converters
   - HD-audio: Better pin/DAC assignment for VIA codecs
   - HD-audio: Haswell HDMI workarounds
   - HD-audio: ALC268 codec support, a few new quirks for Chromebooks
   - USB: regression fixes: USB-MIDI autopm fix, the recent ISO latency
     fix by Clemens Ladisch
   - USB: support for DSD formats by Daniel Mack
   - USB: A few UAC2 device endian/cock fixes by Eldad Zack
   - USB: quirks for Emu 192kHz support, Novation Twitch DJ controller,
     Yamaha THRxx devices
   - HDSPM: updates for TCO controls by Adrian Knoth
   - ASoC: Add a snd_soc_component object type for generic handling of
     SoC and off-SoC components by Kuninori Morimoto,
   - dmaengine: a large set of cleanups and conversions by Lars-Peter
     Clausen
   - ASoC DAPM: performance optimizations from Ryo Tsutsui
   - ASoC DAPM: support for mixer control sharing by Stephen Warren
   - ASoC: multiplatform ARM cleanups from Arnd Bergmann
   - ASoC: new codec drivers for AK5385 and TAS5086 from Daniel Mack"

* tag 'sound-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (315 commits)
  ALSA: usb-audio: caiaq: fix endianness bug in snd_usb_caiaq_maschine_dispatch
  ALSA: asihpi: add format support check in snd_card_asihpi_capture_formats
  ALSA: pcm_format_to_bits strong-typed conversion
  ALSA: compress: fix the states to check for allowing read
  ALSA: hda - Move Thinkpad X220 to use auto parser
  ALSA: USB: adjust for changed 3.8 USB API
  ALSA: usb - Avoid unnecessary sample rate changes on USB 2.0 clock sources
  sound: oss/dmabuf: use dma_map_single
  ALSA: ali5451: use mdelay instead of large udelay constants
  ALSA: hda - Add the support for ALC286 codec
  ALSA: usb-audio: USB quirk for Yamaha THR10C
  ALSA: usb-audio: USB quirk for Yamaha THR5A
  ALSA: usb-audio: USB quirk for Yamaha THR10
  ALSA: usb-audio: Fix autopm error during probing
  ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT
  ALSA: sound kconfig typo
  ALSA: emu10k1: Fix dock firmware loading
  ASoC: ux500: forward declare msp_i2s_platform_data
  ASoC: davinci-mcasp: Add Support BCLK-to-LRCLK ratio for TDM modes
  ASoC: davinci-pcm, davinci-mcasp: Clean up active_serializers
  ...
2013-05-03 09:10:23 -07:00
Takashi Iwai d4702b189c sound: Fix make allmodconfig on MIPS
The compile of soundcard.c is broken on MIPS when allmodconfig is used
because of the missing MAX_DMA_CHANNELS definition.  As a simple
workaround, just add a Kconfig dependency.

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-03 17:07:24 +02:00
Mike Travis 49d9e77e72 ALSA: hda - Fix system panic when DMA > 40 bits for Nvidia audio controllers
The audio driver mistakenly allows 64 bit addresses to be created for
the audio driver on Nvidia GPUs.  Unfortunately, the hardware normally
only supports up to 40 bits of DMA.  This can cause system panics as
well as misdirected data when the address is > 40 bits as the upper
part the address is truncated.

Signed-off-by: Mike Travis <travis@sgi.com>
Reviewed-by: Mike Habeck <habeck@sgi.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-03 11:56:18 +02:00
Sachin Kamat 9ea6cfbc2a ALSA: atmel: Remove redundant platform_set_drvdata()
Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-03 11:40:23 +02:00
Takashi Iwai f91eeeb595 ASoC: Updates for v3.10
A few more bug fixes, the DAPM clock fix is actually a driver specific
 one since currently there's only one user of the clock support due to
 the problems relying on the clock API.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRg3/MAAoJELSic+t+oim9W+cP/3NERwICTNvllNOrZXii7akJ
 DnzzIaw0fEJ2+hIXJzU/lEI/KjqIT7SADQRWg+eid8ZrjaUB6LXUPPuv67V4TseD
 1+8ClQp1cDg1KepBcD2S1liVjPKvW64IpXwZNgLGigW6PP21yK8+DoQvVKPVB+sP
 q72jntTzy9qWenmjygpPEYDeOfe5EM7hAaa2tFuYIPEL+EkMOXXvjx8ojylwQV6V
 5xFQ+CBSS8WHz7CKlawF3JH8TkcFGZNT9Hibhv1fpGM+iJDCsh/+MNiBwOpO+1wk
 eCJSiCWWTGgVK+3AvlSIQr8ml0EDEbS8Aq6bbJb9w4wgV65oFt2hOxOpkcK/8NcP
 qnKNYc3nRQsb3H+dObMdQNPWDjOfwsolKUOjetxosRIq4Pzm8afY96gu06EqTnw9
 XYXqoSAVpCuPDpmlu87Lajoj4T5XNq3G7ONAMpsAfMrl/xxmV11Wrs4/7S0o3Csb
 tNhO5XjLbFNTw9nVT6qZQViH7Bm1ItDM2B/tLb1yqnlgBAjNW/WlUyFg4bE4Qeyr
 hUg7DwvYPSVnr25t8RmPMmB2MdD4N+PfRy+aIEIuE9KMeYUTPVr5kFdDP7uA7Yw2
 Dn7lmAdDEq33zfTGYhGWs87IdxhD3VyEWveR6alrtBW0LS7ArtsPlWKhA074XuJj
 AmAU6RS3+75nymA9ucY+
 =WQzu
 -----END PGP SIGNATURE-----

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

ASoC: Updates for v3.10

A few more bug fixes, the DAPM clock fix is actually a driver specific
one since currently there's only one user of the clock support due to
the problems relying on the clock API.
2013-05-03 11:39:36 +02:00
Mark Brown 9631c02e24 Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linus 2013-05-03 09:30:29 +01:00
Mark Brown 57669eaab2 Merge remote-tracking branch 'asoc/fix/davinci' into asoc-linus 2013-05-03 09:30:28 +01:00
Marek Belisko df4a4eece7 ASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.
According documentation bit ACLKRPOL is set to 0 (receiver samples data
on falling edge) and when set to 1 (receiver samples data on rising edge).

I2S data are always sampled on falling edge and valid during rising edge
of bit clock. So in case of capture data transmitter sample data on falling
edge and macsp must read then on rising edge.

Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-03 09:29:59 +01:00
Linus Torvalds 99c6bcf46d ARM: arm-soc multiplatform updates for 3.10
More multiplatform enablement for ARM platforms. The ones converted in
 this branch are:
 - bcm2835
 - cns3xxx
 - sirf
 - nomadik
 - msx
 - spear
 - tegra
 - ux500
 
 We're getting close to having most of them converted!
 
 One of the larger platforms remaining is Samsung Exynos, and there are
 a bunch of supporting patches in this merge window for it. There was a
 patch in this branch to a early version of multiplatform conversion,
 but it ended up being reverted due to need of more bake time. The
 revert commit is part of the branch since it would have required
 rebasing multiple dependent branches and they were stable by then.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJRgg99AAoJEIwa5zzehBx3n78P/j0w/8v+F4dM29ba5M/tqbFI
 e3wpeFykZ/HJH+FFIEYfIablpfHsLB0LEMh0dZmwHESFC6eR0RfGL2jOkpfcH9Ne
 7B/JIFN4l1iwqqKCXf+QbYL6e8YFxlJkg6BIB4KhNgliQoO/ASP/8EbcgROYuxmN
 KPVdw9laUCCvb5Ogh2NWVAkBHhVGAEiqK20r4TQz8alI8RUmMleWM3o+wLBWVhOO
 d3gtYSfuFSbrJfbpKSdycLizoV/NekdOC1A9Ov9YuOdw8DzNbrThCRQtu0tIUgxN
 JjfnGlEJLsJS9SESfr8SYWxTuhe/lB2dGqjQPvRtl2HGBhbtTlnWfQ0k2ZHdeJuD
 J50SLrGA2gN9E5PlHJXjYk8uhhGIq8bNTJ//CtDkfKTq1D7PuHVEpEctsaz3BBbM
 U+x9zP2v4FB+yrZu8w+gkQY/wDgHsxj08mT6BK0+l8ePdyQV22CvwmM5XlJFI03x
 5J0nLYiYfef+ZN9rGgVrQbn+yv+IEkE4DmeiscjeVJE5LVdVrDpYGfx7UA7V0UA7
 i3KRVpNKuy1v7GJDnKlEBPkmB+vgXTRXUPDVCuC4n0Hi5PYj4es1gY6AoXGF90wm
 vtKxGr/2XDLP7Ro+m0OXMttSgQShnmbrbOngfkWcFwUmG7cB3SSUUOGKM+2LNnXM
 MJTqVhPjkZ2GYBi/J6S/
 =4hSo
 -----END PGP SIGNATURE-----

Merge tag 'multiplatform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC multiplatform updates from Olof Johansson:
 "More multiplatform enablement for ARM platforms.  The ones converted
  in this branch are:

   - bcm2835
   - cns3xxx
   - sirf
   - nomadik
   - msx
   - spear
   - tegra
   - ux500

  We're getting close to having most of them converted!

  One of the larger platforms remaining is Samsung Exynos, and there are
  a bunch of supporting patches in this merge window for it.  There was
  a patch in this branch to a early version of multiplatform conversion,
  but it ended up being reverted due to need of more bake time.  The
  revert commit is part of the branch since it would have required
  rebasing multiple dependent branches and they were stable by then"

* tag 'multiplatform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (70 commits)
  mmc: sdhci-s3c: Fix operation on non-single image Samsung platforms
  clocksource: nomadik-mtu: fix up clocksource/timer
  Revert "ARM: exynos: enable multiplatform support"
  ARM: SPEAr13xx: Fix typo "ARCH_HAVE_CPUFREQ"
  ARM: exynos: enable multiplatform support
  rtc: s3c: make header file local
  mtd: onenand/samsung: make regs-onenand.h file local
  thermal/exynos: remove unnecessary header inclusions
  mmc: sdhci-s3c: remove platform dependencies
  ARM: samsung: move mfc device definition to s5p-dev-mfc.c
  ARM: exynos: move debug-macro.S to include/debug/
  ARM: exynos: prepare for sparse IRQ
  ARM: exynos: introduce EXYNOS_ATAGS symbol
  ARM: tegra: build assembly files with -march=armv7-a
  ARM: Push selects for TWD/SCU into machine entries
  ARM: ux500: build hotplug.o for ARMv7-a
  ARM: ux500: move to multiplatform
  ARM: ux500: make remaining headers local
  ARM: ux500: make irqs.h local to platform
  ARM: ux500: get rid of <mach/[hardware|db8500-regs].h>
  ...
2013-05-02 09:38:16 -07:00
Linus Torvalds a7726350e0 ARM: arm-soc cleanup for 3.10
Here is a collection of cleanup patches. Among the pieces that stand out are:
 
 - The deletion of h720x platforms
 - Split of at91 non-dt platforms to their own Kconfig file to keep them separate
 - General cleanups and refactoring of i.MX and MXS platforms
 - Some restructuring of clock tables for OMAP
 - Convertion of PMC driver for Tegra to dt-only
 - Some renames of sunxi -> sun4i (Allwinner A10)
 - ... plus a bunch of other stuff that I haven't mentioned
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJRggUqAAoJEIwa5zzehBx3HjEQAJwp7heRs/HwTDzmzcyHkRMV
 usbaa9dHBuAZ0DzsWjLK99xEn8VWD9TvbeP6hN5gNhxko06UVza3o8PI2iV1ztMB
 9K3u2+LS5on/5cOxnsU1va16h5hBZ0ZIgNx5NY+PZ5mBY6v1U3qTjljPP62iXp63
 w+sdXeZDe/c5JvuoDRbY0OBR++3Jp8cQg7KbU78jWz3r5D2rC1zwhkf2audcRY6b
 jIWTj9M8CHynh/D6OzKqDcOYorBHNSRj0YbiWS2nnMfm+0V8nya00EPRpCPRiBUb
 sobSy1CI9Qxiih3bOf6QCfzCRzJ5hbtE0zlI8g3bqtEZ1yOsE949HrKapWHJJdIU
 JNTXrxXORAnaRhbzvSPNpp/iJBSDQRsfEETgv5BuHg/4lzTQfzElySbcgb4EeoHr
 7Zt8ZR2/Du+u76qIPqs19ES3Wx+nOEOfSDAgZmlfPvlwmlGDYvqAXoeJ006VXnhG
 JacLuD/cFnJ1w00Bcl48ZXMIsVkoRqjvsCG5q688HGXMM1lU8DfgUpQY6OCWAbdu
 kFnBinJZk+HbE8FGS8O0BoQ+oiC0YIr2XhATL66PGHq7bLHb5ycwvZ7mrfC0AN9j
 M9hqTFednwfo9wF8vSj5nMsxXwP8/mky4ECGoFvLsMYDosunrNVnAHtTgDSE+ZgO
 6kQJ1P8jBBXn2LyjF88W
 =xCAx
 -----END PGP SIGNATURE-----

Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC cleanup from Olof Johansson:
 "Here is a collection of cleanup patches.  Among the pieces that stand
  out are:

   - The deletion of h720x platforms
   - Split of at91 non-dt platforms to their own Kconfig file to keep
     them separate
   - General cleanups and refactoring of i.MX and MXS platforms
   - Some restructuring of clock tables for OMAP
   - Convertion of PMC driver for Tegra to dt-only
   - Some renames of sunxi -> sun4i (Allwinner A10)
   - ... plus a bunch of other stuff that I haven't mentioned"

* tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (119 commits)
  ARM: i.MX: remove unused ARCH_* configs
  ARM i.MX53: remove platform ahci support
  ARM: sunxi: Rework the restart code
  irqchip: sunxi: Rename sunxi to sun4i
  irqchip: sunxi: Make use of the IRQCHIP_DECLARE macro
  clocksource: sunxi: Rename sunxi to sun4i
  clocksource: sunxi: make use of CLKSRC_OF
  clocksource: sunxi: Cleanup the timer code
  ARM: at91: remove trailing semicolon from macros
  ARM: at91/setup: fix trivial typos
  ARM: EXYNOS: remove "config EXYNOS_DEV_DRM"
  ARM: EXYNOS: change the name of USB ohci header
  ARM: SAMSUNG: Remove unnecessary code for dma
  ARM: S3C24XX: Remove unused GPIO drive strength register definitions
  ARM: OMAP4+: PM: Restore CPU power state to ON with clockdomain force wakeup method
  ARM: S3C24XX: Removed unneeded dependency on CPU_S3C2412
  ARM: S3C24XX: Removed unneeded dependency on CPU_S3C2410
  ARM: S3C24XX: Removed unneeded dependency on ARCH_S3C24XX for boards
  ARM: SAMSUNG: Fix typo "CONFIG_SAMSUNG_DEV_RTC"
  ARM: S5P64X0: Fix typo "CONFIG_S5P64X0_SETUP_SDHCI"
  ...
2013-05-02 09:03:55 -07:00
Linus Torvalds 20b4fb4852 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull VFS updates from Al Viro,

Misc cleanups all over the place, mainly wrt /proc interfaces (switch
create_proc_entry to proc_create(), get rid of the deprecated
create_proc_read_entry() in favor of using proc_create_data() and
seq_file etc).

7kloc removed.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
  don't bother with deferred freeing of fdtables
  proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
  proc: Make the PROC_I() and PDE() macros internal to procfs
  proc: Supply a function to remove a proc entry by PDE
  take cgroup_open() and cpuset_open() to fs/proc/base.c
  ppc: Clean up scanlog
  ppc: Clean up rtas_flash driver somewhat
  hostap: proc: Use remove_proc_subtree()
  drm: proc: Use remove_proc_subtree()
  drm: proc: Use minor->index to label things, not PDE->name
  drm: Constify drm_proc_list[]
  zoran: Don't print proc_dir_entry data in debug
  reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
  proc: Supply an accessor for getting the data from a PDE's parent
  airo: Use remove_proc_subtree()
  rtl8192u: Don't need to save device proc dir PDE
  rtl8187se: Use a dir under /proc/net/r8180/
  proc: Add proc_mkdir_data()
  proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
  proc: Move PDE_NET() to fs/proc/proc_net.c
  ...
2013-05-01 17:51:54 -07:00
David Howells a8ca16ea7b proc: Supply a function to remove a proc entry by PDE
Supply a function (proc_remove()) to remove a proc entry (and any subtree
rooted there) by proc_dir_entry pointer rather than by name and (optionally)
root dir entry pointer.  This allows us to eliminate all remaining pde->name
accesses outside of procfs.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Grant Likely <grant.likely@linaro.or>
cc: linux-acpi@vger.kernel.org
cc: openipmi-developer@lists.sourceforge.net
cc: devicetree-discuss@lists.ozlabs.org
cc: linux-pci@vger.kernel.org
cc: netdev@vger.kernel.org
cc: netfilter-devel@vger.kernel.org
cc: alsa-devel@alsa-project.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-05-01 17:29:46 -04:00
David Howells 271a15eabe proc: Supply PDE attribute setting accessor functions
Supply accessor functions to set attributes in proc_dir_entry structs.

The following are supplied: proc_set_size() and proc_set_user().

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
cc: linuxppc-dev@lists.ozlabs.org
cc: linux-media@vger.kernel.org
cc: netdev@vger.kernel.org
cc: linux-wireless@vger.kernel.org
cc: linux-pci@vger.kernel.org
cc: netfilter-devel@vger.kernel.org
cc: alsa-devel@alsa-project.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-05-01 17:29:18 -04:00
Dan Carpenter 4495e46fe1 ASoC: wm8994: missing break in wm8994_aif3_hw_params()
The missing break here means that we always return early and the
function is a no-op.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-04-30 19:45:42 +01:00
Marek Belisko 81ee6833bc ASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format
When McASP is bit clock and frame clock master enable pin output for rx clocks.

Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-30 19:44:23 +01:00
Fabio Baltieri 37c1b9273f ASoC: dapm: use clk_prepare_enable and clk_disable_unprepare
Update dapm_clock_event to use clk_prepare_enable and
clk_disable_unprepare.

Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-30 19:31:30 +01:00
Linus Torvalds 240c3c3424 Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media update from Mauro Carvalho Chehab:

 - OF documentation and patches at core and drivers, to be used by for
   embedded media systems

 - some I2C drivers used on go7007 were rewritten/promoted from staging:
   sony-btf-mpx, tw2804, tw9903, tw9906, wis-ov7640, wis-uda1342

 - add fimc-is driver (Exynos)

 - add a new radio driver: radio-si476x

 - add a two new tuners: r820t and tuner_it913x

 - split camera code on em28xx driver and add more models

 - the cypress firmware load is used outside dvb usb drivers.  So, move
   it to a common directory to make easier to re-use it

 - siano media driver updated to work with sms2270 devices

 - several work done in order to promote go7007 and solo6x1x out of
   staging (still, there are some pending issues)

 - several API compliance fixes at v4l2 drivers that don't behave as
   expected

 - as usual, lots of driver fixes, improvements, cleanups and new device
   addition at the existing drivers.

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (831 commits)
  [media] cx88: make core less verbose
  [media] em28xx: fix oops at em28xx_dvb_bus_ctrl()
  [media] s5c73m3: fix indentation of the help section in Kconfig
  [media] cx25821-alsa: get rid of a __must_check warning
  [media] cx25821-video: declare cx25821_vidioc_s_std as static
  [media] cx25821-video: remove maxw from cx25821_vidioc_try_fmt_vid_cap
  [media] r820t: Remove a warning for an unused value
  [media] dib0090: Fix a warning at dib0090_set_EFUSE
  [media] dib8000: fix a warning
  [media] dib8000: Fix sub-channel range
  [media] dib8000: store dtv_property_cache in a temp var
  [media] dib8000: warning fix: declare internal functions as static
  [media] r820t: quiet gcc warning on n_ring
  [media] r820t: memory leak in release()
  [media] r820t: precendence bug in r820t_xtal_check()
  [media] videodev2.h: Remove the unused old V4L1 buffer types
  [media] anysee: Grammar s/report the/report to/
  [media] anysee: Initialize ret = 0 in anysee_frontend_attach()
  [media] media: videobuf2: fix the length check for mmap
  [media] em28xx: save isoc endpoint number for DVB only if endpoint has alt settings with xMaxPacketSize != 0
  ...
2013-04-30 09:58:16 -07:00
Linus Torvalds 5d434fcb25 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
Pull trivial tree updates from Jiri Kosina:
 "Usual stuff, mostly comment fixes, typo fixes, printk fixes and small
  code cleanups"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (45 commits)
  mm: Convert print_symbol to %pSR
  gfs2: Convert print_symbol to %pSR
  m32r: Convert print_symbol to %pSR
  iostats.txt: add easy-to-find description for field 6
  x86 cmpxchg.h: fix wrong comment
  treewide: Fix typo in printk and comments
  doc: devicetree: Fix various typos
  docbook: fix 8250 naming in device-drivers
  pata_pdc2027x: Fix compiler warning
  treewide: Fix typo in printks
  mei: Fix comments in drivers/misc/mei
  treewide: Fix typos in kernel messages
  pm44xx: Fix comment for "CONFIG_CPU_IDLE"
  doc: Fix typo "CONFIG_CGROUP_CGROUP_MEMCG_SWAP"
  mmzone: correct "pags" to "pages" in comment.
  kernel-parameters: remove outdated 'noresidual' parameter
  Remove spurious _H suffixes from ifdef comments
  sound: Remove stray pluses from Kconfig file
  radio-shark: Fix printk "CONFIG_LED_CLASS"
  doc: put proper reference to CONFIG_MODULE_SIG_ENFORCE
  ...
2013-04-30 09:36:50 -07:00
Mauro Carvalho Chehab df90e22589 Merge branch 'devel-for-v3.10' into v4l_for_linus
* patchwork: (831 commits)
  [media] cx88: make core less verbose
  [media] em28xx: fix oops at em28xx_dvb_bus_ctrl()
  [media] s5c73m3: fix indentation of the help section in Kconfig
  [media] cx25821-alsa: get rid of a __must_check warning
  [media] cx25821-video: declare cx25821_vidioc_s_std as static
  [media] cx25821-video: remove maxw from cx25821_vidioc_try_fmt_vid_cap
  [media] r820t: Remove a warning for an unused value
  [media] dib0090: Fix a warning at dib0090_set_EFUSE
  [media] dib8000: fix a warning
  [media] dib8000: Fix sub-channel range
  [media] dib8000: store dtv_property_cache in a temp var
  [media] dib8000: warning fix: declare internal functions as static
  [media] r820t: quiet gcc warning on n_ring
  [media] r820t: memory leak in release()
  [media] r820t: precendence bug in r820t_xtal_check()
  [media] videodev2.h: Remove the unused old V4L1 buffer types
  [media] anysee: Grammar s/report the/report to/
  [media] anysee: Initialize ret = 0 in anysee_frontend_attach()
  [media] media: videobuf2: fix the length check for mmap
  [media] em28xx: save isoc endpoint number for DVB only if endpoint has alt settings with xMaxPacketSize != 0
  ...

Conflicts:
	drivers/media/pci/cx25821/cx25821-video.c
	drivers/media/platform/Kconfig
2013-04-30 09:01:04 -03:00
Eldad Zack 4ca231b2e6 ALSA: usb-audio: caiaq: fix endianness bug in snd_usb_caiaq_maschine_dispatch
Current code does this:

  be16_to_cpu(buf[i * 2] << 8 | buf[(i * 2) + 1])

Which is effectively (neglecting the index):

  be16_to_cpu(be16_to_cpu(*((u16 *) buf)))

This means the int16 in the buffer is not converted at all.

Daniel Mack confirmed that the driver works on little endian
CPUs, leading to the conclusion that the device-side structure
is actually little endian.
This changes the code to use le16_to_cpu().

Caught by sparse.

Acked-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-30 09:19:02 +02:00
Al Viro fca660beb8 dmasound_core: saner arguments for sq_fsync()
it is not (and it has never been) an ->fsync() instance...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-04-29 15:41:42 -04:00
Linus Torvalds 4f567cbc95 Char / Misc driver update for 3.10-rc1
Here's the big char / misc driver update for 3.10-rc1
 
 A number of various driver updates, the majority being new functionality
 in the MEI driver subsystem (it's now a subsystem, it started out just a
 single driver), extcon updates, memory updates, hyper-v updates, and a
 bunch of other small stuff that doesn't fit in any other tree.
 
 All of these have been in linux-next for a while
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iEYEABECAAYFAlF+mtYACgkQMUfUDdst+ymFXQCfdLsD4Cxz+jkgW+tljh9i70XD
 OFkAnRPMMhLS8/kddf02lLMYzYUFdy1U
 =zaFJ
 -----END PGP SIGNATURE-----

Merge tag 'char-misc-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char/misc driver update from Greg Kroah-Hartman:
 "Here's the big char / misc driver update for 3.10-rc1

  A number of various driver updates, the majority being new
  functionality in the MEI driver subsystem (it's now a subsystem, it
  started out just a single driver), extcon updates, memory updates,
  hyper-v updates, and a bunch of other small stuff that doesn't fit in
  any other tree.

  All of these have been in linux-next for a while"

* tag 'char-misc-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (148 commits)
  Tools: hv: Fix a checkpatch warning
  tools: hv: skip iso9660 mounts in hv_vss_daemon
  tools: hv: use FIFREEZE/FITHAW in hv_vss_daemon
  tools: hv: use getmntent in hv_vss_daemon
  Tools: hv: Fix a checkpatch warning
  tools: hv: fix checks for origin of netlink message in hv_vss_daemon
  Tools: hv: fix warnings in hv_vss_daemon
  misc: mark spear13xx-pcie-gadget as broken
  mei: fix krealloc() misuse in in mei_cl_irq_read_msg()
  mei: reduce flow control only for completed messages
  mei: reseting -> resetting
  mei: fix reading large reposnes
  mei: revamp mei_irq_read_client_message function
  mei: revamp mei_amthif_irq_read_message
  mei: revamp hbm state machine
  Revert "drivers/scsi: use module_pcmcia_driver() in pcmcia drivers"
  Revert "scsi: pcmcia: nsp_cs: remove module init/exit function prototypes"
  scsi: pcmcia: nsp_cs: remove module init/exit function prototypes
  mei: wd: fix line over 80 characters
  misc: tsl2550: Use dev_pm_ops
  ...
2013-04-29 11:18:34 -07:00
Eldad Zack 167d0a11d5 ALSA: asihpi: add format support check in snd_card_asihpi_capture_formats
Some Asihpi formats are not supported or invalid, and their mapping to
ALSA format is set to -1.
Before performing the format conversion into ALSA bitwise formats,
add a consistency check for the requested format, as done in
snd_card_asihpi_playback_formats().

Compile tested only.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-29 13:37:33 +02:00
Eldad Zack 74c34ca1cc ALSA: pcm_format_to_bits strong-typed conversion
Add a function to handle conversion from snd_pcm_format_t
to bitwise with proper typing.

Change such conversions to use this function and silence sparse
warnings.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-29 13:36:15 +02:00
Vinod Koul 754813473c ALSA: compress: fix the states to check for allowing read
for reading compressed data, we need to allow when we are paused, draining or
stopped.

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Cc: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Cc: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-29 13:33:18 +02:00
David Henningsson a555bb8c6b ALSA: hda - Move Thinkpad X220 to use auto parser
This enables better volume controls than the current model parser.
Also, because the original quirk for X220 was added to fix
docking station support, add the TP410 fixup instead.

Reported-by: Willian Jon McCann <william.jon.mccann@gmail.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-29 10:58:53 +02:00
Clemens Ladisch c75c5ab575 ALSA: USB: adjust for changed 3.8 USB API
The recent changes in the USB API ("implement new semantics for
URB_ISO_ASAP") made the former meaning of the URB_ISO_ASAP flag the
default, and changed this flag to mean that URBs can be delayed.
This is not the behaviour wanted by any of the audio drivers because
it leads to discontinuous playback with very small period sizes.
Therefore, our URBs need to be submitted without this flag.

Reported-by: Joe Rayhawk <jrayhawk@fairlystable.org>
Cc: <stable@vger.kernel.org> # 3.8 only
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-29 10:57:35 +02:00
Olof Johansson afcf7924ec Merge branch 'fixes' into next/cleanup
Merging in fixes since there's a conflict in the omap4 clock tables caused by
it.

* fixes: (245 commits)
  ARM: highbank: fix cache flush ordering for cpu hotplug
  ARM: OMAP4: hwmod data: make 'ocp2scp_usb_phy_phy_48m" as the main clock
  arm: mvebu: Fix the irq map function in SMP mode
  Fix GE0/GE1 init on ix2-200 as GE0 has no PHY
  ARM: S3C24XX: Fix interrupt pending register offset of the EINT controller
  ARM: S3C24XX: Correct NR_IRQS definition for s3c2440
  ARM i.MX6: Fix ldb_di clock selection
  ARM: imx: provide twd clock lookup from device tree
  ARM: imx35 Bugfix admux clock
  ARM: clk-imx35: Bugfix iomux clock
  + Linux 3.9-rc6

Signed-off-by: Olof Johansson <olof@lixom.net>

Conflicts:
	arch/arm/mach-omap2/cclock44xx_data.c
2013-04-28 15:01:12 -07:00
David Henningsson fa92dd77ec ALSA: usb - Avoid unnecessary sample rate changes on USB 2.0 clock sources
The Scarlett 2i2 seems to take almost 500 ms to set the sample rate,
even if the clock is currently set to that value. This patch speeds
up prepare of the device, by avoiding setting the clock to something
it already is.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-26 07:37:09 +02:00
Arnd Bergmann 4b417cf016 sound: oss/dmabuf: use dma_map_single
The virt_to_bus/bus_to_virt functions have been deprecated
for as long as I can remember, and they are used in very
few remaining instances, usually in obscure ISA device
drivers. The OSS sound drivers are the only ones that are
still used on the ARM architecture, and only on some of
the earliest StrongARM machines.

The problem for converting the OSS subsystem to use
dma_map_single instead is that the caller of virt_to_bus
does not have a device pointer, since the subsystem has
never been ported to use the common device infrastructure.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-26 07:36:38 +02:00
Arnd Bergmann 7603935838 ALSA: ali5451: use mdelay instead of large udelay constants
ARM cannot handle udelay for more than 2 miliseconds, so we
should use mdelay instead for those.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-26 07:36:21 +02:00
Takashi Iwai 2fc565e4ea ASoC: More updates for v3.10
A few more fixes, nothing too major though the DMA changes fix modular
 builds.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJReQc9AAoJELSic+t+oim9rJ8P/22SasqSPnFYsM+VGKkuGVUd
 PbxmN93f/ZSR5uEiNY/VF+CN/ItrM9rbhO2KJrJZTec8Hl3FlKtK7QubiPOzHTZN
 RCiHuZaC95Gdyeq9w87EIBWW2AjA4Lb8seVRW2tjD/LneOmlSTOXTb3i6vQB+65J
 gEIiz/z4tuwattEV8LdS33Cmqrbx2FCuxSLFYmYhTEtILAvDVYrWZB8RcRaJndj9
 O79FrKL7bDB7+tdtczyJUAQzq/Avkrvvp1Sjnsy4Q5NeS3JJ9Iw7QJXppE+IxlLc
 7lJyIRaTbuNXFkGPYIxWek196TKsYYu0ZInNx9CAcT6MJEm23jy2NU+NuRLaxniP
 BHp8qBE7GZgF3ePdDDT1ezUxm/AcNpa7MP6XCT/eHhIDerXM4QkKYqiemaxHc7x8
 vvG2yKtgAidhq2AsqnD9pXHiRsBZky5B3HMMHU3kyDtoHD0XCMPxGpAOrpj/i4ra
 /1B4wGvRegflm3KhAJO8wBMraNkQass2I61dk4i1LMGvyDBZ0p8mMpd94YXA7fx9
 hL9+0bBetH+RX4bbaFR6pkDi+1Z+DFpufauaV5jDrEB6vUIc7Uz8SarCgWNU8d+E
 L/HJ8kSgfsYk8+oREEtIHY5m3fci50WgKTCvtoRaClUvT/130T3zvy6lDv4JxvvB
 eJCzyud4alTieXkWUFZx
 =CgWu
 -----END PGP SIGNATURE-----

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

ASoC: More updates for v3.10

A few more fixes, nothing too major though the DMA changes fix modular
builds.
2013-04-25 13:02:35 +02:00
Kailang Yang 7fc7d04721 ALSA: hda - Add the support for ALC286 codec
It's yet another ALC269-variant.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-25 11:06:54 +02:00
Trulan Martin 03e0221444 ALSA: usb-audio: USB quirk for Yamaha THR10C
This patch adds a USB quirk for the Yamaha THR10C amp.

Signed-off-by: Trulan Martin <trulanm@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-25 07:48:21 +02:00
Trulan Martin 1b15362c74 ALSA: usb-audio: USB quirk for Yamaha THR5A
This patch adds a USB quirk for the Yamaha THR5A amp.

Signed-off-by: Trulan Martin <trulanm@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-25 07:48:02 +02:00
Trulan Martin ae3f0c267f ALSA: usb-audio: USB quirk for Yamaha THR10
This patch adds a USB quirk for the Yamaha THR10 amp.

Signed-off-by: Trulan Martin <trulanm@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-25 07:47:50 +02:00
Takashi Iwai 60af3d037e ALSA: usb-audio: Fix autopm error during probing
We've got strange errors in get_ctl_value() in mixer.c during
probing, e.g. on Hercules RMX2 DJ Controller:

  ALSA mixer.c:352 cannot get ctl value: req = 0x83, wValue = 0x201, wIndex = 0xa00, type = 4
  ALSA mixer.c:352 cannot get ctl value: req = 0x83, wValue = 0x200, wIndex = 0xa00, type = 4
  ....

It turned out that the culprit is autopm: snd_usb_autoresume() returns
-ENODEV when called during card->probing = 1.

Since the call itself during card->probing = 1 is valid, let's fix the
return value of snd_usb_autoresume() as success.

Reported-and-tested-by: Daniel Schürmann <daschuer@mixxx.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-25 07:46:51 +02:00
Daniel Mack ebfc594c02 ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT
The USB_DT_CS_ENDPOINT class-specific endpoint descriptor is usually
stuffed directly after the standard USB endpoint descriptor, and this is
where the driver currently expects it to be.

There are, however, devices in the wild that have it the other way
around in their descriptor sets, so the USB_DT_CS_ENDPOINT comes
*before* the standard enpoint. Devices known to implement it that way
are "Sennheiser BTD-500" and Plantronics USB headsets.

When the driver can't find the USB_DT_CS_ENDPOINT, it won't be able to
change sample rates, as the bitmask for the validity of this command is
storen in bmAttributes of that descriptor.

Fix this by searching the entire interface instead of just the extra
bytes of the first endpoint, in case the latter fails.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Torstein Hegge <hegge@resisty.net>
Reported-and-tested-by: Yves G <alsa-user@vivigatt.com>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-25 07:33:20 +02:00
Pavel Machek 13627549f3 ALSA: sound kconfig typo
Fix english in sound/drivers/Kconfig.

Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-24 14:02:36 +02:00
Takashi Iwai e08b34e86d ALSA: emu10k1: Fix dock firmware loading
The commit [b209c4df: ALSA: emu10k1: cache emu1010 firmware] broke the
firmware loading of the dock, just (mistakenly) ignoring a different
firmware for docks on some models.  This patch revives them again.

Bugzilla: https://bugs.archlinux.org/task/34865
Reported-and-tested-by: Tobias Powalowski <tobias.powalowski@googlemail.com>
Cc: <stable@vger.kernel.org> [v3.8+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-24 08:11:49 +02:00
Mark Brown 5cc50fc858 Merge remote-tracking branch 'asoc/topic/ux500' into asoc-next 2013-04-23 19:26:15 +01:00
Mark Brown 5d4dcae706 Merge remote-tracking branch 'asoc/topic/max98088' into asoc-next 2013-04-23 19:26:12 +01:00
Mark Brown ee43ccf285 Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next 2013-04-23 19:26:11 +01:00
Mark Brown 9eb8ae727d Merge remote-tracking branch 'asoc/topic/dma' into asoc-next 2013-04-23 19:26:00 +01:00
Mark Brown 5561f17f26 Merge remote-tracking branch 'asoc/topic/davinci' into asoc-next 2013-04-23 19:25:29 +01:00
Mark Brown 423a5e0fd4 Merge remote-tracking branch 'asoc/topic/cs4271' into asoc-next 2013-04-23 19:25:25 +01:00
Mark Brown 83097a9c67 Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2013-04-23 19:25:18 +01:00
Arnd Bergmann d74bf3fa8e ASoC: ux500: forward declare msp_i2s_platform_data
We get a lot of build warnings from the msp driver like:

In file included from sound/soc/ux500/ux500_msp_dai.h:21:0,
                 from sound/soc/ux500/mop500.c:25:
sound/soc/ux500/ux500_msp_i2s.h:546:11: warning: 'struct msp_i2s_platform_data' declared inside parameter list [enabled by default]
    struct msp_i2s_platform_data *platform_data);
           ^
sound/soc/ux500/ux500_msp_i2s.h:546:11: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]

The easiest solution is to add a declaration of the struct name.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-23 19:24:48 +01:00
Michal Bachraty d486fea6ba ASoC: davinci-mcasp: Add Support BCLK-to-LRCLK ratio for TDM modes
For TDM mode, BCLK-to-LCLK ratio is computed as (tdm_slots) x (word_length).
I2S mode is only subset of TDM mode with specific tdm_slots = 2 channels.
Also bclk_lrclk_ratio can be greater than 255, therefore u16 need to be used.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Acked-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-23 14:50:30 +01:00
Michal Bachraty 7c21a78104 ASoC: davinci-pcm, davinci-mcasp: Clean up active_serializers
As pointed of by Vaibhav, commit message: "ASoC: davinci-mcasp: Add support for multichannel playback"
number of active serializers can be hidden into fifo_level variable, which is set in davimci-mcasp.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-23 14:50:21 +01:00
Shawn Guo 6f1fd93e30 ASoC: generic-dmaengine-pcm: call dma_request_slave_channel()
dma_request_slave_channel() is a more appropriate API for dmaengine
clients that adopt generic DMA bindings to call.  Let's use it instead
of of_dma_request_slave_channel() to save <linux/of_dma.h> include.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-23 11:34:29 +01:00
Shawn Guo 19133d2cfd ASoC: generic-dmaengine-pcm: use a more common dma name
The examples in Documentation/devicetree/bindings/dma/dma.txt recommends
the name for dma channel doing both RX and TX to be "rx-tx".  This
becomes a common pattern that has been adopted by platforms that
converts to generic DMA bindings.  Let's follow this common pattern in
generic-dmaengine-pcm.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-23 11:34:09 +01:00
David Henningsson 3e0d611b20 ALSA: hda - Limit internal mic boost for a few Asus machines
These are being reported as being so noisy at high mic boost levels,
so they are unusable in practice.
Therefore artificially limit the boosts.

BugLink: https://bugs.launchpad.net/bugs/1089795
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-22 14:50:41 +02:00
Lars-Peter Clausen a8956908bf ASoC: mxs: Use generic dmaengine PCM
Use the generic dmaengine PCM driver instead of a custom implementation.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-22 11:27:29 +01:00
Lars-Peter Clausen 8c1bb4ecbc ASoC: mxs: Setup dma data in DAI probe
This allows us to access the DAI DMA data when we create the PCM. We'll use
this when converting mxs to generic DMA engine PCM driver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-22 11:27:23 +01:00
Lars-Peter Clausen 57364f9ae2 ASoC: mxs-pcm: Set SNDRV_PCM_INFO_HALF_DUPLEX
The MXS SAIF is only half-duplex so set the SNDRV_PCM_INFO_HALF_DUPLEX flag for
the PCM in order to prevent playback and capture from running at the same time.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-22 11:27:18 +01:00
Lars-Peter Clausen d1e1406c6e ASoC: generic-dmaengine-pcm: Add support for half-duplex
Some platforms which are half-duplex share the same DMA channel between the
playback and capture stream. Add support for this to the generic dmaengine PCM
driver.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-22 11:27:04 +01:00
Daniel Schürmann b5f035dbca ALSA: snd-usb-audio: set the timeout for usb control set messages to 5000 ms
Set the timeout for USB control set messages according to the USB 2
spec, using the macros from include/linux/usb.h.
The get timout becomes 5000 ms even though it is 500 ms in the
spec. This patch is required to run the Hercules RMX2 which needs a
timeout of 1240 ms.

More notes from author:
I still distinguish between set and get but as long both are 5000 ms
GCC will remove it anyway. IMHO this is more easy read and there is no
need to explain why we use a get timeout for set messages.

Signed-off-by: Daniel Schürmann <daschuer@mixxx.org>
Acked-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-22 10:45:02 +02:00
Takashi Iwai 47966e9779 ALSA: compress: Use kzalloc() for ioctls writing back data
Like the previous patch by Dan, we should clear the data to be
returned from certain compress ioctls, namely,
snd_compr_get_codec_caps() and snd_compr_get_params().
This time, we can simply replace kmalloc() with kzalloc().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-22 10:40:29 +02:00
Dan Carpenter 1c62e9f2b5 ALSA: compress: info leak in snd_compr_get_caps()
If the ->get_caps() function doesn't clear the buffer then there would
stack information leaked to userspace.  For example,
soc_compr_get_caps() can return success without clearing the buffer.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-22 10:34:46 +02:00
Charles Keepax f0283b58d0 ALSA: compress_core: Rework writes to use cumulative values
This patch reworks the writes to use cumulative values thus making the
app_pointer unecessary and removing it.

Only tested as far as build.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-21 09:54:11 +02:00
Charles Keepax ccf17b13ca ALSA: compress_core: Remove unused hw_pointer
Only tested as far as build.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-21 09:53:56 +02:00
Charles Keepax daa2db59ce ASoC: soc-compress: Deduce stream direction
Previously we just hard coded all streams as playback streams, this
patch checks the DAI to see if it is a capture or playback stream. It is
worth noting that at this time only unidirectional streams are
supported.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-21 09:53:43 +02:00
Charles Keepax 49bb6402f1 ALSA: compress_core: Add support for capture streams
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-21 09:53:18 +02:00
Charles Keepax 4daf891cde ALSA: compress_core: Deconstify copy callback buffer
The buffer passed to the copy callback should not be const because the
copy callback can be used for capture and playback.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-21 09:53:00 +02:00
Charles Keepax 5b1f79f70b ALSA: compress_core: Calculate avail correctly for capture streams
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-21 09:52:43 +02:00
Charles Keepax 4c28e32d6c ALSA: compress_core: Update calc_avail to use cumulative values
The app_pointer is managed locally by the compress core for memory
mapped DSPs but for DSPs that are not memory mapped this would have to
be manually updated from within the DSP driver itself, which is hardly
very idiomatic.

This patch switches to using the cumulative values to calculate the
available buffer space because these are already gracefully passed out
of the DSP driver to the compress core and otherwise should be
functionally equivalent.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-21 09:52:23 +02:00
Linus Torvalds 0fe09a45c4 vm: convert snd_pcm_lib_mmap_iomem() to vm_iomap_memory() helper
This is my example conversion of a few existing mmap users.  The pcm
mmap case is one of the more straightforward ones.

Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-19 10:01:04 -07:00
Takashi Iwai 8dd2b66d1a ASoC: More updates for v3.10
The main additional change here is Lars-Peter's DMA work plus the
 platform conversions which have been tested - getting this in mainline
 will make life easier for development after the merge window.  These
 factor a large chunk of code out of the drivers for the platforms using
 dmaengine, greatly simplifying development.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRb/60AAoJELSic+t+oim9vL8P+wfaXRBGDtxhzMnTCf/cR2sc
 vlRnmSjA4s14vCoPffQJI0zaGLwDT5FnQtg6DAkP/8vXRoUz4Hgb0UwwDPiQNGED
 6Wmqm7mU+XGWgo4bPBA1e3Bt/9phVVO62rNPMNEnNqcp/Fa3RrdFAfxy4EUz9sKa
 lX4KJETCbIvLpOJmgq3H/WGtgYEnULHSCCNUQQ+fEY/VRQLsMtY5+tnZIJilMez0
 Ff6B084kE5oQpMsxdf89q8O5Uqc8lB0Xleluh0yQ1YZK3lxELMgr1Z7BkitysaJh
 uid+Ze8Vj2n5duI87OZcHN1Z2SibgTzqUwsd6YGCUKK3D3KVcSYgaYNn3zY09KNG
 tYlckAOJgVXqe1jedsfyuKTraz2JBY+jWYcIf8cRbwxxZpItG4Oj3idIBAKw+FrE
 /0DGqW7U9wXKx8pg7BH3dE6J6WVZ5uryaQX9d+nC8CGGjpcCla5L5jl/8stgGniW
 StTk4ETB6PP6iApv11p/7CXaTqXi+9UHmlcHFo11oQKiJFx4kG21DKQCXS0ycocM
 j0/gRGesWrVawYwJ86dhciUJjWlTHwproE/75i1JsTd3eRX6ybjBeNTTAI2ll/BJ
 BFDTS7tbX7GVcNbwXCvxW6pKOPpqV9jh0yMgpaB4jtkXOTKV/Z73ThPEql5w27c5
 OTBtONmiYeBcZGvgKQ3r
 =MXrq
 -----END PGP SIGNATURE-----

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

ASoC: More updates for v3.10

The main additional change here is Lars-Peter's DMA work plus the
platform conversions which have been tested - getting this in mainline
will make life easier for development after the merge window.  These
factor a large chunk of code out of the drivers for the platforms using
dmaengine, greatly simplifying development.
2013-04-18 16:24:31 +02:00
Mark Brown 24568ea4be Merge remote-tracking branch 'asoc/topic/max98088' into asoc-next 2013-04-18 15:05:35 +01:00
Mark Brown 23abd863d2 Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next 2013-04-18 15:05:33 +01:00
Mark Brown d45a26bd97 Merge remote-tracking branch 'asoc/topic/dma' into asoc-next 2013-04-18 15:05:30 +01:00
Mark Brown 8ef53f689a Merge remote-tracking branch 'asoc/topic/cs4271' into asoc-next 2013-04-18 15:05:28 +01:00
Mark Brown 5d5940d469 Merge remote-tracking branch 'asoc/topic/core' into asoc-next 2013-04-18 15:05:25 +01:00
Lars-Peter Clausen 22f38f792e ASoC: ux500: Use generic dmaengine PCM
Use the generic dmaengine PCM driver instead of a custom implemention.  There is
a minor functional change, the ux500 PCM driver did not preallocate the audio
buffer, while the generic dmaengine PCM driver will do this.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-04-18 15:04:44 +01:00
Daniel Mack 126825e7ea ALSA: snd-usb: add quirks handler for DSD streams
Unfortunately, none of the UAC standards provides a way to identify DSD
(Direct Stream Digital) formats. Hence, this patch adds a quirks
handler to identify USB interfaces that are capable of handling DSD.

That quirks handler can augment the already parsed formats bit-field,
by any of the new SNDRV_PCM_FMTBIT_DSD_{U8_U16} and setting the dsd_dop
flag in the audio format, if the driver should take care for the DOP
byte stuffing.

The only devices that are known to work with this are the ones with
a 'Playback Designs' vendor id.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18 10:03:53 +02:00
Daniel Mack 44dcbbb1cd ALSA: snd-usb: add support for bit-reversed byte formats
There is quite some confusion around the bit-ordering in DSD samples,
and no general agreement that defines whether hardware is supposed to
expect the oldest sample in the MSB or the LSB of a byte.

ALSA will hence set the rule that on the software API layer, bytes
always carry the oldest bit in the most significant bit of a byte, and
the driver has to translate that at runtime in order to match the
hardware layout.

This patch adds support for this by adding a boolean flag to the
audio format struct.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18 10:03:47 +02:00
Daniel Mack d24f5061ee ALSA: snd-usb: add support for DSD DOP stream transport
In order to provide a compatibility way for pushing DSD
samples through ordinary PCM channels, the "DoP open Standard" was
invented. See http://www.dsd-guide.com for the official document.

The host is required to stuff DSD marker bytes (0x05, 0xfa,
alternating) in the MSB of 24 bit wide samples on the bus, in addition
to the 16 bits of actual DSD sample payload.

To support this, the hardware and software stride logic in the driver
has to be tweaked a bit, as we make the userspace believe we're
operating on 16 bit samples, while we in fact push one more byte per
channel down to the hardware.

The DOP runtime information is stored in struct snd_usb_substream, so
we can keep track of our state across multiple calls to
prepare_playback_urb_dsd_dop().

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18 10:03:32 +02:00
Daniel Mack 8a2a74d2b7 ALSA: snd-usb: use ep->stride from urb callbacks
For normal PCM transfer, this change has no effect, as the endpoint's
stride is always frame_bits/8. For DSD DOP streams, however, which is
added later, the hardware stride differs from the software stride, and
the endpoint has the correct information in these cases.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18 10:03:23 +02:00
Daniel Mack ef7a4f979b ALSA: add DSD formats
This patch adds two formats for Direct Stream Digital (DSD), a
pulse-density encoding format which is described here:
https://en.wikipedia.org/wiki/Direct_Stream_Digital

DSD operates on 2.8, 5.6 or 11.2MHz sample rates and as a 1-bit
stream.

The two new types added by this patch describe streams that are capable
of handling DSD samples in DOP format as 8-bit or in 16-bit (or at a x8
or x16 data rate, respectively).

DSD itself specifies samples in *bit*, while DOP and ALSA handle them
as *bytes*. Hence, a factor of 8 or 16 has to be applied for the sample
rare configuration, according to the following table:

                                                  configured hardware
        176.4KHz   352.8kHz   705.6KHz     <----       sample rate

8-bit                2.8MHz     5.6MHz
16-bit    2.8Mhz     5.6MHz    11.2MHz

         `-----------------------------'
             actual DSD sample rates

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18 10:02:33 +02:00
Takashi Iwai d5657ec9f4 ALSA: hda - Disable the sanity check in snd_hda_add_pincfg()
When pin default configs are overridden via patch option, these are
evaluated before fixups are applied.  Since some fixups change the
whole codec trees and/or add pins dynamically, this sanity check might
not pass when pins aren't present at the time the function is called.

We may reorder the execution, but an easier fix is simply to disable
this sanity check.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18 09:59:28 +02:00
Wei Yongjun 6134b1a25b ALSA: hda - fix error return code in patch_alc662()
Fix to return a negative error code from the error handling
case instead of 0, as returned elsewhere in this function.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-18 09:55:26 +02:00