Commit graph

19754 commits

Author SHA1 Message Date
Dmitry Lavnikevich 31d9f8faf9 ASoC: tlv320aic3x: fix PLL D configuration
Current caching implementation during regcache_sync() call bypasses
all register writes of values that are already known as default
(regmap reg_defaults). Same time in TLV320AIC3x codecs register 5
(AIC3X_PLL_PROGC_REG) write should be immediately followed by register
6 write (AIC3X_PLL_PROGD_REG) even if it was not changed. Otherwise
both registers will not be written.

This brings to issue that appears particulary in case of 44.1kHz
playback with 19.2MHz master clock. In this case AIC3X_PLL_PROGC_REG
is 0x6e while AIC3X_PLL_PROGD_REG is 0x0 (same as register
default). Thus AIC3X_PLL_PROGC_REG also remains not written and we get
wrong playback speed.

In this patch snd_soc_read() is used to get cached pll values and
snd_soc_write() (unlike regcache_sync() this function doesn't bypasses
hardware default values) to write them to registers.

Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
2014-10-03 16:06:11 +01:00
Jarkko Nikula b2d9de549c ASoC: dapm: Fix NULL pointer dereference when registering card with widgets
Commit 0bd2ac3dae ("ASoC: Remove CODEC pointer from snd_soc_dapm_context")
introduced regression to snd_soc_dapm_new_controls() when registering a card
with card->dapm_widgets set. Call chain is:

    snd_soc_register_card()
    -> snd_soc_instantiate_card()
       -> snd_soc_dapm_new_controls()
          -> snd_soc_dapm_new_control()

Null pointer dereference occurs since card->dapm context doesn't have
associated component. Fix this by setting widget codec pointer
conditionally.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-03 15:39:19 +01:00
Dylan Reid 9766a1cfe5 ASoC: tegra: add mic detect gpio to tegra_max98090
Add an optional mic detect gpio property.  If specified in device tree
there will be a mic jack created for the given gpio.  This will be
used by the Tegra-based Chromebooks.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-03 11:22:02 +01:00
Fabio Estevam 6f4d2b3177 ASoC: sgtl5000: Do a sanity check on SYS_MCLK
According to the sgtl5000 datasheet the valid range for SYS_MCLK is from 8 to
27 MHz.

Add a sanity check prior to enabling SYS_MCLK.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-03 11:20:38 +01:00
Fabio Estevam fa558d0130 ASoC: sgtl5000: Improve the error message on slave mode setting
For sgtl5000 to operate in slave mode it can only work in "Synchronous
SYS_MCLK input" mode.

In this mode only the following rates can be supported: 256*Fs, 384*Fs, 512*Fs.

Improve the error message to give a better indication as to why the clocking
failed for slave mode:

[   12.515399] sgtl5000 1-000a: PLL not supported in slave mode
[   12.524124] sgtl5000 1-000a: 233 ratio is not supported. SYS_MCLK needs to be 256, 384 or 512 * fs
[   12.535938] sgtl5000 1-000a: ASoC: can't set sgtl5000 hw params: -22

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-03 11:20:38 +01:00
Bard Liao a577483b69 ASoC: rt286: Add depends on I2C
rt286 use I2C as its I/O. So the driver can only available when
I2C is selected.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-03 10:35:23 +01:00
Subhransu S. Prusty 5dc0158a27 ASoC: Export dapm_kcontrol_get_value
The DSP driver needs to know widget control value in its event handler for
widgets like mixers. This is required in the subsequent patches

Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-02 19:13:12 +01:00
Dylan Reid 3fe240326c ASoC: simple-card: Add mic and hp detect gpios.
Allow Headphone and Microphone jack detect gpios to be specified in
device tree.  This will allow a few systems including rk3288_max98090
to use simple-card instead of having their own board file.

Signed-off-by: Dylan Reid <dgreid@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-02 16:53:40 +01:00
Mark Brown 04a0b8ef6b Linux 3.17-rc4
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJUDOW+AAoJEHm+PkMAQRiGOXYH/00TPKm8PdM5cXXG2YYYv9eT
 W99K7KD2i0/qiVtlGgjjvB7fO3K0HcZusTd2jmVd8IWntXvauq7Zpw5YZkjwu4KX
 Y1HCwwCd2aw0FoqgrJhNP3+j5Cr1BD/HLtbffjCe+A3tppOIis4Bwt2wJOoYlXpS
 hU9Jxxc4lcRo8YKbffouDo7PIneWeJy8N+WGpUR5BfJIEK0ZZtCUqn3/3WLX4FYu
 fE6uiF/bACTpKXU/mo4dDbhZp439H/QdwQc9B0F8+8CBDMXKaNHrPV7kN36T2SWa
 fD4boikTsi/yh9Ks1fvHbvNq2N0ihoMnja+vLRyvjAcAQv2fKG3OZtYgFWSdghU=
 =Xknd
 -----END PGP SIGNATURE-----

Merge tag 'v3.17-rc4' into asoc-simple

