summaryrefslogtreecommitdiff
path: root/sound/soc
AgeCommit message (Collapse)AuthorFilesLines
2012-06-29ASoC: tlv320aic3x: Fix codec pll configure bugHebbar, Gururaja2-3/+2
In sound/soc/codecs/tlv320aic3x.c data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG); snd_soc_write(codec, AIC3X_PLL_PROGA_REG, data | (pll_p << PLLP_SHIFT)); In the above code, pll-p value is OR'ed with previous value without clearing it. Bug is not seen if pll-p value doesn't change across Sampling frequency. However on some platforms (like AM335x EVM-SK), pll-p may have different values across different sampling frequencies. In such case, above code configures the pll with a wrong value. Because of this bug, when a audio stream is played with pll value different from previous stream, audio is heard as differently(like its stretched). Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
2012-06-29ASoC: wm2200: Add missing BCLK rateMark Brown1-0/+1
Without this very high BCLKs will be configured incorrectly. Reported-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
2012-06-25ASoC: wm8994: remove duplicate codeJaroslav Kysela1-3/+0
It seems that the code duplication was added at a merge operation. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-12ASoC: tegra+wm8903: turn of mic detect when card is removedStephen Warren1-0/+13
If mic detect is left enabled and the WM8903 detects a status change, the WM8903 driver will make a callback against the free()d jack, which will cause a crash. This problem can be triggered by fully initializing an audio card, then removing and re-inserting the machine driver module. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-11ASoC: wm8996: Mark the CODEC as cache only when powering off on bootMark Brown1-2/+1
Otherwise we might try to write to a powered off device. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-11ASoC: wm8996: Move reset before the initial regulator disableMark Brown1-2/+2
If we don't have control over the LDO but do have control over the other regulators then we may end up trying to write to a powered off device. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-11ASoC: wm8996: Remove spurious regulator_bulk_free()Mark Brown1-1/+0
We're using demv_regulator_bulk_get() so don't need to manually free and this is in the CODEC driver not the I2C driver anyway. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-11ASoC: wm8904: Fix cache only managementMark Brown1-9/+4
We should be using the regmap API consistently for all the cache only configuration and we should be going cache only before we power down the supplies. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-11ASoC: wm8904: Fix GPIO and MICBIAS initialisation for regmap conversionMark Brown1-5/+8
We no longer have a flat ASoC cache so can't peer directly into the array any more but should instead use the register I/O functions to update the cache. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org (v3.4)
2012-06-11ASoC: fix pxa-ssp compiling issue under mach-mmpQiao Zhou1-27/+11
pxa-ssp.c uses API like cpu_is_pxa3xx(), cpu_is_pxa2xx(), which is defined under arch-pxa architecture, and drivers under mach-mmp can't find it. so just use ssp->type to replace that API. Signed-off-by: Qiao Zhou <zhouqiao@marvell.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-08ASoC: tegra: add MODULE_DEVICE_TABLE to tegra30_ahubStephen Warren1-0/+1
This allows the module to automatically load when instantiated from device tree. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-08ASoC: wm2000: Always use a 4s timeout for the firmwareMark Brown1-38/+21
Rather than having varying timeouts depending on the transition always use a 4s timeout. This provides better diagnostics for clocking errors and ensures compatibility with current calibration firmwares. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-08ASoC: dapm: Fix input list to use source widgetsLiam Girdwood1-1/+1
We should only add source widgets to the input list. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-08ASoC: dpcm: Fix dpcm_get_be() to check that DAI is BELiam Girdwood1-0/+6
Make sure that the dpcm_get_be() only returns BE DAI links. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-05ASoC: wm8994: Apply volume updates with clocks enabledMark Brown1-35/+58
Volume updates may not be acted upon if there is no clock applied when the volume update is written. Ensure this doesn't happen by writing out registers with volume updates after we enable each of the clocks. There are more registers updated than before as previously we were relying on wm_hubs to set those for controls it manages. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
2012-06-05ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variantsMark Brown1-4/+8
Ensure that all the actions get taken at appropriate times by calling the _PRE and _POST events for the aifNclk_ev functions explicitly. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
2012-06-04ASoC: imx-audmux: add pinctrl supportRichard Zhao1-0/+8
Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Acked-by: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-04ASoC: dapm: Fix connected widget capture path query.Liam Girdwood1-1/+1
Make sure we check the correct path for capture. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-02Merge tag 'sound-3.5' of ↵Linus Torvalds2-12/+19
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Just a few trivial driver-specific fixes." * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hdspm - Work around broken DDS value on PCI RME MADI ALSA: usb-audio: fix rate_list memory leak ASoC: fsi: bugfix: ensure dma is terminated ASoC: fsi: bugfix: correct dma area ASoC: fsi: bugfix: enable master clock control on DMA stream ASoC: imx-ssi: Use clk_prepare_enable/clk_disable_unprepare
2012-05-31Merge tag 'asoc-3.5' of ↵Takashi Iwai2-12/+19
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: A few bug fixes for the merge window Small driver-specific updates.
2012-05-30ASoC: fsi: bugfix: ensure dma is terminatedKuninori Morimoto1-0/+2
FSI DMAEngine has to be stopped certainly at the start/stop time. Without this patch, it will include noise on playback. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-05-30ASoC: fsi: bugfix: correct dma areaKuninori Morimoto1-9/+9
FSI driver is using dma_sync_single_xxx(), but the dma area was not correct. This patch fix it up. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-05-30ASoC: fsi: bugfix: enable master clock control on DMA streamKuninori Morimoto1-0/+5
DMA stream handler didn't care about master clock. This patch fixes it up. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-05-28ASoC: imx-ssi: Use clk_prepare_enable/clk_disable_unprepareFabio Estevam1-3/+3
Fix the following kernel crash: ------------[ cut here ]------------ WARNING: at drivers/clk/clk.c:508 __clk_enable+0x9c/0xa8() Modules linked in: Backtrace: [<80011ef4>] (dump_backtrace+0x0/0x10c) from [<803fd48c>] (dump_stack+0x18/0x1c) r7:00000009 r6:000001fc r5:803002ac r4:00000000 [<803fd474>] (dump_stack+0x0/0x1c) from [<8002003c>] (warn_slowpath_common+0x54/0x6c) [<8001ffe8>] (warn_slowpath_common+0x0/0x6c) from [<80020078>] (warn_slowpath_null+0x24/0x2c) r9:00000090 r8:8600e2c0 r7:8605c808 r6:8605c800 r5:8605d780 r4:8600e2c0 [<80020054>] (warn_slowpath_null+0x0/0x2c) from [<803002ac>] (__clk_enable+0x9c/0xa8) [<80300210>] (__clk_enable+0x0/0xa8) from [<803002d0>] (clk_enable+0x18/0x30) r5:8605d780 r4:80000013 [<803002b8>] (clk_enable+0x0/0x30) from [<803247c4>] (imx_ssi_probe+0xa0/0x4f4) r5:8605d780 r4:86174180 [<80324724>] (imx_ssi_probe+0x0/0x4f4) from [<8022b0fc>] (platform_drv_probe+0x20/0x24) [<8022b0dc>] (platform_drv_probe+0x0/0x24) from [<80229c40>] (driver_probe_device+0x80/0x1f0) [<80229bc0>] (driver_probe_device+0x0/0x1f0) from [<80229e44>] (__driver_attach+0x94/0x98) r9:00000090 r8:805b7800 r7:00000000 r6:8605c83c r5:805b1b44 r4:8605c808 [<80229db0>] (__driver_attach+0x0/0x98) from [<8022856c>] (bus_for_each_dev+0x68/0x94) r7:00000000 r6:80229db0 r5:86033eb0 r4:805b1b44 [<80228504>] (bus_for_each_dev+0x0/0x94) from [<80229aa0>] (driver_attach+0x20/0x28) r7:00000000 r6:86174100 r5:8059f6d0 r4:805b1b44 [<80229a80>] (driver_attach+0x0/0x28) from [<80228d50>] (bus_add_driver+0x18c/0x268) [<80228bc4>] (bus_add_driver+0x0/0x268) from [<8022a474>] (driver_register+0x80/0x134) [<8022a3f4>] (driver_register+0x0/0x134) from [<8022b4a4>] (platform_driver_register+0x4c/0x60) r7:00000000 r6:805b7800 r5:00000018 r4:86032000 [<8022b458>] (platform_driver_register+0x0/0x60) from [<80556890>] (imx_ssi_driver_init+0x14/0x1c) [<8055687c>] (imx_ssi_driver_init+0x0/0x1c) from [<8000868c>] (do_one_initcall+0x40/0x194) [<8000864c>] (do_one_initcall+0x0/0x194) from [<8052f3b0>] (kernel_init+0x114/0x1f0) [<8052f29c>] (kernel_init+0x0/0x1f0) from [<8002445c>] (do_exit+0x0/0x788) ---[ end trace d4aa739205917dbb ]--- asoc: mc13783-hifi <-> imx-ssi.0 mapping ok Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-05-26Merge tag 'clock' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-socLinus Torvalds2-0/+14
Pull arm-soc clock driver changes from Olof Johansson: "The new clock subsystem was merged in linux-3.4 without any users, this now moves the first three platforms over to it: imx, mxs and spear. The series also contains the changes for the clock subsystem itself, since Mike preferred to have it together with the platforms that require these changes, in order to avoid interdependencies and conflicts." Fix up trivial conflicts in arch/arm/mach-kirkwood/common.c (code removed in one branch, added OF support in another) and drivers/dma/imx-sdma.c (independent changes next to each other). * tag 'clock' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (97 commits) clk: Fix CLK_SET_RATE_GATE flag validation in clk_set_rate(). clk: Provide dummy clk_unregister() SPEAr: Update defconfigs SPEAr: Add SMI NOR partition info in dts files SPEAr: Switch to common clock framework SPEAr: Call clk_prepare() before calling clk_enable SPEAr: clk: Add General Purpose Timer Synthesizer clock SPEAr: clk: Add Fractional Synthesizer clock SPEAr: clk: Add Auxiliary Synthesizer clock SPEAr: clk: Add VCO-PLL Synthesizer clock SPEAr: Add DT bindings for SPEAr's timer ARM i.MX: remove now unused clock files ARM: i.MX6: implement clocks using common clock framework ARM i.MX35: implement clocks using common clock framework ARM i.MX5: implement clocks using common clock framework ARM: Kirkwood: Replace clock gating ARM: Orion: Audio: Add clk/clkdev support ARM: Orion: PCIE: Add support for clk ARM: Orion: XOR: Add support for clk ARM: Orion: CESA: Add support for clk ...
2012-05-25Merge tag 'sound-3.5' of ↵Linus Torvalds12-224/+489
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound update from Takashi Iwai: "This is the second updates for 3.5-rc1. It's mainly for OMAP4 HDMI updates and the device tree updates for OMAP, in addition to a couple of PCM accuray improvement and Realtek ALC269VD codec support." * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (21 commits) ALSA: hda/realtek - Add new codec support for ALC269VD ALSA: core: group read of pointer, tstamp and jiffies ASoC: OMAP: HDMI: Rename sound card source file ASoC: OMAP: HDMI: Make sound card naming more generic ASoC: OMAP: HDMI: Make build config options more generic ASoC: OMAP: HDMI: Expand capabilities of the HDMI DAI ASoC: OMAP: HDMI: Improve how the display state is verified ASoC: OMAP: HDMI: Expand configuration of hw_params ASoC: OMAP: HDMI: Use the DSS audio interface ASoC: OMAP: HDMI: Create a structure for private data of the CPU DAI ASoC: OMAP: HDMI: Change error values in HDMI CPU DAI ASoC: OMAP: HDMI: Update the platform device names ASoC: omap-abe-twl6040: Introduce driver data for runtime parameters ASoC: omap-abe-twl6040: Move Digital Mic widget into dapm table ASoC: omap-abe-twl6040: Keep only one snd_soc_dai_link structure ASoC: omap-dmic: Add device tree bindings ASoC: omap-mcpdm: Add device tree bindings ASoC: omap-mcbsp: buffer size constraint only applies to playback stream ASoC: omap-mcbsp: Use the common interrupt line if supported by the SoC ASoC: omap-mcbsp: Remove unused FRAME dma_op_mode ...
2012-05-24Merge tag 'sound-3.5' of ↵Linus Torvalds158-4930/+17406
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound updates from Takashi Iwai: "This is the first big chunk for 3.5 merges of sound stuff. There are a few big changes in different areas. First off, the streaming logic of USB-audio endpoints has been largely rewritten for the better support of "implicit feedback". If anything about USB got broken, this change has to be checked. For HD-audio, the resume procedure was changed; instead of delaying the resume of the hardware until the first use, now waking up immediately at resume. This is for buggy BIOS. For ASoC, dynamic PCM support and the improved support for digital links between off-SoC devices are major framework changes. Some highlights are below: * HD-audio - Avoid accesses of invalid pin-control bits that may stall the codec - V-ref setup cleanups - Fix the races in power-saving code - Fix the races in codec cache hashes and connection lists - Split some common codes for BIOS auto-parser to hda_auto_parser.c - Changed the PM resume code to wake up immediately for buggy BIOS - Creative SoundCore3D support - Add Conexant CX20751/2/3/4 codec support * ASoC - Dynamic PCM support, allowing support for SoCs with internal routing through components with tight sequencing and formatting constraints within their internal paths or where there are multiple components connected with CPU managed DMA controllers inside the SoC. - Greatly improved support for direct digital links between off-SoC devices, providing a much simpler way of connecting things like digital basebands to CODECs. - Much more fine grained and robust locking, cleaning up some of the confusion that crept in with multi-component. - CPU support for nVidia Tegra 30 I2S and audio hub controllers and ST-Ericsson MSP I2S controolers - New CODEC drivers for Cirrus CS42L52, LAPIS Semiconductor ML26124, Texas Instruments LM49453. - Some regmap changes needed by the Tegra I2S driver. - mc13783 audio support. * Misc - Rewrite with module_pci_driver() - Xonar DGX support for snd-oxygen - Improvement of packet handling in snd-firewire driver - New USB-endpoint streaming logic - Enhanced M-audio FTU quirks and relevant cleanups - Increment the support of OSS devices to 256 - snd-aloop accuracy improvement There are a few more pending changes for 3.5, but they will be sent slightly later as partly depending on the changes of DRM." Fix up conflicts in regmap (due to duplicate patches, with some further updates then having already come in from the regmap tree). Also some fairly trivial context conflicts in the imx and mcx soc drivers. * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (280 commits) ALSA: snd-usb: fix stream info output in /proc ALSA: pcm - Add proper state checks to snd_pcm_drain() ALSA: sh: Fix up namespace collision in sh_dac_audio. ALSA: hda/realtek - Fix unused variable compile warning ASoC: sh: fsi: enable chip specific data transfer mode ASoC: sh: fsi: call fsi_hw_startup/shutdown from fsi_dai_trigger() ASoC: sh: fsi: use same format for IN/OUT ASoC: sh: fsi: add fsi_version() and removed meaningless version check ASoC: sh: fsi: use register field macro name on IN/OUT_DMAC ASoC: tegra: Add machine driver for WM8753 codec ALSA: hda - Fix possible races of accesses to connection list array ASoC: OMAP: HDMI: Introduce codec ARM: mx31_3ds: Add sound support ASoC: imx-mc13783 cleanup mx31moboard: Add sound support ASoC: mc13783 codec cleanups ASoC: add imx-mc13783 sound support ASoC: Add mc13783 codec mfd: mc13xxx: add codec platform data ASoC: don't flip master of DT-instantiated DAI links ...
2012-05-23Merge branch 'for-linus' of ↵Linus Torvalds1-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial Pull trivial updates from Jiri Kosina: "As usual, it's mostly typo fixes, redundant code elimination and some documentation updates." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (57 commits) edac, mips: don't change code that has been removed in edac/mips tree xtensa: Change mail addresses of Hannes Weiner and Oskar Schirmer lib: Change mail address of Oskar Schirmer net: Change mail address of Oskar Schirmer arm/m68k: Change mail address of Sebastian Hess i2c: Change mail address of Oskar Schirmer net: Fix tcp_build_and_update_options comment in struct tcp_sock atomic64_32.h: fix parameter naming mismatch Kconfig: replace "--- help ---" with "---help---" c2port: fix bogus Kconfig "default no" edac: Fix spelling errors. qla1280: Remove redundant NULL check before release_firmware() call remoteproc: remove redundant NULL check before release_firmware() qla2xxx: Remove redundant NULL check before release_firmware() call. aic94xx: Get rid of redundant NULL check before release_firmware() call tehuti: delete redundant NULL check before release_firmware() qlogic: get rid of a redundant test for NULL before call to release_firmware() bna: remove redundant NULL test before release_firmware() tg3: remove redundant NULL test before release_firmware() call typhoon: get rid of redundant conditional before all to release_firmware() ...
2012-05-23Merge branch 'for-3.5' of ↵Takashi Iwai12-224/+489
git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc into topic/asoc
2012-05-22Merge tag 'pinctrl' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-socLinus Torvalds1-0/+8
Pull arm soc-specific pinctrl changes from Olof Johansson: "With this, five platforms are moving to the relatively new pinctrl subsystem for their pin management, replacing the older soc specific in-kernel interfaces with common code. There is quite a bit of net addition of code for each platform being added to the pinctrl subsystem. But the payback comes later when adding new boards can be done by only providing new device trees instead." Fix up trivial conflicts in arch/arm/mach-ux500/{Makefile,board-mop500.c} * tag 'pinctrl' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (61 commits) mtd: nand: gpmi: fix compile error caused by pinctrl call ARM: PRIMA2: select PINCTRL and PINCTRL_SIRF in Kconfig ARM: nomadik: enable PINCTRL_NOMADIK where needed ARM: mxs: enable pinctrl support video: mxsfb: adopt pinctrl support ASoC: mxs-saif: adopt pinctrl support i2c: mxs: adopt pinctrl support mtd: nand: gpmi: adopt pinctrl support mmc: mxs-mmc: adopt pinctrl support serial: mxs-auart: adopt pinctrl support serial: amba-pl011: adopt pinctrl support spi/imx: adopt pinctrl support i2c: imx: adopt pinctrl support can: flexcan: adopt pinctrl support net: fec: adopt pinctrl support ARM: ux500: switch MSP to using pinctrl for pins ARM: ux500: alter MSP registration to return a device pointer ARM: ux500: switch to using pinctrl for uart0 ARM: ux500: delete custom pin control system ARM: ux500: switch over to Nomadik pinctrl driver ...
2012-05-22ASoC: OMAP: HDMI: Rename sound card source fileRicardo Neri2-2/+2
Rename sound card driver source file to encompass not only OMAP4 but future OMAP versions that feature HDMI. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Make sound card naming more genericRicardo Neri1-14/+14
Rename all the relevant structures, variables and functions to not make specific reference to OMAP4. This is to make the driver encompass future OMAP versions that feature HDMI and not only OMAP4. These changes are only in naming. There are not functional changes. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Make build config options more genericRicardo Neri2-4/+4
Make Kconfig and Makefile more generic to encompass not only OMAP4 but other OMAP processors featuring HDMI. Also, relax the dependency list to depend only on any OMAP processor supporting OMAP2_DSS and OMAP4_DSS_HDMI. As HDMI support for future OMAP versions is added, the dependency list must change accordingly. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Expand capabilities of the HDMI DAIRicardo Neri2-2/+4
According to the HDMI specification, a source is permitted to transmit L-PCM audio in the following sample rates: 32kHz, 44.1kHz, 48kHz, 88.2kHz, 96kHz, 176.4kHz or 192kHz. It also supports up to 8 audio channels. The sink may not necessarily support all these sample rates and channels. However, as this CPU DAI describes the HDMI source, it makes sense to include them. The limitation of capabilities as supported by the sink should be done in the ASoC HDMI codec. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Improve how the display state is verifiedRicardo Neri2-35/+8
Before starting to play audio, we need to make sure that the display is active and the current video mode supports audio. instead of using the overlay manager in the machine driver, we use the DSS audio interface's audio_supported function. As we already have a pointer to the correct dssdev, we do not have to look for it every time audio is to be played. Also, the CPU DAI startup function is called earlier than the card hw_param function. Hence and we can detect the state of the display earlier. While there, add a error message if the constraint cannot be applied. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> squash to improve err Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Expand configuration of hw_paramsRicardo Neri1-1/+115
Expand the configuration of the hw_params to include the IEC-60958 channel status word and the CEA-861 audio infoframe. The configuration of such structures depends on the snd_pcm_hw_params received. A omap_dss_audio is used to pass the configuration parameters to DSS. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Use the DSS audio interfaceRicardo Neri2-0/+78
Instead of accessing the HDMI IP directly, the CPU DAI driver takes advantage of the audio interface provided by the DSS device driver. The ASoC driver will link the DSS audio functionality with ALSA by calling the appropriate DSS device driver functions at the relevant moments. For this, three new DAI operations are added: trigger, prepare and shutdown operations. At the moment, it is assumed that only one HDMI display is available in the system, as it is the case in OMAP4. However, in the future, one DAI for each HDMI display should be provided. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Create a structure for private data of the CPU DAIRicardo Neri1-9/+19
Create a struct hdmi_priv to store the relevant data of the CPU DAI driver. As more data is added to the driver, having all the data in the same location eases its handling. At the moment, only the DMA configuration parameters are included in the structure. Also, the required memory is allocated using devm_kzalloc rather than using a static global variable. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Change error values in HDMI CPU DAIRicardo Neri1-2/+2
When getting the needed resources fails, return -ENODEV. This is more in line with other drivers do and it gives a more descriptive error. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: OMAP: HDMI: Update the platform device namesRicardo Neri2-6/+6
In order to utilize the new OMAP HDMI codec and the updated name of the device of the CPU DAI, update the names at the drivers accordingly. While there, also update the name of the machine driver to be more generic and encompass more OMAP processors featuring HDMI and not only OMAP4. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-abe-twl6040: Introduce driver data for runtime parametersPeter Ujfalusi1-4/+21
In preparation to Device Tree support. With DT booted kernel we can not rely on pdata which used to hold information needed for the driver at runtime. Use the card's driver data to hold these informations from now on. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-abe-twl6040: Move Digital Mic widget into dapm tablePeter Ujfalusi1-10/+3
The needed change in routing will be done runtime for the non twl6040 connected widgets, like the Digital microphone. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-abe-twl6040: Keep only one snd_soc_dai_link structurePeter Ujfalusi1-21/+9
There is no need to have two snd_soc_dai_link structure for the two setup the machine driver supports. We can just tell core to register only the first link if the DMIC link is not in use on the device. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-dmic: Add device tree bindingsPeter Ujfalusi1-0/+8
Device tree support for OMAP4+ dmic cpu dai driver. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-mcpdm: Add device tree bindingsPeter Ujfalusi1-0/+8
Device tree support for OMAP4+ McPDM cpu dai driver. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-mcbsp: buffer size constraint only applies to playback streamPeter Ujfalusi1-6/+8
In capture stream the buffer size does not need to be constrained to be bigger then the McBSP FIFO. In capture the FIFO content is taken out in period length burst, this enusres that the FIFO is not going to overflow. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-mcbsp: Use the common interrupt line if supported by the SoCPeter Ujfalusi2-25/+95
With the common irq the driver only needs to use one interrupt line, and it provides better debugging possibilites compared to the legacy TX/RX interrupt lines. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-mcbsp: Remove unused FRAME dma_op_modePeter Ujfalusi3-3/+1
The frame dma_op_mode has never been used, and it is just creating confusion for users/developers. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22ASoC: omap-mcbsp: Use DMA packet mode for non mono streams on OMAP3+Peter Ujfalusi1-13/+17
Take the DMA packet mode into use when the McBSP is configured in element dma_op_mode if the stream is not mono. In this way we transfer one sample from/to McBSP FIFO upon DMA request. This change only affects OMAP3+ versions, where the McBSP ports have FIFO. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-05-22Merge tag 'asoc-3.5' of ↵Takashi Iwai8-66/+470
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Last minute updates These are all new code, they've been in -next already so should be OK for merge this time round. I'd been planning to send a pull request today after they'd had a bit of exposure there to make sure breakage didn't propagate into your tree.