summaryrefslogtreecommitdiffstats
path: root/sound/soc/pxa
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: z2: Automatically disconnect non-connected pinsLars-Peter Clausen2015-05-081-8/+1
| | | | | | | | | | | | | | Most DAPM input and output pins of the wm8750 are either used in the card's DAPM routing table or are marked as not connected. The only exceptions are the LINPUT1, RINPUT1, LINPUT2 input pins. Lets assume that those were simply overlooked and that the routing table is complete. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: tosa: Automatically disconnect non-connected pinsLars-Peter Clausen2015-05-081-12/+1
| | | | | | | | | | | | | | Most DAPM input and output pins of the wm9712 are either used in the card's DAPM routing table or are marked as not connected. The only two exception are "PHONE" and "PCBEEP" input, lets assume that those were simply overlooked and that the routing table is complete. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: poodle: Automatically disconnect non-connected pinsLars-Peter Clausen2015-05-081-15/+4
| | | | | | | | | | | | | The Zaurus SL-5600 seems to have a microphone input. Otherwise all DAPM input and output pins of the wm8731 are either used in the card's DAPM routing table or are marked as not connected. So add the microphone to the DAPM tables and set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: brownstone: Automatically disconnect non-connected pinsLars-Peter Clausen2015-05-081-24/+1
| | | | | | | | | | | | | | | | Most DAPM input and output pins of the wm8994 are either used in the card's DAPM routing table or are marked as not connected. The only exception is DMIC2DAT input. Given that DMIC1DAT is explicitly mentioned in the DAPM routes lets assume that DMIC2DAT simply has been overlooked and should be marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: z2: Register jacks at the card levelLars-Peter Clausen2015-03-041-7/+3
| | | | | | | | The jacks are card level elements so use snd_soc_card_jack_new() instead of snd_soc_jack_new() to register them. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: ttc-dkb: Register jacks at the card levelLars-Peter Clausen2015-03-041-9/+6
| | | | | | | | The jacks are card level elements so use snd_soc_card_jack_new() instead of snd_soc_jack_new() to register them. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: palm27x: Register jacks at the card levelLars-Peter Clausen2015-03-041-8/+3
| | | | | | | | The jacks are card level elements so use snd_soc_card_jack_new() instead of snd_soc_jack_new() to register them. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: hx4700: Register jacks at the card levelLars-Peter Clausen2015-03-041-8/+3
| | | | | | | | The jacks are card level elements so use snd_soc_card_jack_new() instead of snd_soc_jack_new() to register them. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
*-. Merge remote-tracking branches 'asoc/topic/omap', 'asoc/topic/pxa' and ↵Mark Brown2015-02-049-119/+10
|\ \ | | | | | | | | | 'asoc/topic/rcar' into asoc-next
| | * ASoC: pxa: make TTC DKB tristateArnd Bergmann2015-01-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a rare combination of Kconfig settings, the 88pm860x-codec module may be selected as a loadable module, while it's also being used by the ttb-dkb code that is built-in, resulting in a link error: sound/built-in.o: In function `ttc_pm860x_init': :(.text+0x3e888): undefined reference to `pm860x_hs_jack_detect' :(.text+0x3e898): undefined reference to `pm860x_mic_jack_detect' Changing ttb-tkb to a tristate option tells Kconfig that 88pm86x actually needs to be built-in if ttc-dkb is also built-in. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: spitz: Automatically disconnect non-connected pinsLars-Peter Clausen2015-01-091-21/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All DAPM input and output pins of the wm8750 are either used in the card's DAPM routing table or are marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: palm27x: Automatically disconnect non-connected pinsLars-Peter Clausen2015-01-091-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All DAPM input and output pins of the wm9712 are either used in the card's DAPM routing table or are marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: palm27x: Fix microphone routeLars-Peter Clausen2015-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | The microphone route has sink and source swapped. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: magician: Automatically disconnect non-connected pinsLars-Peter Clausen2015-01-091-20/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All DAPM input and output pins of the uda1380 are either used in the card's DAPM routing table or are marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: hx4700: Automatically disconnect non-connected pinsLars-Peter Clausen2015-01-091-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All DAPM input and output pins of the ak4641 are either used in the card's DAPM routing table or are marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: e750: Automatically disconnect non-connected pinsLars-Peter Clausen2015-01-091-19/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All DAPM input and output pins of the wm9705 are either used in the card's DAPM routing table or are marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: e740: Automatically disconnect non-connected pinsLars-Peter Clausen2015-01-091-19/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All DAPM input and output pins of the wm9705 are either used in the card's DAPM routing table or are marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: corgi: Automatically disconnect non-connected pinsLars-Peter Clausen2015-01-091-15/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All DAPM input and output pins of the wm8994 are either used in the card's DAPM routing table or are marked as not connected. Set the fully_routed flag of the card instead of manually marking the unused inputs and outputs as not connected. This makes the code a bit shorter and cleaner. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: ttc-dkb: Remove unnecessary snd_soc_dapm_disable_pin() callsLars-Peter Clausen2015-01-091-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "Headset Mic 2" and the "Headset Stereophone" widget are managed by the jack detection logic. Their will be set depending on whether something is connected to the jack or not. There is no need to manually change the state beforehand as it will be overwritten anyway. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: pxa: drop owner assignment from platform_driversWolfram Sang2014-12-221-1/+0
| |/ | | | | | | | | | | | | | | This platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| |
| \
*-. \ Merge remote-tracking branches 'asoc/topic/cs42l73', 'asoc/topic/dai' and ↵Mark Brown2015-02-042-37/+10
|\ \ \ | | |/ | |/| | | | 'asoc/topic/davinci' into asoc-next
| | * ASoC: zylonite: Use static DAI format setupLars-Peter Clausen2015-01-061-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | Set the dai_fmt field in the dai_link struct instead of manually calling snd_soc_dai_fmt(). This makes the code cleaner and shorter. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: raumfeld: Use static DAI format setupLars-Peter Clausen2015-01-061-27/+8
| |/ | | | | | | | | | | | | | | Set the dai_fmt field in the dai_link struct instead of manually calling snd_soc_dai_fmt(). This makes the code cleaner and shorter. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: mioa701_wm9713: Fix speaker eventLars-Peter Clausen2015-01-151-1/+1
|/ | | | | | | | | | | | | | | Commit f6b2a04590bb ("ASoC: pxa: mioa701_wm9713: Convert to table based DAPM setup") converted the driver to register the board level DAPM elements with the card's DAPM context rather than the CODEC's DAPM context. The change overlooked that the speaker widget event callback accesses the widget's codec field which is only valid if the widget has been registered in a CODEC DAPM context. This patch modifies the callback to take an alternative route to get the CODEC. Fixes: f6b2a04590bb ("ASoC: pxa: mioa701_wm9713: Convert to table based DAPM setup") Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* Merge tag 'driver-core-3.19-rc1' of ↵Linus Torvalds2014-12-1418-18/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core update from Greg KH: "Here's the set of driver core patches for 3.19-rc1. They are dominated by the removal of the .owner field in platform drivers. They touch a lot of files, but they are "simple" changes, just removing a line in a structure. Other than that, a few minor driver core and debugfs changes. There are some ath9k patches coming in through this tree that have been acked by the wireless maintainers as they relied on the debugfs changes. Everything has been in linux-next for a while" * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits) Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries" fs: debugfs: add forward declaration for struct device type firmware class: Deletion of an unnecessary check before the function call "vunmap" firmware loader: fix hung task warning dump devcoredump: provide a one-way disable function device: Add dev_<level>_once variants ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries ath: use seq_file api for ath9k debugfs files debugfs: add helper function to create device related seq_file drivers/base: cacheinfo: remove noisy error boot message Revert "core: platform: add warning if driver has no owner" drivers: base: support cpu cache information interface to userspace via sysfs drivers: base: add cpu_device_create to support per-cpu devices topology: replace custom attribute macros with standard DEVICE_ATTR* cpumask: factor out show_cpumap into separate helper function driver core: Fix unbalanced device reference in drivers_probe driver core: fix race with userland in device_add() sysfs/kernfs: make read requests on pre-alloc files use the buffer. sysfs/kernfs: allow attributes to request write buffer be pre-allocated. fs: sysfs: return EGBIG on write if offset is larger than file size ...
| * ASoC: pxa: drop owner assignment from platform_driversWolfram Sang2014-10-2018-18/+0
| | | | | | | | | | | | | | A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
| |
| \
*-. \ Merge remote-tracking branches 'asoc/topic/multi-codec', ↵Mark Brown2014-12-083-37/+38
|\ \ \ | | |/ | |/| | | | 'asoc/topic/mxs-saif', 'asoc/topic/mxs-sgtl5000', 'asoc/topic/omap' and 'asoc/topic/pxa' into asoc-next
| | * ASoC: pxa: prepare/unprepare clocks in pxa-sspDmitry Eremin-Solenikov2014-11-171-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | Change clk_enable/disable() calls to clk_prepare_enable() and clk_disable_unrepapre(). Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: mioa701_wm9713: Don't opencode CODEC register accessLars-Peter Clausen2014-11-041-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Properly use snd_soc_update_bits() instead of manually calling the CODEC driver's read and write callbacks. The later will stop working once the wm9713 driver has been converted to regmap. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: pxa: Convert spitz to use snd_soc_register_card()Dmitry Eremin-Solenikov2014-10-281-24/+28
| |/ | | | | | | | | | | | | Use snd_soc_register_card() instead of creating a "soc-audio" platform device. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: Rename snd_soc_dai_driver struct ac97_control field to bus_controlLars-Peter Clausen2014-11-181-3/+3
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting the ac97_control field on a CPU DAI tells the ASoC core that this DAI in addition to audio data also transports control data to the CODEC. This causes the core to suspend the DAI after the CODEC and resume it before the CODEC so communication to the CODEC is still possible. This is not necessarily something that is specific to AC'97 and can be used by other buses with the same requirement. This patch renames the flag from ac97_control to bus_control to make this explicit. While we are at it also change the type from int to bool. The following semantich patch was used for automatic conversion of the drivers: // <smpl> @@ identifier drv; @@ struct snd_soc_dai_driver drv = { - .ac97_control + .bus_control = - 1 + true }; // </smpl> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
* Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dmaLinus Torvalds2014-10-181-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull slave-dmaengine updates from Vinod Koul: "For dmaengine contributions we have: - designware cleanup by Andy - my series moving device_control users to dmanegine_xxx APIs for later removal of device_control API - minor fixes spread over drivers mainly mv_xor, pl330, mmp, imx-sdma etc" * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (60 commits) serial: atmel: add missing dmaengine header dmaengine: remove FSLDMA_EXTERNAL_START dmaengine: freescale: remove FSLDMA_EXTERNAL_START control method carma-fpga: move to fsl_dma_external_start() carma-fpga: use dmaengine_xxx() API dmaengine: freescale: add and export fsl_dma_external_start() dmaengine: add dmaengine_prep_dma_sg() helper video: mx3fb: use dmaengine_terminate_all() API serial: sh-sci: use dmaengine_terminate_all() API net: ks8842: use dmaengine_terminate_all() API mtd: sh_flctl: use dmaengine_terminate_all() API mtd: fsmc_nand: use dmaengine_terminate_all() API V4L2: mx3_camer: use dmaengine_pause() API dmaengine: coh901318: use dmaengine_terminate_all() API pata_arasan_cf: use dmaengine_terminate_all() API dmaengine: edma: check for echan->edesc => NULL in edma_dma_pause() dmaengine: dw: export probe()/remove() and Co to users dmaengine: dw: enable and disable controller when needed dmaengine: dw: always export dw_dma_{en,dis}able dmaengine: dw: introduce dw_dma_on() helper ...
| * ASoC: mmp-pcm: add NO_PERIOD_WAKEUP for PCM INFOQiao Zhou2014-09-111-1/+2
| | | | | | | | | | | | | | | | add NO_PERIOD_WAKEUP to PCM INFO, which supports audio no IRQ mode Signed-off-by: Qiao Zhou <zhouqiao@marvell.com> Acked-by: Mark Brown <broonie@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* | ASoC: pxa-ssp: drop SNDRV_PCM_FMTBIT_S24_LEDaniel Mack2014-08-131-3/+1
|/ | | | | | | | | | This mode is unsupported, as the DMA controller can't do zero-padding of samples. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-by: Johannes Stezenbach <js@sig21.net> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
*-. Merge remote-tracking branches 'asoc/topic/omap', 'asoc/topic/oom' and ↵Mark Brown2014-08-041-1/+2
|\ \ | | | | | | | | | 'asoc/topic/pxa' into asoc-next
| | * ASoC: pxa: pxa-ssp: small leak in probe()Dan Carpenter2014-07-311-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | There is a small memory leak if probe() fails. Fixes: 2023c90c3a2c ('ASoC: pxa: pxa-ssp: add DT bindings') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | |
| \ \
*-. \ \ Merge remote-tracking branches 'asoc/fix/fsl-dma', 'asoc/fix/fsl-spdif', ↵Mark Brown2014-06-161-5/+6
|\ \ \ \ | |_|/ / |/| | / | | |/ | |/| 'asoc/fix/pxa', 'asoc/fix/rcar' and 'asoc/fix/sigmadsp' into asoc-linus
| | * ASoC: MMP audio needs sram supportArnd Bergmann2014-06-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From e7a94bb7fb871c73cc85712d89c1f48d0271c1be Mon Sep 17 00:00:00 2001 From: Arnd Bergmann <arnd@arndb.de> Date: Thu, 5 Jun 2014 12:31:28 +0200 Subject: [PATCH] ASoC: MMP audio needs sram support Building the pxa/mmp audio driver without support for the mmp sram driver enabled results in this link error: sound/built-in.o: In function `mmp_pcm_free_dma_buffers': :(.text+0x3e734): undefined reference to `sram_get_gpool' sound/built-in.o: In function `mmp_pcm_new': :(.text+0x3e7c0): undefined reference to `sram_get_gpool' The sram driver is cannot be manually enabled and needs to be turned on by selecting MMP_SRAM from each module that needs it, which is what this patch does. Ideally, MMP should move over to the generic SRAM support, but for the moment, we can avoid the build error. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Eric Miao <eric.y.miao@gmail.com> Cc: Haojian Zhuang <haojian.zhuang@gmail.com> Cc: Qiao Zhou <zhouqiao@marvell.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| | * ASoC: pxa: add I2C dependencies as neededArnd Bergmann2014-06-031-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have in the past added 'depends on I2C' for some of the PXA boards after hitting randconfig build bugs. I have seens a couple of new bugs in this area during the linux-next cycle for 3.16, after it became possible to build some more PXA machines with I2C disabled. To shut this up for good, this adds the dependency to every board that uses I2C as the interface to the codec. I have gone through all board files and verified that they all either use AC97 or I2C, and this annotates the latter. Some of these already enable I2C from mach-pxa/Kconfig, but since that can change it's better to be explicit here. The link error that can result otherwise happens when CONFIG_I2C is set to 'm' and the codec driver is built-in as a result of being selected by the platform specific glue. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Mark Brown <broonie@linaro.org>
* | | ASoC: Fix wrong argument for card remove callbacksTakashi Iwai2014-06-031-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | The commit [e1d4d3c8: ASoC: free jack GPIOs before the sound card is freed] introduced snd_soc_card remove callbacks to a few drivers, but they are implemented with a wrong argument type. The callback should receive snd_soc_card pointer instead of snd_soc_pcm_runtime. Fixes: e1d4d3c854f2 ('ASoC: free jack GPIOs before the sound card is freed') Acked-by: Mark Brown <broonie@linaro.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ASoC: free jack GPIOs before the sound card is freedStephen Warren2014-06-031-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the same change as commit fb6b8e71448a "ASoC: tegra: free jack GPIOs before the sound card is freed", but applied to all other ASoC machine drivers where code inspection indicates the same problem exists. That commit's description is: ========== snd_soc_jack_add_gpios() schedules a work queue item to poll the GPIO to generate an initial jack status report. If sound card initialization fails, that work item needs to be cancelled, so it doesn't run after the card has been freed. Specifically, freeing the card calls snd_jack_dev_free() which calls snd_jack_dev_disconnect() which sets jack->input_dev = NULL, and input_dev is used by snd_jack_report(), which is called from the work queue item. snd_soc_jack_free_gpios() cancels the work item. The Tegra ASoC machine drivers do call this function in the platform driver remove() callback. However, this happens after the sound card is freed, at least when the card is freed due to errors late during snd_soc_instantiate_card(). This leaves a window where the work item can execute after the card is freed. In next-20140522, sound card initialization does fail for unrelated reasons, and hits the problem described above. To solve this, fix the Tegra ASoC machine drivers to clean up the Jack GPIOs during the snd_soc_card's .remove() callback, which is executed before the overall card object is freed. also, guard the cleanup call based on whether we actually setup up the GPIOs in the first place. Ideally, we'd do the cleanup in a struct snd_soc_dai_link .fini/remove function to match where the GPIOs get set up. However, there is no such callback. ========== Note that I have not even compile-tested this in most cases, since most of the drivers rely on specific mach-* support I don't have enabled, and don't support COMPILE_TEST. Testing by the relevant board maintainers would be useful. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| |
| \
*-. \ Merge remote-tracking branches 'asoc/fix/pxa' and 'asoc/fix/tlv320aic3x' ↵Mark Brown2014-06-031-0/+1
|\ \ \ | | |/ | |/| | | | into asoc-linus
| * | ASoC: pxa: pxa-ssp: Terminate of match tableStephen Boyd2014-05-261-0/+1
| |/ | | | | | | | | | | | | | | | | Failure to terminate this match table can lead to boot failures depending on where the compiler places the match table. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Acked-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| |
| \
*-. \ Merge remote-tracking branches 'asoc/topic/nuc900', 'asoc/topic/omap', ↵Mark Brown2014-05-223-3/+3
|\ \ \ | | |/ | |/| | | | 'asoc/topic/pxa', 'asoc/topic/rcar', 'asoc/topic/rt5640' and 'asoc/topic/rt5645' into asoc-next
| | * ASoC: pxa: remove mach header dependencyArnd Bergmann2014-05-202-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we are moving the mmp platform towards multiplatform support, we have to stop including platform header files. This changes the pxa-ssp sound driver file to no longer depend on mach/hardware.h and mach/dma.h. The code using the definitions from those headers is actually gone already, the only thing that was still being used was the pxa_dma_desc typedef, which we can easily work around by using the normal 'struct pxa_dma_desc' name. The pxa2xx-dma driver still uses this header, so we include it explicitly there, which is ok because that is only used on pxa, not on mmp. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Xia Kaixu <kaixu.xia@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
| | * ASoC: pxa: TTC DKB audio needs I2CArnd Bergmann2014-05-011-1/+1
| |/ | | | | | | | | | | | | | | | | The missing dependency can lead to build errors, so make it explicit in Kconfig. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Xia Kaixu <kaixu.xia@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: Remove needless snd_soc_dapm_enable_pin() from machine driver initsJarkko Nikula2014-05-194-18/+0
| | | | | | | | | | | | | | | | | | ALSA SoC core marks widgets as connected by default when they are initialized in snd_soc_dapm_new_control() so there is no need to call snd_soc_dapm_enable_pin() from machine driver init functions. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | ASoC: Remove needless snd_soc_dapm_sync() from machine driver initsJarkko Nikula2014-05-191-2/+0
|/ | | | | | | | | ALSA SoC core takes care of calling snd_soc_dapm_sync() at the end snd_soc_instantiate_card() so there is no need to call it from machine driver init functions. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* ASoC: pxa: tosa: Convert to table based DAPM and control setupLars-Peter Clausen2014-03-131-22/+13
| | | | | | | | | | Use table based setup to register the controls and DAPM widgets and routes. This on one hand makes the code a bit shorter and cleaner and on the other hand the board level DAPM elements get registered in the card's DAPM context rather than in the CODEC's DAPM context. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
* ASoC: pxa: magician: Convert to table based DAPM and control setupLars-Peter Clausen2014-03-131-22/+12
| | | | | | | | | | Use table based setup to register the controls and DAPM widgets and routes. This on one hand makes the code a bit shorter and cleaner and on the other hand the board level DAPM elements get registered in the card's DAPM context rather than in the CODEC's DAPM context. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
OpenPOWER on IntegriCloud