Linux 3.17-rc4
2014-10-02 16:53:35 +01:00
Anatol Pomozov 7c168d5f8b ASoC: ssm4567: Remove duplicated else-if branch
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-02 12:20:51 +01:00
Thierry Reding 81f3dfe190 ASoC: rt286: Fix compilation warning for !PM
The rt286_index_sync() function is only called in the resume path. If PM
is disabled it becomes unused and shouldn't be built either.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-02 11:53:11 +01:00
Thierry Reding be1aa3ea1f ASoC: tas2552: Fix compilation warning for !PM_RUNTIME
The tas2552_sw_shutdown() function is only used by runtime suspend
support, so only build it when necessary.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-02 11:52:10 +01:00
Jarkko Nikula c47a39a680 ASoC: Intel: byt-rt5640: Set card as fully routed
Although it's not known does current version of byt-rt5640 cover all
possible variants it is better to set the fully_routed flag on in order to
disable unused codecs pins in known machines and get regression from
machines that use different routing than the default one.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-02 11:50:22 +01:00
Jarkko Nikula 24221dcc8b ASoC: Intel: byt-rt5640: Add quirk for Dell Venue 8 Pro tablet
It was found with help of Jan-Michael Brummer <jan.brummer@tabos.org> that
Dell Venue 8 Pro tablet has a digital microphone connected to DMIC2
interface of the RT564x.

This patch adds a DAPM route to DMIC2 and a quirk using it for that tablet.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reported-by: Jan-Michael Brummer <jan.brummer@tabos.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-02 11:50:22 +01:00
Oder Chiou f3fa1bbd83 ASoC: rt5645: Add headset detect function
Add headset detect function

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-01 19:28:44 +01:00
Fabio Estevam c05a11f7b8 ASoC: fsl: Do not force codecs selection by SND_SOC_FSL_ASOC_CARD
The wm8962 driver uses the input subsystem, but it is selected by
SND_SOC_FSL_ASOC_CARD, which can be built with CONFIG_INPUT disabled,
resulting in this link error:

ERROR: "input_event" [sound/soc/codecs/snd-soc-wm8962.ko] undefined!
ERROR: "input_register_device" [sound/soc/codecs/snd-soc-wm8962.ko] undefined!
ERROR: "devm_input_allocate_device" [sound/soc/codecs/snd-soc-wm8962.ko] undefined!

Do not force the selection of the codecs by SND_SOC_FSL_ASOC_CARD to avoid
such problem.

Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-01 17:07:05 +01:00
Jarkko Nikula a5f0ab05b6 ASoC: Intel: byt-rt5640: Enable DMIC interface for default DAPM route
It turned out DMIC interface wasn't enabled/disabled runtime for active
DMIC route in the rt5640 codec driver anymore after commit
71d97a7943 ("ASoC: rt5640: Use the platform data for DMIC settings").

