GitHub/LineageOS/G12/android_kernel_amlogic_linux-4.9.git
9 years agoMerge tag 'asoc-v3.20-3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Takashi Iwai [Mon, 9 Feb 2015 07:54:50 +0000 (08:54 +0100)]
Merge tag 'asoc-v3.20-3' of git://git./linux/kernel/git/broonie/sound into for-next

ASoC: Final updates for v3.20

A few more updates for v3.20 that have accumilated over the second half
of last week.  One new (relatively simple) driver for the Maxim
max98357a and some other driver specific fixes and enhancements.  I did
apply a few patches that haven't been in -next just now before sending
this, all fixes except for one simple device ID addition patch.

9 years agoMerge remote-tracking branches 'asoc/topic/wm8804', 'asoc/topic/wm8904', 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:34 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/wm8804', 'asoc/topic/wm8904', 'asoc/topic/wm8960', 'asoc/topic/wm8988' and 'asoc/topic/xtfpga' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/ts3a227e', 'asoc/topic/ts3a277e' and ...
Mark Brown [Mon, 9 Feb 2015 07:10:32 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/ts3a227e', 'asoc/topic/ts3a277e' and 'asoc/topic/txx9' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/sta32x', 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:29 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/sta32x', 'asoc/topic/tdm-slot', 'asoc/topic/tegra' and 'asoc/topic/tlv320aic3x' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/rt5670', 'asoc/topic/rt5677', 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:26 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/rt5670', 'asoc/topic/rt5677', 'asoc/topic/rx51', 'asoc/topic/samsung' and 'asoc/topic/sh' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/pxa', 'asoc/topic/rcar' and 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:24 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/pxa', 'asoc/topic/rcar' and 'asoc/topic/rt286' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/mxs-saif' and 'asoc/topic/nuc900' into...
Mark Brown [Mon, 9 Feb 2015 07:10:23 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/mxs-saif' and 'asoc/topic/nuc900' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/fsl-spdif', 'asoc/topic/imx', 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:19 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/fsl-spdif', 'asoc/topic/imx', 'asoc/topic/intel', 'asoc/topic/jz4740' and 'asoc/topic/max98357a' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/doc', 'asoc/topic/dwc', 'asoc/topic/fsi...
Mark Brown [Mon, 9 Feb 2015 07:10:17 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/doc', 'asoc/topic/dwc', 'asoc/topic/fsi', 'asoc/topic/fsl' and 'asoc/topic/fsl-asrc' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/cs42l73', 'asoc/topic/dai' and 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:14 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/cs42l73', 'asoc/topic/dai' and 'asoc/topic/davinci' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/bt-sco', 'asoc/topic/cs35l32', 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:12 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/bt-sco', 'asoc/topic/cs35l32', 'asoc/topic/cs42l52' and 'asoc/topic/cs42l56' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/ad193x', 'asoc/topic/alc5632', 'asoc/topic...
Mark Brown [Mon, 9 Feb 2015 07:10:09 +0000 (15:10 +0800)]
Merge remote-tracking branches 'asoc/topic/ad193x', 'asoc/topic/alc5632', 'asoc/topic/atmel' and 'asoc/topic/au1x' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/w-codec' into asoc-next
Mark Brown [Mon, 9 Feb 2015 07:10:03 +0000 (15:10 +0800)]
Merge remote-tracking branch 'asoc/topic/w-codec' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/pcm512x' into asoc-next
Mark Brown [Mon, 9 Feb 2015 07:10:02 +0000 (15:10 +0800)]
Merge remote-tracking branch 'asoc/topic/pcm512x' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next
Mark Brown [Mon, 9 Feb 2015 07:10:01 +0000 (15:10 +0800)]
Merge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/dapm' into asoc-next
Mark Brown [Mon, 9 Feb 2015 07:10:01 +0000 (15:10 +0800)]
Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/core' into asoc-next
Mark Brown [Mon, 9 Feb 2015 07:10:00 +0000 (15:10 +0800)]
Merge remote-tracking branch 'asoc/topic/core' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/fix/ac97', 'asoc/fix/atmel', 'asoc/fix/intel...
Mark Brown [Mon, 9 Feb 2015 07:09:49 +0000 (15:09 +0800)]
Merge remote-tracking branches 'asoc/fix/ac97', 'asoc/fix/atmel', 'asoc/fix/intel', 'asoc/fix/rt286', 'asoc/fix/rt5640', 'asoc/fix/samsung', 'asoc/fix/sgtl5000', 'asoc/fix/sta32x', 'asoc/fix/tlv320aic3x' and 'asoc/fix/wm8731' into asoc-linus

9 years agoMerge tag 'asoc-v3.19-rc2' into asoc-linus
Mark Brown [Mon, 9 Feb 2015 07:09:48 +0000 (15:09 +0800)]
Merge tag 'asoc-v3.19-rc2' into asoc-linus

ASoC: Updates for v3.20

Nothing too exciting here yet, a small optimization for DAPM from
Lars-Peter and a few small bits and pieces for drivers but nothing
that really stands out.

# gpg: Signature made Tue 30 Dec 2014 00:15:48 HKT using RSA key ID 5D5487D0
# gpg: Oops: keyid_from_fingerprint: no pubkey
# gpg: key AF88CD16: no public key for trusted key - skipped
# gpg: key AF88CD16 marked as ultimately trusted
# gpg: key 5621E907: no public key for trusted key - skipped
# gpg: key 5621E907 marked as ultimately trusted
# gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>"
# gpg:                 aka "Mark Brown <broonie@debian.org>"
# gpg:                 aka "Mark Brown <broonie@kernel.org>"
# gpg:                 aka "Mark Brown <broonie@tardis.ed.ac.uk>"
# gpg:                 aka "Mark Brown <broonie@linaro.org>"
# gpg:                 aka "Mark Brown <Mark.Brown@linaro.org>"

9 years agoASoC: rt5670: Set use_single_rw flag for regmap
Bard Liao [Mon, 9 Feb 2015 06:41:50 +0000 (14:41 +0800)]
ASoC: rt5670: Set use_single_rw flag for regmap

RT5670 doesn't support auto incrementing writes so driver should
set the use_single_rw flag for regmap.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
9 years agoASoC: rt286: Add rt288 codec support
Bard Liao [Mon, 9 Feb 2015 06:19:45 +0000 (14:19 +0800)]
ASoC: rt286: Add rt288 codec support

This patch adds support for rt288 codec.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: max98357a: Fix build in !CONFIG_OF case
Mark Brown [Mon, 9 Feb 2015 06:36:47 +0000 (14:36 +0800)]
ASoC: max98357a: Fix build in !CONFIG_OF case

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: fix platform_no_drv_owner.cocci warnings
kbuild test robot [Sun, 8 Feb 2015 10:35:47 +0000 (18:35 +0800)]
ASoC: Intel: fix platform_no_drv_owner.cocci warnings

sound/soc/intel/cht_bsw_rt5645.c:315:3-8: No need to set .owner here. The core will do it.

 Remove .owner field if calls are used which set it automatically

Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci

Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoARM: dts: Switch Odroid X2/U2 to simple-audio-card
Sylwester Nawrocki [Tue, 3 Feb 2015 14:06:21 +0000 (15:06 +0100)]
ARM: dts: Switch Odroid X2/U2 to simple-audio-card

Now when the CDCLK I2S output clock can be handled through the clock
API the Odroid X2/U3 can be switched to the simple-audio-card DT binding.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoARM: dts: Exynos4 and Odroid X2/U3 sound device nodes update
Sylwester Nawrocki [Tue, 3 Feb 2015 14:06:20 +0000 (15:06 +0100)]
ARM: dts: Exynos4 and Odroid X2/U3 sound device nodes update

Clock related properties are added to the Exynos4 I2S device nodes
so they can be referred to as clock providers. Missing i2s_opclk1
clock is added to the I2S0 node and clock properties are added
to the MAX98090 codec node to allow it to control/read frequency
of the MCLK clock directly.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoALSA: control: fix failure to return numerical ID in 'add' event
Takashi Sakamoto [Sun, 8 Feb 2015 13:39:44 +0000 (22:39 +0900)]
ALSA: control: fix failure to return numerical ID in 'add' event

Currently when adding a new control, the assigned numerical ID is not
set for event data, thus userspace applications cannot realize it just
by event data.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: line6: Pass driver name to line6_probe()
Chris Rorvick [Sat, 7 Feb 2015 16:43:19 +0000 (10:43 -0600)]
ALSA: line6: Pass driver name to line6_probe()

Provide a unique name for each driver instead of using "line6usb" for
all of them.  This will allow for different configurations based on the
driver type.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: line6: Pass toneport pointer to toneport_has_led()
Chris Rorvick [Sat, 7 Feb 2015 16:43:18 +0000 (10:43 -0600)]
ALSA: line6: Pass toneport pointer to toneport_has_led()

It is unlikely this function would ever be used in a context without a
pointer to a `struct usb_line6_toneport', so grab the device type from
it rather than having the caller do it.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: line6: Add toneport_has_source_select()
Chris Rorvick [Sat, 7 Feb 2015 16:43:17 +0000 (10:43 -0600)]
ALSA: line6: Add toneport_has_source_select()

Add a predicate for testing if the device supports source selection to
make the conditional logic around this a bit cleaner.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoASoC: core: indicate unregister debug message once
Kuninori Morimoto [Thu, 5 Feb 2015 05:34:10 +0000 (05:34 +0000)]
ASoC: core: indicate unregister debug message once

Current snd_soc_unregister_card() indicates unregistered debug
message when it was called. But, it should be called only when
it was really unregistered.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: intel: sst-haswell-ipc: Remove unused functions
Rickard Strandqvist [Sat, 17 Jan 2015 23:38:46 +0000 (00:38 +0100)]
ASoC: intel: sst-haswell-ipc: Remove unused functions

Removes some functions that are not used anywhere:
sst_hsw_stream_unmute() sst_hsw_stream_mute() msg_set_stage_type()
sst_hsw_dx_get_state() sst_hsw_stream_set_write_position()
sst_hsw_stream_get_vol_reg() sst_hsw_stream_get_peak_reg()
sst_hsw_stream_get_pointer_reg() sst_hsw_stream_get_read_reg()
sst_hsw_stream_get_mixer_id() sst_hsw_stream_get_hw_id()
sst_hsw_mixer_set_volume_curve() sst_hsw_mixer_unmute()
sst_hsw_mixer_mute() sst_hsw_stream_set_volume_curve()

This was partially found by using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: sst: Fix firmware name size handling
Christian Engelmayer [Sat, 7 Feb 2015 22:40:52 +0000 (23:40 +0100)]
ASoC: Intel: sst: Fix firmware name size handling

Function sst_acpi_probe() uses plain strcpy for setting member firmware_name
of a struct intel_sst_drv from member firmware of a struct sst_machines.
Thereby the destination array has got a length of 20 byte while the source may
hold 32 byte. Since eg. commit 64b9c90b8600 ("ASoC: Intel: Fix BYTCR firmware
name") increased strings from "fw_sst_0f28.bin" to "intel/fw_sst_0f28.bin"
there is an actual possibility that the 20 byte array at the end of struct
intel_sst_drv is overrun.

Thus increase the size of the destination and use the same define for both
structs. Detected by Coverity CID 1260087.

Signed-off-by: Christian Engelmayer <cengelma@gmx.at>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
9 years agoASoC: samsung: Remove goni or aquila with the WM8994
Paul Bolle [Mon, 19 Jan 2015 10:41:41 +0000 (11:41 +0100)]
ASoC: samsung: Remove goni or aquila with the WM8994

Commit 28c8331d386a ("ARM: S5PV210: Remove support for board files")
removed the Kconfig symbols MACH_GONI and MACH_AQUILA. As a result the
dependencies of SND_SOC_GONI_AQUILA_WM8994 can never be met. So remove
the unbuildable "SoC I2S Audio support for AQUILA/GONI - WM8994".

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: max98357a: Add MAX98357A codec driver
Kenneth Westfield [Thu, 5 Feb 2015 20:53:40 +0000 (12:53 -0800)]
ASoC: max98357a: Add MAX98357A codec driver

Add codec driver for the Maxim MAX98357A DAC.

Signed-off-by: Kenneth Westfield <kwestfie@codeaurora.org>
Acked-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: max98357a: Document MAX98357A bindings
Kenneth Westfield [Thu, 5 Feb 2015 20:53:38 +0000 (12:53 -0800)]
ASoC: max98357a: Document MAX98357A bindings

Add documentation to the sound directory of the
device-tree bindings for the Maxim MAX98357A audio
DAC.

Signed-off-by: Kenneth Westfield <kwestfie@codeaurora.org>
Acked-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoALSA: line6: Get rid of unused variable in pod.c
Takashi Iwai [Fri, 6 Feb 2015 09:12:14 +0000 (10:12 +0100)]
ALSA: line6: Get rid of unused variable in pod.c

Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: line6: Create sysfs via snd_card_add_dev_attr()
Takashi Iwai [Fri, 30 Jan 2015 11:36:17 +0000 (12:36 +0100)]
ALSA: line6: Create sysfs via snd_card_add_dev_attr()

Use the new helper function to create sysfs entries in the card more
gracefully without races.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: Add a helper to add a new attribute group to card
Takashi Iwai [Fri, 30 Jan 2015 11:27:43 +0000 (12:27 +0100)]
ALSA: Add a helper to add a new attribute group to card

For assigning sysfs entries for a card device from the driver,
introduce a new helper function, snd_card_add_dev_attr().  In this
way, we can avoid the possible race between the device registration
and the sysfs addition / removal.

The driver can pass a new attribute group to add freely.  This has to
be called before snd_card_register().

Currently, up to two extra groups can be added.  More than that, it'll
return an error.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: hda - Set up GPIO for Toshiba Satellite S50D
Takashi Iwai [Thu, 5 Feb 2015 11:23:33 +0000 (12:23 +0100)]
ALSA: hda - Set up GPIO for Toshiba Satellite S50D

Toshiba Satellite S50D laptop with an IDT codec uses the GPIO4 (0x10)
as the master EAPD.

Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=915858
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoMerge branch 'fix/intel' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Mark Brown [Thu, 5 Feb 2015 20:18:39 +0000 (20:18 +0000)]
Merge branch 'fix/intel' of git://git./linux/kernel/git/broonie/sound into asoc-intel

Conflicts:
sound/soc/intel/sst/sst_acpi.c

9 years agoASoC: Intel: fix sst firmware path for cht-bsw-rt5672
Kevin Strasser [Thu, 5 Feb 2015 20:12:07 +0000 (12:12 -0800)]
ASoC: Intel: fix sst firmware path for cht-bsw-rt5672

All sst firmware is provided under the intel directory of the linux-firmware
tree. By default this directory structure is kept when installing on a target
system. Change the path to expect a default linux-firmware installation.

Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoARM: dts: Fix I2S1, I2S2 compatible for exynos4 SoCs
Sylwester Nawrocki [Tue, 3 Feb 2015 14:06:22 +0000 (15:06 +0100)]
ARM: dts: Fix I2S1, I2S2 compatible for exynos4 SoCs

I2S1, I2S2 on Exynos4 SoC series have limited functionality compared
to I2S0, "samsung,s3c6410-i2s" compatible should be used for them.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
9 years agoASoC: rt286: Add customize setting for Dell Dino
Bard Liao [Thu, 5 Feb 2015 08:40:34 +0000 (16:40 +0800)]
ASoC: rt286: Add customize setting for Dell Dino

The patch add the customize setting for Dell Dino project.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: rt286: Fix potencial crash in jd function
Bard Liao [Thu, 5 Feb 2015 08:40:33 +0000 (16:40 +0800)]
ASoC: rt286: Fix potencial crash in jd function

We assign rt286->codec in rt286_probe. If rt286_jack_detect is
invoked before rt286_probe, rt286->codec will be NULL and cause
a kernel panic.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: fix sst firmware path
Kevin Strasser [Wed, 4 Feb 2015 19:35:07 +0000 (11:35 -0800)]
ASoC: Intel: fix sst firmware path

All sst firmware is provided under the intel directory of the linux-firmware
tree. By default this directory structure is kept when installing on a target
system. Change the path to expect a default linux-firmware installation.

Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: Add Cherrytrail & Braswell machine driver cht_bsw_rt5645
Fang, Yang A [Thu, 5 Feb 2015 02:19:32 +0000 (18:19 -0800)]
ASoC: Intel: Add Cherrytrail & Braswell machine driver cht_bsw_rt5645

Add machine driver for two Intel Cherryview-based platforms, Cherrytrail
and Braswell, with RT5645 codec

Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Acked-by: Kevin Strasser <kevin.strasser@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge branch 'topic/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Mark Brown [Thu, 5 Feb 2015 18:10:32 +0000 (18:10 +0000)]
Merge branch 'topic/rt5645' of git://git./linux/kernel/git/broonie/sound into asoc-intel

9 years agoASoC: rt5645: add API to select ASRC clock source
Fang, Yang A [Thu, 5 Feb 2015 02:19:31 +0000 (18:19 -0800)]
ASoC: rt5645: add API to select ASRC clock source

This patch defines an API to select the clock source for specified filters.

Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Acked-by: Kevin Strasser <kevin.strasser@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: add a status for runtime suspend/resume
Jie Yang [Thu, 5 Feb 2015 14:56:48 +0000 (22:56 +0800)]
ASoC: Intel: add a status for runtime suspend/resume

For runtime suspend/resume, it is some different with suspend/resume,
e.g. codec power supply won't be switch off, codec jack detection
still working(to wake up system from Jack event), won't call call
snd_soc_suspend/resume, etc.

So here, we add a platform PM status, HSW_PM_STATE_RTD3, to make
the status more clear, when in idle, it will enter this status, to
transfer from HSW_PM_STATE_RTD3 to HSW_PM_STATE_D3, we will do those
extra jobs, and vice versa for resuming.

Signed-off-by: Jie Yang <yang.jie@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge tag 'asoc-v3.20-2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Takashi Iwai [Thu, 5 Feb 2015 06:08:35 +0000 (07:08 +0100)]
Merge tag 'asoc-v3.20-2' of git://git./linux/kernel/git/broonie/sound into for-next

ASoC: Updates for v3.20

More updates for v3.20:

 - Lots of refactoring from Lars-Peter Clausen, moving drivers to more
   data driven initialization and rationalizing a lot of DAPM usage.
 - Much improved handling of CDCLK clocks on Samsung I2S controllers.
 - Lots of driver specific cleanups and feature improvements.
 - CODEC support for TI PCM514x and TLV320AIC3104 devices.
 - Board support for Tegra systems with Realtek RT5677.

Conflicts:
sound/soc/intel/sst-mfld-platform-pcm.c

9 years agoASoC: jz4740: Add DT support to jz4740-i2s driver
Zubair Lutfullah Kakakhel [Tue, 3 Feb 2015 10:55:59 +0000 (10:55 +0000)]
ASoC: jz4740: Add DT support to jz4740-i2s driver

This patch adds device tree support for the jz4740 driver.

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: jz4740: Add binding documentation for jz4740-i2s
Zubair Lutfullah Kakakhel [Tue, 3 Feb 2015 10:55:58 +0000 (10:55 +0000)]
ASoC: jz4740: Add binding documentation for jz4740-i2s

This patch adds binding for the jz4740-i2s driver.

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: jz4740: Add dynamic sampling rate support to jz4740-i2s
Zubair Lutfullah Kakakhel [Tue, 3 Feb 2015 10:55:57 +0000 (10:55 +0000)]
ASoC: jz4740: Add dynamic sampling rate support to jz4740-i2s

The div clock register is not modified during jz4740_i2s_hw_params.
Hence, default sampling rates are actually used regardless of
sampling rates input from userspace.

This patch adds support to calculate the value of the divider from
the parameters passed from userspace and update the relevant div
registers

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge remote-tracking branches 'asoc/topic/wm8960', 'asoc/topic/wm8988' and 'asoc...
Mark Brown [Wed, 4 Feb 2015 20:57:26 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/wm8960', 'asoc/topic/wm8988' and 'asoc/topic/xtfpga' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/txx9', 'asoc/topic/wm8750', 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:24 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/txx9', 'asoc/topic/wm8750', 'asoc/topic/wm8804' and 'asoc/topic/wm8904' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/tdm-slot', 'asoc/topic/tegra', 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:21 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/tdm-slot', 'asoc/topic/tegra', 'asoc/topic/tlv320aic3x', 'asoc/topic/ts3a227e' and 'asoc/topic/ts3a277e' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/rx51', 'asoc/topic/samsung', 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:18 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/rx51', 'asoc/topic/samsung', 'asoc/topic/sh', 'asoc/topic/simple' and 'asoc/topic/sta32x' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/rockchip', 'asoc/topic/rt5645' and 'asoc...
Mark Brown [Wed, 4 Feb 2015 20:57:17 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/rockchip', 'asoc/topic/rt5645' and 'asoc/topic/rt5677' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/omap', 'asoc/topic/pxa' and 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:16 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/omap', 'asoc/topic/pxa' and 'asoc/topic/rcar' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/fsl-spdif', 'asoc/topic/imx', 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:13 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/fsl-spdif', 'asoc/topic/imx', 'asoc/topic/intel', 'asoc/topic/mxs-saif' and 'asoc/topic/nuc900' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/doc', 'asoc/topic/dwc', 'asoc/topic/fsi...
Mark Brown [Wed, 4 Feb 2015 20:57:11 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/doc', 'asoc/topic/dwc', 'asoc/topic/fsi', 'asoc/topic/fsl' and 'asoc/topic/fsl-asrc' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/cs42l73', 'asoc/topic/dai' and 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:10 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/cs42l73', 'asoc/topic/dai' and 'asoc/topic/davinci' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/bt-sco', 'asoc/topic/cs35l32', 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:09 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/bt-sco', 'asoc/topic/cs35l32', 'asoc/topic/cs42l52' and 'asoc/topic/cs42l56' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/ad193x', 'asoc/topic/alc5632', 'asoc/topic...
Mark Brown [Wed, 4 Feb 2015 20:57:07 +0000 (20:57 +0000)]
Merge remote-tracking branches 'asoc/topic/ad193x', 'asoc/topic/alc5632', 'asoc/topic/atmel' and 'asoc/topic/au1x' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/w-codec' into asoc-next
Mark Brown [Wed, 4 Feb 2015 20:57:06 +0000 (20:57 +0000)]
Merge remote-tracking branch 'asoc/topic/w-codec' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/pcm512x' into asoc-next
Mark Brown [Wed, 4 Feb 2015 20:57:06 +0000 (20:57 +0000)]
Merge remote-tracking branch 'asoc/topic/pcm512x' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/pcm' into asoc-next
Mark Brown [Wed, 4 Feb 2015 20:57:05 +0000 (20:57 +0000)]
Merge remote-tracking branch 'asoc/topic/pcm' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next
Mark Brown [Wed, 4 Feb 2015 20:57:05 +0000 (20:57 +0000)]
Merge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/dapm' into asoc-next
Mark Brown [Wed, 4 Feb 2015 20:57:04 +0000 (20:57 +0000)]
Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/core' into asoc-next
Mark Brown [Wed, 4 Feb 2015 20:57:04 +0000 (20:57 +0000)]
Merge remote-tracking branch 'asoc/topic/core' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/fix/ac97', 'asoc/fix/atmel', 'asoc/fix/intel...
Mark Brown [Wed, 4 Feb 2015 20:56:58 +0000 (20:56 +0000)]
Merge remote-tracking branches 'asoc/fix/ac97', 'asoc/fix/atmel', 'asoc/fix/intel', 'asoc/fix/rt286', 'asoc/fix/rt5640', 'asoc/fix/sgtl5000', 'asoc/fix/sta32x', 'asoc/fix/tlv320aic3x' and 'asoc/fix/wm8731' into asoc-linus

9 years agoASoC: ts3a227e: fix sparse warning
Lad, Prabhakar [Wed, 4 Feb 2015 17:29:30 +0000 (17:29 +0000)]
ASoC: ts3a227e: fix sparse warning

this patch fixes following sparse warning:
ts3a227e.c:222:5: warning: symbol 'ts3a227e_enable_jack_detect' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: initial scalar variable ba
Jie Yang [Wed, 4 Feb 2015 12:23:13 +0000 (20:23 +0800)]
ASoC: Intel: initial scalar variable ba

Reported by Coverity: CID 1267985 CID 1267986

Fix these two Defects: Uninitialized scalar variable.

Signed-off-by: Jie Yang <yang.jie@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: tlv320aic3x: Fix bad comment before intercon_extra_3104 definition
Jyri Sarha [Wed, 4 Feb 2015 10:15:46 +0000 (12:15 +0200)]
ASoC: tlv320aic3x: Fix bad comment before intercon_extra_3104 definition

The intercon_extra_3104 is obviously for tlv320aic3104.

Reported-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge branch 'topic/snd-device' into for-next
Takashi Iwai [Tue, 3 Feb 2015 16:57:16 +0000 (17:57 +0100)]
Merge branch 'topic/snd-device' into for-next

9 years agoASoC: sgtl5000: add delay before first I2C access
Eric Nelson [Fri, 30 Jan 2015 21:07:55 +0000 (14:07 -0700)]
ASoC: sgtl5000: add delay before first I2C access

To quote from section 1.3.1 of the data sheet:
The SGTL5000 has an internal reset that is deasserted
8 SYS_MCLK cycles after all power rails have been brought
up. After this time, communication can start

...
1.0us represents 8 SYS_MCLK cycles at the minimum 8.0 MHz SYS_MCLK.

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
9 years agoASoC: tlv320aic3x: Add support for tlv320aic3104
Jyri Sarha [Mon, 2 Feb 2015 14:48:05 +0000 (16:48 +0200)]
ASoC: tlv320aic3x: Add support for tlv320aic3104

Disables GPIO support and LINE2 input and renames Mic3 input to Mic2,
if tlv320aic3104 mode is seleced. Devicetree binding document is
updated accordingly.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoALSA: line6: fixup of line6_start_timer argument type
Nicholas Mc Guire [Tue, 3 Feb 2015 07:38:56 +0000 (02:38 -0500)]
ALSA: line6: fixup of line6_start_timer argument type

line6_start_timer passes an unsigned int as argument to be used in mod_timer
which is then used by mod_timer as unsigned long, this just fixes up the
argument type. This change helps make static code checkers happy.

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: line6: use msecs_to_jiffies for conversion
Nicholas Mc Guire [Tue, 3 Feb 2015 07:38:39 +0000 (02:38 -0500)]
ALSA: line6: use msecs_to_jiffies for conversion

This is only an API consolidation and should make things more readable
it replaces var * HZ / 1000 by msecs_to_jiffies(var).

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoASoC: Add sysfs entries via static attribute groups
Takashi Iwai [Fri, 30 Jan 2015 19:16:37 +0000 (20:16 +0100)]
ASoC: Add sysfs entries via static attribute groups

Instead of calling device_create_file() manually, assign the static
attribute group entries at the device registration.  This simplifies
the error handling and avoids the possible races.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: Add support rt5645 in sst driver
Fang, Yang A [Sat, 31 Jan 2015 23:22:40 +0000 (15:22 -0800)]
ASoC: Intel: Add support rt5645 in sst driver

Added entry in sst driver to support rt5645 codec
for intel Braswell platform.

Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: rsnd: call missing snd_soc_unregiter_component/platform()
Kuninori Morimoto [Mon, 2 Feb 2015 04:54:07 +0000 (04:54 +0000)]
ASoC: rsnd: call missing snd_soc_unregiter_component/platform()

Current Renesas R-Car sound driver doesn't call
snd_soc_unregiter_component/platform() in .remove.
This patch call these functions.

Reported-by: Nguyen Viet Dung <nv-dung@jinso.co.jp>
Reported-by: Bui Duc Phuc <bd-phuc@jinso.co.jp>
Reported-by: Cao Minh Hiep <cm-hiep@jinso.co.jp>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: rsnd: call missing snd_ctl_remove()
Kuninori Morimoto [Mon, 2 Feb 2015 04:53:53 +0000 (04:53 +0000)]
ASoC: rsnd: call missing snd_ctl_remove()

Current Renesas R-Car sound driver is using snd_ctl_xxx()
functions, but it didn't call snd_ctl free_one() / snd_ctl_remove().
This patch call these functions.

Reported-by: Nguyen Viet Dung <nv-dung@jinso.co.jp>
Reported-by: Bui Duc Phuc <bd-phuc@jinso.co.jp>
Reported-by: Cao Minh Hiep <cm-hiep@jinso.co.jp>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: davinci-mcasp: Fix DIT only McASP instance support
Peter Ujfalusi [Mon, 2 Feb 2015 12:38:33 +0000 (14:38 +0200)]
ASoC: davinci-mcasp: Fix DIT only McASP instance support

One of the McASP instances in DM646x line of DMSoC only supports DIT mode.
This means that the given IP does not have support for rx and all the rx
related resources are missing, like irq and DMA request.
The driver should not fail if any or all  of the RX resource is missing
when the op_mode is set to DIT mode.
Since RX is not possible in DIT mode, we can just ignore the rx resources
when the McASP is used in DIT mode.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: davicni-mcasp: Mark the common irq line as shared
Peter Ujfalusi [Mon, 2 Feb 2015 12:38:32 +0000 (14:38 +0200)]
ASoC: davicni-mcasp: Mark the common irq line as shared

On DA830 devices McASP0,1 and 2 shares a single combined interrupt request
line.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: davinci-evm: Do not include davinci-pcm.h and davinci-i2s.h
Peter Ujfalusi [Mon, 2 Feb 2015 12:49:42 +0000 (14:49 +0200)]
ASoC: davinci-evm: Do not include davinci-pcm.h and davinci-i2s.h

There is no need for them to be included.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: davinci-evm: Do not include edma headers
Peter Ujfalusi [Mon, 2 Feb 2015 12:49:41 +0000 (14:49 +0200)]
ASoC: davinci-evm: Do not include edma headers

The machine driver has no business with the underlying dma.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoALSA: Drop snd_get_device() helper
Takashi Iwai [Fri, 30 Jan 2015 07:39:40 +0000 (08:39 +0100)]
ALSA: Drop snd_get_device() helper

Since the device is no longer hidden but embedded into each component,
we no longer need snd_get_device().  Let's drop it and relevant codes.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: Simplify snd_device_register() variants
Takashi Iwai [Fri, 30 Jan 2015 07:34:58 +0000 (08:34 +0100)]
ALSA: Simplify snd_device_register() variants

Now that all callers have been replaced with
snd_device_register_for_dev(), let's drop the obsolete device
registration code and concentrate only on the code handling struct
device directly.  That said,

- remove the old snd_device_register(),
- rename snd_device_register_for_dev() with snd_device_register(),
- drop superfluous arguments from snd_device_register(),
- change snd_unregister_device() to pass the device pointer directly

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: compress: Embed struct device
Takashi Iwai [Fri, 30 Jan 2015 07:16:35 +0000 (08:16 +0100)]
ALSA: compress: Embed struct device

Like previous patches, this one embeds the struct device into struct
snd_compr.  As the dev field wasn't used beforehand, it's reused as
the new device struct.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: seq: Handle the device directly
Takashi Iwai [Fri, 30 Jan 2015 07:04:21 +0000 (08:04 +0100)]
ALSA: seq: Handle the device directly

Like the previous change for the timer device, this patch changes the
device management for the ALSA sequencer device using the struct
device directly.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: timer: Handle the device directly
Takashi Iwai [Thu, 29 Jan 2015 17:12:26 +0000 (18:12 +0100)]
ALSA: timer: Handle the device directly

This is a relatively straightforward change, using the struct device
directly for managing the ALSA timer device.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: timer: Propagate the error at initialization
Takashi Iwai [Thu, 29 Jan 2015 17:09:05 +0000 (18:09 +0100)]
ALSA: timer: Propagate the error at initialization

... instead of just printing errors.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: rawmidi: Use rawmidi device file for kernel messages
Takashi Iwai [Fri, 30 Jan 2015 14:31:52 +0000 (15:31 +0100)]
ALSA: rawmidi: Use rawmidi device file for kernel messages

... instead of card's device.  This will be helpful to distinguish
errors from multiple rawmidi devices on a single card.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: rawmidi: Embed struct device
Takashi Iwai [Thu, 29 Jan 2015 16:55:52 +0000 (17:55 +0100)]
ALSA: rawmidi: Embed struct device

Like previous patches, this changes the device management for rawmidi,
embedding the struct device into struct snd_rawmidi.  The required
change is more or less same as hwdep device.

The currently unused dev field is reused as the new embedded struct
field now.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: pcm: Embed struct device
Takashi Iwai [Thu, 29 Jan 2015 16:32:26 +0000 (17:32 +0100)]
ALSA: pcm: Embed struct device

Like previous patches, at this time we embed the struct device into
PCM object.  However, this needs a bit more caution: struct snd_pcm
doesn't own one device but two, for both playback and capture!  Thus
not struct snd_pcm but struct snd_pcm_str object contains the device.

Along with this change, pcm->dev field is dropped for avoiding
confusion.  It was meant to point to a non-standard parent.  But,
since now we can touch each struct device directly, we can manipulate
the parent field easily there, too.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: hwdep: Embed struct device
Takashi Iwai [Thu, 29 Jan 2015 16:13:32 +0000 (17:13 +0100)]
ALSA: hwdep: Embed struct device

Like the previous patch, this one embeds the device object into hwdep
object.  For a proper object lifecycle, it's freed in the release
callback.

This also allows us to create sysfs entries via passing to the groups
field of the device without explicit function calls.  Since each
driver can see the device and touch its groups field directly, we
don't need to delegate in hwdep core any longer.  So, remove the
groups field from snd_hwdep, and let the user (in this case only
hda_hwdep.c) modify the device groups.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: control: Embed struct device
Takashi Iwai [Thu, 29 Jan 2015 15:41:27 +0000 (16:41 +0100)]
ALSA: control: Embed struct device

This patch embeds a struct device for the control device into the card
object and avoid the device creation at registration time.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: Add a helper to initialize device
Takashi Iwai [Thu, 29 Jan 2015 20:32:47 +0000 (21:32 +0100)]
ALSA: Add a helper to initialize device

Introduce a new helper function snd_device_initialize() to initialize
the device object for sound devices.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoALSA: control: Provide a helper to look for the preferred subdevice
Takashi Iwai [Wed, 19 Feb 2014 13:30:29 +0000 (14:30 +0100)]
ALSA: control: Provide a helper to look for the preferred subdevice

Instead of open-coding the search over the control file loop, provide
a helper function for the preferred subdevice assigned to the current
process.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>