Since DMIC interface must be enabled explicitly either by passing platform
data to rt5640 codec driver or by calling new rt5640_dmic_enable() this
patch adds a DMI quirk flag that is used to conditionally enable DMIC
interface during sound card init time.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-01 17:04:34 +01:00
Mark Brown 1400760c46 Merge branch 'topic/rt5640' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel 2014-10-01 17:04:24 +01:00
Jarkko Nikula cd69dc8868 ASoC: rt5640: Add function for enabling DMIC from ACPI probed machine
There is no code enabling DMIC clock in systems that don't provide platform
data for rt5640 after commit 71d97a7943 ("ASoC: rt5640: Use the platform
data for DMIC settings").

I think it's worth to keep this static DMIC clock and alternative data pin
setting during probe time. For making possible to use DMIC from ACPI probed
machine (prior ACPI 5.1 with _DSD) this patch moves DMIC configuration to
new exported rt5640_dmic_enable() that machine drivers can call.

Please note, this patch moves DMIC configuration from i2c probe to codec
probe in case platform data for rt5640 is set.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Cc: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-01 17:03:24 +01:00
Peter Ujfalusi f114ce605d ASoC: davinvi-mcasp: Proper suspend/resume support while audio is active
If the board is sent to suspend (deep sleep) the McASP context will be lost.
In case when suspend happens during active audio we need to save and restore
more registers, which was configured during hw_param times as well.
We need to add more config registers, AFIFO control registers and we also
need to save and restore the serializer configuration as well.
Since the number of serializers depends on the SoC we need to allocate the
memory for it based on the num_serializer for the given McASP instance.

With this patch the ongoing stream will resume after resuming from deep
sleep.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-01 17:02:09 +01:00
Peter Ujfalusi 1cc0c054f3 ASoC: davinci-mcasp: Convert the context save/restore to use array
Instead of individual values use an array to store the registers need to be
saved on suspend and restored on resume.
It is going to be easier to add more registers to save and restore.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-10-01 17:02:07 +01:00
Takashi Iwai b7c2dc8e68 ASoC: Fix SSM2602 device identification
Another fix for v3.17, fixing device identification after the split out
 of the I2C and SPI code.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJUKqQ0AAoJECTWi3JdVIfQcbcH/1khKNhibCQvL0UB4o5p2Elh
 tffm/bQexEaCWr589X/6V8QCeSL1cm92yTs6FSfsDOny6TXTgMxmYrXeBfGb/L2a
 63IYWWxhdvPO/VtMPgqRnBtFnpr6jU3OJ8hmNRyZ6CR9kv0L0CJzPDIZgsZu5sjy
 wqmi6/zYEWznIjjSFQJjJ0xniHaRiTb6z6y6qtOqVY/btV0Lm5HVmsSiJ6Ktddq+
 jNMZLdAPQUnxLM/gtWbwhazAp6et9CwPWs3Y+jAFfkTc3R30xsC0N1CUq2OV+ngI
 0Wpzou/FOa5o8rWyGS5ORk1aaCDehZOXFSl6YkmbSPCCpDkaxbB4TjB7xPWXRh0=
 =yz7T
 -----END PGP SIGNATURE-----

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

ASoC: Fix SSM2602 device identification

Another fix for v3.17, fixing device identification after the split out
of the I2C and SPI code.
2014-10-01 09:29:26 +02:00
Fabio Estevam ece1e49996 ASoC: fsl_ssi: Remove unneeded 'i2s-slave' property
There is no need to use 'i2s-slave' property, since master/slave configuration
are passed via machine layer.

This change does not break existing users because they do check for slave
mode inside sound/soc/fsl/mpc8610_hpcd.c/p1022_ds.c/p1022_rdk.c

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Timur Tabi <timur@tabi.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-30 13:43:03 +01:00
Stefan Kristiansson 3b2a0013c7 ASoC: ssm2602: add support for 11.025kHz and 22.5kHz sample rates
This adds the necessary values to the constraint list and
register values to the coefficient table in order to
configure the device for 11.025kHz and 22.5kHz sample rates.

Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
2014-09-30 13:27:27 +01:00
Stefan Kristiansson 555b9ee136 ASoC: ssm2602: add device tree bindings
Allow the ssm2602/ssm2603/ssm2604 codec driver to be
instantiated from the device tree.

Also, add Kconfig prompts to allow manual selection of both the
I2C and SPI configuration versions of the driver.

Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
2014-09-30 13:27:27 +01:00
Stefan Kristiansson fe2a08b3bf ASoC: ssm2602: do not hardcode type to SSM2602
The correct type (SSM2602/SSM2603/SSM2604) is passed down
from the ssm2602_spi_probe()/ssm2602_spi_probe() functions,
so use that instead of hardcoding it to SSM2602 in
ssm2602_probe().

Fixes: c924dc68f7 ("ASoC: ssm2602: Split SPI and I2C code into different modules")
Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Cc: stable@vger.kernel.org
2014-09-30 13:27:19 +01:00
Sudip Mukherjee 0cae90a96c ALSA: ctxfi: pr_* replaced with dev_*
pr_* macros replaced with dev_* as they are more preffered over pr_*.
each file which had pr_* was reviewed manually and replaced with dev_*.
here we have actually used the various snd_card which was added to some
structures of ctxfi via a previous patch of this series.

in the ctvmem.c file we have passed a reference of ct_atc as an
argument to get_vm_block function so that it can be used from
dev_*.

since dev_* will print the device information , so the prefix of
"ctxfi" from the various pr_* were also removed.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-30 10:36:59 +02:00
Sudip Mukherjee a45c4d5142 ALSA: ctxfi: ctatc: added reference to snd_card
added reference of the card in the convert_format function
so that we can know which card has called the function.
this reference of the snd_card will actually be used in a later patch
to convert the pr_* macro to dev_*.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-30 10:36:36 +02:00
Sudip Mukherjee e5347f9ab7 ALSA: ctxfi: initialized snd_card
initialized the reference of snd_card which was added to the various
structures through the previous patch of the series.
these references of snd_card will be used in a later patch to convert
the pr_* macros to dev_*

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-30 10:36:12 +02:00
Sudip Mukherjee 3d0fdc86e4 ALSA: ctxfi: added reference of snd_card
added a pointer of snd_card in some of the structures to get a
reference of the card from other functions.
these references of snd_card will be initialised in the next patch
of this series and as of now these snd_card will be used to print the
the device information when we convert the pr_* macros to dev_* in a
later patch of this series.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-30 10:35:48 +02:00
Sudip Mukherjee b6bfe86fd2 ALSA: ctxfi: removed typecast to (struct hw *)
the previous patch of the series has converted the void * to
struct hw * . Now this patch removes the typecasting to (struct hw *)
which is not needed any more.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-30 10:35:21 +02:00
Sudip Mukherjee 66640898ed ALSA: ctxfi: changed void * to struct hw *
in the code we have void *hw and while using we are always typecasting
it to (struct hw *). it is better to use void type of pointer when we
store different types of pointer , but in this code we are only having
struct hw.
So changed all the relevant reference of void *hw to struct hw *hw,
without any modification of the existing code logic.
the next patch of the series will remove the typecasting which is
not required now.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-30 10:34:29 +02:00
Takashi Iwai 5498380e4f ASoC: Fixes for v3.17
A few small driver specific fixes and a couple of error handling fixes
 in the core.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJUJ/BeAAoJECTWi3JdVIfQogIH/1H69hPq96R/0s74I4w1JDcZ
 hnzQ5OPqi3vhPByJUAS6hNGe8TSwLD37maCqydOeqy50dI/NpoNVSVVK8+8VKhdl
 mlkpDFJ1r1IWOYSaGKAH4Ggo6sI5+PEmr4x5MyZPBqxi74Kc/173do6q0yQuLQxs
 wlaADJnQthBz11nViczzF6RA88cQ2JzjkL+aW1iBmw1yok494I2juc0GQ0NmxsQZ
 1Qc2kkAVcGCvXCdI8wQfVHkeIJwT0vSjnofVcXi4/egsQKqU0VaH2yFpC+Pw1vqe
 G49B6SIWEaSO+mtH1V4H57wLPdyajbRLNQ5RJvcDiXOcIEd/AfrcIS7DfMB9wp8=
 =KoXl
 -----END PGP SIGNATURE-----

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

ASoC: Fixes for v3.17

A few small driver specific fixes and a couple of error handling fixes
in the core.
2014-09-30 10:24:05 +02:00
Anatol Pomozov 6f67c38005 ASoC: rt5677: Add dts properties for input/output differential configuration
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-29 19:46:20 +01:00
Jarkko Nikula f8a770c2c6 ASoC: Intel: byt-rt5640: Add quirk for Asus T100
Asus T100 internal microphone is not digital but analogue connected to IN1P
pin of the RT564x codec with shared bias between internal and headset
microphones. Because of this there is need to have machine specific DAPM
routes in byt-rt5640.

Add handling for them with the help of DMI quirk that is used to add custom
routes in addition to common. Because "Internal Mic" connected to DMIC1 is
not common to all move it as a default custom route when there is no match
in quirk table.

Custom "Internal Mic" -> "IN1P" with MICBIAS1 route is added for Asus T100.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-29 19:44:31 +01:00
Jarkko Nikula ac06dd8df6 ASoC: Intel: byt-rt5640: Remove IN2N pin from DAPM route table
I tested couple byt-rt5640 based platforms and they have single-ended
headset microphone connection to IN2P only. I guess IN2N was either defined
by accident or some early platform had floating ground for headset. It's
better to remove IN2N and add a custom route for such a platform if needed.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-29 19:44:31 +01:00
Lars-Peter Clausen 0bd2ac3dae ASoC: Remove CODEC pointer from snd_soc_dapm_context
The only remaining user of the CODEC pointer in the DAPM struct is to
initialize the CODEC pointer in the widget struct. The later is scheduled
for removal, but has still a few users left. For now use
dapm->component->codec to initialize it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-29 18:25:52 +01:00
Lars-Peter Clausen a761f87f36 ASoC: rx51: Use snd_soc_dapm_to_codec() instead of dapm->codec
The CODEC struct in the snd_soc_dapm_context struct is deprecated and
scheduled for removal. Use the snd_soc_dapm_to_codec() function instead.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-29 18:25:43 +01:00
Lars-Peter Clausen 9cca023e5c ASoC: wm8{350,753,971}: Use snd_soc_dapm_to_codec() instead of dapm->codec
The CODEC struct in the snd_soc_dapm_context struct is deprecated and
scheduled for removal. Use the snd_soc_dapm_to_codec() function instead.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-29 18:25:25 +01:00
Arnd Bergmann 19926c6de0 ASoC: davinci: vcif must be a module if SND_DAVINCI_SOC is
It is possible to configure a kernel with SND_DAVINCI_SOC=m and
SND_DM365_VOICE_CODEC=y, which results in a link error:

sound/built-in.o: In function `davinci_vcif_probe':
sound/soc/davinci/davinci-vcif.c:223: undefined reference to `davinci_soc_platform_register'

The best way to avoid this is to make SND_DM365_VOICE_CODEC
a tristate option that depends on SND_DAVINCI_SOC, so it
can only be a module or disabled when the base driver is
a loadable module

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-29 17:12:05 +01:00
Mark Brown 82b925c405 Merge remote-tracking branches 'asoc/fix/atmel', 'asoc/fix/compress', 'asoc/fix/core', 'asoc/fix/fsl-ssi' and 'asoc/fix/rt286' into asoc-linus 2014-09-28 12:25:12 +01:00
Jarkko Nikula 969168e2e9 ASoC: Intel: byt-max98090: Set card as fully routed
All byt-max98090 audio connections are known and described in DAPM routing
table. Set the fully_routed flag in order to disable unused codec pins.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-28 12:22:37 +01:00
Mark Brown e172b9e6a1 Merge branch 'fix/max98090' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel 2014-09-28 12:22:30 +01:00
Jarkko Nikula f69e3caa9e ASoC: max98090: Enable both DMIC channels also when using mono configuration
According to MAX98090 specification "Digital microphone clock (DMC) is
enabled once both data channels are enabled.". Therefore both digital
microphone data channels must be enabled also when using mono microphone
configuration.

Fix this by moving "DMICL_ENA" and "DMICR_ENA" supply widgets from "DMICL"
and "DMICR" inputs to "DMIC Mux" in order to enable both data channels
whenever there is active mono or stereo digital microphone input path.

Use of "DMICL" and "DMICR" inputs are retained for informative source and in
case the driver would find use for exact digital microphone configuration in
the future.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-28 12:03:50 +01:00
Xiubo Li 6596aa047b ASoC: core: fix possible ZERO_SIZE_PTR pointer dereferencing error.
Since we cannot make sure the 'params->num_regs' will always be none
zero here, and then if it equals to zero, the kmemdup() will return
ZERO_SIZE_PTR, which equals to ((void *)16).

So this patch fix this with just doing the zero check before calling
kmemdup().

Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
2014-09-28 11:49:42 +01:00
Anatol Pomozov 1ee44ce030 ASoC: ssm4567: Add driver for Analog Devices SSM4567 amplifier
Analog Devices SSM4567 is a boost class-D audio amplifier.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-27 11:12:42 +01:00
Bard Liao 66d627d554 ASoC: rt286: Fix sync function
We try to write index registers into cache when we write an index
register, but we change the reg value before updating the cache.
As a result, the cache is never be updated. This patch will fix
this issue.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
2014-09-26 09:14:27 +01:00
Bard Liao b7a2976775 ASoC: rt286: Correct default value
This patch corrects some incorrect default value in the cache.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
2014-09-26 09:14:18 +01:00
Charles Keepax c24084db22 mfd: arizona: Add ASYNC_SAMPLE_RATE_2 registers
Some arizona devices have a second asynchronous sample rate, add the
registers necessary to support this.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2014-09-26 08:15:52 +01:00
Lars-Peter Clausen 83a7fc98dc ASoC: wm8741: Remove unused wm8741_suspend define
This driver has no suspend callback.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-25 16:17:39 +01:00
Vinod Koul 0121327c1a ASoC: Intel: mfld-pcm: add control for powering up/down dsp
When we have PCM (FE/BE) opened or DAPM widgets triggered we need power
up/down DSP accordingly. The DSP will do ref count of these requests
i.e. link these runtime_get/put calls of DSP

Also fix some preexisting spacing error.

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-25 15:22:23 +01:00
Greg Kroah-Hartman 346e2e4a8b Adds 3 new PHY drivers stih407, stih41x and rcar gen2 PHY. It also
includes miscellaneous cleanup of other PHY drivers.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJUIsh+AAoJEA5ceFyATYLZTRMQAJm5YYmFQVV2Ps+WfwZkF5Qi
 99YX8myYkaedvydRcv+bwFbRoEHo3KshjIrjmwBIqqxbkR060xEr8UQxY0fftzWF
 whsxtmW1AELSnsanEinXSgDhIinGL8EQpvjD/PF5SedBbmm3TbD6n4erNl8bR66Z
 lUz///c/77wO0HlVo1QwijWoKrk6ZRNP7yXQDSNcn0lhmRIQi97i/K3G2M3IF9ze
 PpYcBHGJ+ObnsJpMbf/eCkmT+snhDreAe/IENNP16z4Fh4Z6V+H5J+8GKfcDYj/g
 jUnkpGZXnXVqRsTzB3uqHj2KxmGXa+HQ4oJYif+U+gXEvrq3gS1OlLWVvxXlHIjW
 +VHsoRVy4DmHiS01gHNIdg1iG47X4atl99v1qoTxD65h0Ago6HcnfxSFXZEWDX+x
 yLhTzvlTXiYvD9p+YA33RPaSHEk1+3CEHMtTgmep7QjBgSEOMXPE+rgMTwOwxDgI
 bIL4U0MYZ+H8wZ1EF/2XQdOTBMfcGuiAl5kg+YmlWJY/IOlf7xdQ3hHI0olSM7kW
 JjQ2tLxK1WpoZmmH4aR/faj0U7+10kxtiNtI8PVMmOwlUX+YE0f1WljRXO8rbvDR
 dDPalLThXQyQnzgpSURkKqoN9YIl5DJ1QVX/cnDHUNnmWUkt6ZVbmVowpeumZ8Fv
 mxwDIiW7kDiICNu5Vq7x
 =Efl5
 -----END PGP SIGNATURE-----

Merge tag 'phy-for_3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next

Kishon writes:

Adds 3 new PHY drivers stih407, stih41x and rcar gen2 PHY. It also
includes miscellaneous cleanup of other PHY drivers.

Conflicts:
	MAINTAINERS
2014-09-25 13:11:52 +02:00
Qiao Zhou 2e4ec1c0b8 ASoC: soc-compress: fix double unlock of fe card mutex
Fix double unlock of fe card mutex introduced by patch 8f70e515a8
"ASoC: soc-pcm: fix dpcm_path_get error handling"

The first unlock is at line 106, and the unlock is at line 149. we
should remove the first unlock.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Qiao Zhou <zhouqiao@marvell.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 11:38:55 +01:00
Anatol Pomozov f9f6a592cf ASoC: rt5677: Add a configuration option for LDO2_POW pin
Some boards have this pin statically tied and do not require any configuration,
some other boards allow to enable chip using GPIO.

Add an option that tells which GPIO is used to power the audio codec.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 09:59:03 +01:00
Jarkko Nikula 99632d1077 ASoC: max98090: Remove unused byte access macros
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 09:37:18 +01:00
Jarkko Nikula 0e2cadf39a ASoC: max98090: Remove unused version define
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 09:37:17 +01:00
Jarkko Nikula 3256ff6e51 ASoC: max98090: Remove structure member extmic_mux from private data
There is no other use for extmic_mux than setting it to zero so remove it.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 09:37:17 +01:00
Jarkko Nikula ced1933db6 ASoC: max98090: Remove structure member irq from private data
struct max98090_priv member irq is now used only locally in
max98090_i2c_probe() and can be removed.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 09:37:17 +01:00
Jarkko Nikula 7a7f0ba03d ASoC: max98090: Move interrupt request from codec probe to i2c probe
Keep MAX98090 interrupt requested after i2c device probing as long as the
driver is loaded. This fixes the issue where subsequent codec probe
max98090_probe() call fails in interrupt request since interrupt wasn't
freed over codec remove-reprobe cycle.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 09:37:17 +01:00
Howard Mitchell 5c7c343a11 ASoC: core: Fix volsw_range funcs so SOC_DOUBLE_R_RANGE_TLV works.
This fixes a bug when using the SOC_DOUBLE_R_RANGE_TLV macro in
the invert mode. In the non-invert case, e.g.

SOC_DOUBLE_R_RANGE_TLV("<name>", <reg_l>, <reg_r>,
					0, 40, 255, 0, <tlv>)

the range sent to the hardware is 40..255, but in the invert case:

SOC_DOUBLE_R_RANGE_TLV("<name>", <reg_l>, <reg_r>,
					0, 40, 255, 1, <tlv>)

the range 215..0 was being sent to the hardware. This commit
corrects this to 255..40 so it is consistent with the non-invert
case.

Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-24 09:37:03 +01:00
Petr Mladek 37ebb54915 usb: hub: rename khubd to hub_wq in documentation and comments
USB hub has started to use a workqueue instead of kthread. Let's update
the documentation and comments here and there.

This patch mostly just replaces "khubd" with "hub_wq". There are only few
exceptions where the whole sentence was updated. These more complicated
changes can be found in the following files:

	   Documentation/usb/hotplug.txt
	   drivers/net/usb/usbnet.c
	   drivers/usb/core/hcd.c
	   drivers/usb/host/ohci-hcd.c
	   drivers/usb/host/xhci.c

Signed-off-by: Petr Mladek <pmladek@suse.cz>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-23 22:33:19 -07:00
Sudip Mukherjee 7a7686bd0d ALSA: ctxfi: sparse warning
fixed sparse warning of incorrect type (different address spaces) in
cthw20k1.c and cthw20k2.c which was being actually caused as mem_base
was of the type unsigned long.

Again as mem_base was previously unsigned long , so it required many
typecasts in the code to convert interger to pointer.

Now after giving the correct type of mem_base as void __iomem *
we can also remove those typecasts maintaining the same functionality
and logic of the code.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-23 16:00:31 +02:00
David Henningsson 95f72cf2cd ALSA: hda - Sort input pins depending on amp caps
If one input has a boost and another one has not, and they're equal
otherwise, it's more likely you want to use the input with the boost
as your primary input.

See hda-emu.git/codecs/canonical/cx20590-lenovo-20b2z00bus-ccert-201305-13496
for an example.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-23 15:57:32 +02:00
David Henningsson 861a04ed15 ALSA: hda - Move the function "check_amp_caps" to hda_codec.c
The next patch will use it, so make it visible across modules.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-23 15:57:28 +02:00
Lars-Peter Clausen 8c8f2f6fc1 ASoC: Fix snd_soc_{new,free}_ac97_codec() locking removal
Commit e3f205a72c ("ASoC: Remove locking in
snd_soc_{new,free}_ac97_codec()") overlooked a unlock on one of the error
paths.

Fixes: e3f205a72c ("ASoC: Remove locking in snd_soc_{new,free}_ac97_codec()")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-23 14:45:06 +01:00
David Henningsson a5062dee82 ALSA: hda - add explicit include of err.h
Since every caller of snd_hda_jack_detect_enable_callback needs to
use the macros from err.h, it makes sense to include it directly
from hda_jack.h.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-23 09:42:17 +02:00
Michael Trimarchi 85151461f1 ASoC: fsl_ssi: fix kernel panic in probe function
code can raise a panic when the ssi_private->pdev is null

[...]
	/*
	 * If codec-handle property is missing from SSI node, we assume
	 * that the machine driver uses new binding which does not require
	 * SSI driver to trigger machine driver's probe.
	 */
	if (!of_get_property(np, "codec-handle", NULL))
		goto done;
[...]
	ssi_private->pdev =
		platform_device_register_data(&pdev->dev, name, 0, NULL, 0);
[...]
done:
	if (ssi_private->dai_fmt)
		_fsl_ssi_set_dai_fmt(ssi_private, ssi_private->dai_fmt);

Proposal was to not use ssi_private->pdev->dev here but adding a new parameter
of *dev pointer to this _set_dai_fmt() -- passing pdev->dev in probe() and
cpu_dai->dev in fsl_ssi_set_dai_fmt().

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reported-by: Jean-Michel Hautbois <jean-michel.hautbois@vodalys.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-22 18:58:48 -07:00
Lars-Peter Clausen e3f205a72c ASoC: Remove locking in snd_soc_{new,free}_ac97_codec()
snd_soc_new_ac97_codec() and snd_soc_free_ac97_codec() are called from
within a CODEC's probe() and remove() callbacks. Those will not run
concurrently against each other for the same CODEC instance, hence it is not
necessary to protect the two functions with a mutex.

This removes the last user in the ASoC core of the snd_soc_codec mutex field
and will allow us to eventually remove it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-22 18:19:56 -07:00
Oder Chiou 90bdbb46f4 ASoC: rt5677: Add sidetone function
Add sidetone function

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-22 17:52:45 -07:00
Takashi Iwai 7639913f72 Merge branch 'topic/hda-jack-rework' into for-next
This is a merge of rework of HD-audio jack event handling code.
It extends the jack table to allow multiple callbacks.
2014-09-22 10:12:16 +02:00
Clemens Ladisch 4e9c58cb12 ALSA: oxygen: set fifo_size
Allow the driver to report the hardware FIFO size.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-22 08:57:01 +02:00
Harley Griggs 5ae0095d00 ALSA: virtuoso: add partial Xonar Xense support
This patch adds partial support for the Xonar Xense.

[trivial coding style fixes by tiwai]

Signed-off-by: Harley Griggs <hgriggs@posteo.co.uk>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-22 08:55:15 +02:00
Daniel Mack e76bf63487 ALSA: snd-usb-caiaq: Fix LED commands for Kore controller
KoreController and KoreController2 need an EP1_CMD_DIMM_LEDS command to set
their LEDs, not EP1_CMD_WRITE_IO.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Reported-and-tested-by: Brad Wilson <brad.wilson.00@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-22 08:52:14 +02:00
Clemens Ladisch a9960e6a29 ALSA: pcm: fix fifo_size frame calculation
The calculated frame size was wrong because snd_pcm_format_physical_width()
actually returns the number of bits, not bytes.

Use snd_pcm_format_size() instead, which not only returns bytes, but also
simplifies the calculation.

Fixes: 8bea869c5e ("ALSA: PCM midlevel: improve fifo_size handling")
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-22 08:51:35 +02:00
Huacai Chen 8245b36345 ALSA: hda - Add fixup model name lookup for Lemote A1205
Lemote A1004 is already added in commit a2dd933d01 (ALSA: hda - Add
fixup name lookup for CX5051 and 5066 codecs), but Lemote A1205 has
missing.

Signed-off-by: Huacai Chen <chenhc@lemote.com>
Cc: <stable@vger.kernel.org> # 3.15+
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-19 09:14:40 +02:00
abdoulaye berthe 88d5e520aa driver:gpio remove all usage of gpio_remove retval in driver
this remove all reference to gpio_remove retval in all driver
except pinctrl and gpio. the same thing is done for gpio and
pinctrl in two different patches.

Signed-off-by: Abdoulaye Berthe <berthe.ab@gmail.com>
Acked-by: Michael Büsch <m@bues.ch>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2014-09-18 11:03:10 -07:00
Shengjiu Wang f4a43caba7 ASoC: fsl_ssi: refine ipg clock usage in this module
Check if ipg clock is in clock-names property, then we can move the
ipg clock enable and disable operation to startup and shutdown, that
is only enable ipg clock when ssi is working and keep clock is disabled
when ssi is in idle.
But when the checking is failed, remain the clock control as before.

Tested-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-17 11:30:15 -07:00
Oder Chiou 48561afef4 ASoC: rt5677: Add the TDM function
The patch adds the TDM function.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-17 10:05:12 -07:00
Axel Lin 5d5e63af99 ASoC: Remove return value checking for gpiochip_remove()
gpiochip_remove() will return void eventually.
Thus this patch removes return value checking for gpiochip_remove().

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-17 09:49:53 -07:00
Rasmus Villemoes 8bb1ffdf76 ALSA: hda - Replace strnicmp with strncasecmp
The kernel used to contain two functions for length-delimited,
case-insensitive string comparison, strnicmp with correct semantics
and a slightly buggy strncasecmp. The latter is the POSIX name, so
strnicmp was renamed to strncasecmp, and strnicmp made into a wrapper
for the new strncasecmp to avoid breaking existing users.

To allow the compat wrapper strnicmp to be removed at some point in
the future, and to avoid the extra indirection cost, do
s/strnicmp/strncasecmp/g.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-17 07:53:30 +02:00
Subhransu S. Prusty 6df5d76805 ASoC: Intel: mrfld: Use snd_soc_dai_get_drvdata to derive drv data
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-16 16:39:42 -07:00
Fabian Frederick e306b6ee4d ASoC: cs35l32: remove second linux/slab.h inclusion
linux/slab.h was included twice.

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-16 16:11:02 -07:00
Vinod Koul 10615a5c49 ASoC: Intel: mrfld: add bytes control for modules
This patch add support for various modules like eq etc for mrfld DSP.
All these modules will be exposed to usermode as bytes controls.

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-16 11:53:53 -07:00
Vinod Koul d2b16b8fa1 ASoC: Intel: mfld-pcm: don't call trigger ops to DSP for internal streams
For internal stream i.e. BE we have don't need trigger ops as that
would be handled by DAPM for us in subsequent patches

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-16 11:53:53 -07:00
Oder Chiou 44caf76480 ASoC: rt5677: Add the GPIO function
The patch adds the GPIO function.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-16 09:16:12 -07:00
Takashi Iwai f8fb117034 ALSA: hda - Use standard hda_jack infrastructure for CA0132 driver
For its headphone, mic and DSP responses, we can use the standard
hda_jack infrastructure in CA0132 driver, too.  The only point to
handle carefully is the delayed headphone jack handling.  It tries to
react after a certain delay.  Here we use the existing block_report
flag in hda_jack_tbl (that was implemented for HDMI).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-16 17:25:02 +02:00
Takashi Iwai 7c3008c47b ALSA: hda - Remove superfluous hooks from VIA driver
Like the previous fix for STAC/IDT codecs, the automute hooks in VIA
driver can be also removed by enabling the power control callback for
all pins.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-16 17:25:01 +02:00
Takashi Iwai aa699c492e ALSA: hda - Remove superfluous callbacks from STAC/IDT codecs
Now we can register multiple callbacks to each jack, most of hooks
used in STAC/IDT codecs can be removed by enabling the powermap update
callback for all relevant pins.  Along with this, the call of
stac_init_power_map() can be moved back to stac_parse_auto_config()
and the own build_controls callback can be removed, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-16 17:25:01 +02:00
Takashi Iwai 1a4f69d5aa ALSA: hda - Allow multiple callbacks for jack
So far, hda_jack infrastructure allows only one callback per jack, and
this makes things slightly complicated when a driver wants to assign
multiple tasks to a jack, e.g. the standard auto-mute with a power
up/down sequence.  This can be simplified if the hda_jack accepts
multiple callbacks.

This patch is such an extension: the callback-specific part (the
function and private_data) is split to another struct from
hda_jack_tbl, and multiple such objects can be assigned to a single
hda_jack_tbl entry.

The new struct hda_jack_callback is passed to each callback function
now, thus the patch became bigger than expected.  But these changes
are mostly trivial.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-16 17:23:44 +02:00
Takashi Iwai 7796085219 ASoC: Fixes for v3.17
This is mostly driver fixes, the biggest one being the tlv320aic31xx
 which is relatively large but simple and device specific.  There's a
 small fix in the error handling in DPCM too which is relatively minor
 error handling fix.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJUF2h1AAoJECTWi3JdVIfQt0UH/155GaSoLBAfnvjBBlmyTTSx
 nY/kdZYB9tMR0Y35PuX1Ekd2VNaLFKTEpUsYLLCfvoKezwr0y5Trz5p78g/RoEPH
 uU0Z6mQ7/5nepwy3QBnZG3s5TfSxtLA1ifGx0YGn2pY+c1qnhsPRCPTWjQ9lEsQv
 f5WfIOMULKCtXT+hHLwzCeKHu1pF6SM6w5Vppys4i+Lu/Ac/7MdD2PzrSR94Y+82
 5PftV9HJQil//qFcxQEUUUGPharBu7BsWn8HVqT/oN9FkglZWmHLNIvks+qHmX6/
 6GTR7K2FX+2DI4mvRfTz/mb95un1UWzVQByqhhJqt/OohNfZX743ag5bn7M0HUE=
 =SME3
 -----END PGP SIGNATURE-----

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

ASoC: Fixes for v3.17

This is mostly driver fixes, the biggest one being the tlv320aic31xx
which is relatively large but simple and device specific.  There's a
small fix in the error handling in DPCM too which is relatively minor
error handling fix.
2014-09-16 16:40:38 +02:00
Mark Brown f7667af217 Merge remote-tracking branches 'asoc/fix/cs4265', 'asoc/fix/davinci', 'asoc/fix/rockchip', 'asoc/fix/samsung' and 'asoc/fix/tlv320aic31xx' into asoc-linus 2014-09-15 15:05:34 -07:00
Mark Brown af0f2ceadf Merge remote-tracking branch 'asoc/fix/pcm' into asoc-linus 2014-09-15 15:05:33 -07:00
Mark Brown 8dbc895067 Merge remote-tracking branch 'asoc/fix/core' into asoc-linus 2014-09-15 15:05:33 -07:00
Oder Chiou e5b2791d2a ASoC: rt5677: Revise the wrong name in the header file
The patch revises the wrong name in the header file.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2014-09-15 14:48:58 -07:00
Takashi Iwai 3b73cfe559 ALSA: pdaudiocf: Use nonatomic PCM ops
Like other fixes, convert the tasklet to a threaded irq and replace
spinlock with mutex appropriately.  ak4117_lock remains as spinlock
since it's called in another spinlock context from ak4117 driver.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-15 15:52:38 +02:00
Takashi Iwai 6336c20cda ALSA: lx6464es: Use nonatomic PCM ops
Like the other previous changes, this patch for lx6464es takes the
same strategy for converting to nonatomic PCM ops: replacing spinlock
with mutex, converting the irq tasklet to the threaded irq, and
merging the trigger tasklets back to the trigger callback.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-15 15:52:10 +02:00
Takashi Iwai 9bef72bdb2 ALSA: pcxhr: Use nonatomic PCM ops
This time PCXHR, another Digigram boards: like the previous patches,
the conversion is straightforward, replacing spinlocks with mutexes,
merging the irq tasklet into the threaded irq handler and the PCM
trigger tasklet back to the trigger callback.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-15 15:52:09 +02:00
Takashi Iwai 8d3a8b5cb5 ALSA: mixart: Use nonatomic PCM ops
Like the previous patch for VX boards, miXart device driver can be
also rewritten to use nonatomic PCM ops.  Simply spinlocks are
replaced with mutex, the tasklet code is merged into the threaded irq
handler.  Also, now mgr->msg_mutex is superfluous, so merged to
msg_lock.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-15 15:52:09 +02:00
Takashi Iwai db0a5214b8 ALSA: vx: Use nonatomic PCM ops
Rewrite VXpocket and VX222 drivers to use the new PCM nonatomic ops.
The former irq tasklet is replaced with a threaded irq handler, and
the tasklet for the PCM delayed start is simply merged into the normal
PCM trigger, as well as the replacement of spinlock with mutex.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-15 15:52:03 +02:00
Takashi Iwai bda17b82bf ALSA: hda - Make snd_hda_jack_detect_enable_callback() returning the jack object
STAC/IDT driver calls snd_hda_jack_tbl_get() again after calling
snd_hda_jack_detect_enable_callback().  For simplifying this, let's
make snd_hda_jack_detect_enable_callback() returning the pointer while
handling the error with the standard IS_ERR() & co.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-09-15 11:50:48 +02:00