summaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)AuthorFilesLines
2013-11-04ASoC: Add pinctrl PM to components of active DAIsNicolin Chen2-0/+44
It's quite popular that more drivers are using pinctrl PM, for example: (Documentation/devicetree/bindings/arm/primecell.txt). Just like what runtime PM does, it would deactivate and activate pin group depending on whether it's being used or not. And this pinctrl PM might be also beneficial to cpu dai drivers because they might have actual pinctrl so as to sleep their pins and wake them up as needed. To achieve this goal, this patch sets pins to the default state during resume or startup; While during suspend and shutdown, it would set pins to the sleep state. As pinctrl PM would return zero if there is no such pinctrl sleep state settings, this patch would not break current ASoC subsystem directly. [ However, there is still an exception that the patch can not handle, that is, when cpu dai driver does not have pinctrl property but another device has it. (The AUDMUX <-> SSI on Freescale i.MX6 series for example. SSI as a cpu dai doesn't contain pinctrl property while AUDMUX, an Audio Multiplexer, has it). In this case, this kind of cpu dai driver needs to find a way to obtain the pinctrl property as its own, by moving property from AUDMUX to SSI, or creating a pins link/dependency between these two devices, or using a more decent way after we figure it out. ] Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-04ASoC: fsl: fsl_spdif: No need to check the return value of ↵Fabio Estevam1-5/+0
platform_get_resource() When using devm_ioremap_resource(), we do not need to check the return value of platform_get_resource(), so just remove it. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-04ASoC: wm_adsp: Interpret ADSP memory region lengths as 32 bit wordsNariman Poushin1-0/+5
Pad the ADSP word (3 bytes) to 4 bytes in the kernel and calculate lengths based on padded ADSP words instead of treating them as bytes Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com> Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
2013-11-04ALSA: hda - rename function not_share_unassigned_cvt()Mengdong Lin1-2/+11
The function name not_share_unassigned_cvt() is opposite to what it does. This patch renames it to intel_not_share_assigned_cvt(), and addes comments to explain why some Intel display codecs need this workaround. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-11-04ALSA: hda - hdmi: Disallow unsupported 2ch remapping on NVIDIA codecsAnssi Hannula1-23/+63
NVIDIA HDMI codecs do not seem to follow the Audio Sample Packet (ASP) channel mapping (as set by verb F32h per HDA specification 7.3.3.41) when playing back 2-channel audio (CEA CA 0x00). Basically this means that specifying swapped channels for stereo audio (FR,FL) does not take effect, and e.g. this command plays back on the wrong channel: speaker-test -c2 -Dhdmi:CARD=NVidia,DEV=0 -m FR,FL -s1 Multichannel audio is not affected. This issue has been confirmed to exist on codec 0x10de0015 by me and on 0x10de0040 by Juho Teperi. Disable 2ch FL/FR channel swapping on all NVIDIA HDMI codecs that use the standard HDA channel mapping system. Since this is a very minor functionality loss, we err on the side of disabling it for newer codecs as well until any future testing confirms that this issue has been fixed. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi> Helped-by: Juho Teperi <juho.teperi@iki.fi> Cc: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-11-04Merge branch 'for-linus' into for-nextTakashi Iwai1-0/+4
2013-11-04Merge tag 'asoc-v3.13-2' of ↵Takashi Iwai21-114/+195
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Final updates for v3.13 A few final updates for v3.13, all driver updates apart from some DPCM and Coverity fixes which should have minor impact on practical systems.
2013-11-04Merge remote-tracking branch 'asoc/topic/wm8996' into asoc-nextMark Brown1-0/+2
2013-11-04Merge remote-tracking branch 'asoc/topic/wm8962' into asoc-nextMark Brown1-7/+15
2013-11-04Merge remote-tracking branch 'asoc/topic/wm0010' into asoc-nextMark Brown1-4/+4
2013-11-04Merge remote-tracking branch 'asoc/topic/samsung' into asoc-nextMark Brown1-1/+1
2013-11-04Merge remote-tracking branch 'asoc/topic/rt5640' into asoc-nextMark Brown1-3/+4
2013-11-04Merge remote-tracking branch 'asoc/topic/rcar' into asoc-nextMark Brown1-11/+20
2013-11-04Merge remote-tracking branch 'asoc/topic/ml26124' into asoc-nextMark Brown1-0/+2
2013-11-04Merge remote-tracking branch 'asoc/topic/kirkwood' into asoc-nextMark Brown1-1/+1
2013-11-04Merge remote-tracking branch 'asoc/topic/fsl' into asoc-nextMark Brown2-7/+12
2013-11-04Merge remote-tracking branch 'asoc/topic/dma' into asoc-nextMark Brown1-1/+1
2013-11-04Merge remote-tracking branch 'asoc/topic/cs42l52' into asoc-nextMark Brown2-40/+55
2013-11-04Merge remote-tracking branch 'asoc/topic/core' into asoc-nextMark Brown2-24/+33
2013-11-04Merge remote-tracking branch 'asoc/topic/arizona' into asoc-nextMark Brown1-0/+12
2013-11-04Merge remote-tracking branch 'asoc/topic/adsp' into asoc-nextMark Brown1-7/+20
2013-11-04Merge remote-tracking branch 'asoc/topic/ab8500' into asoc-nextMark Brown1-6/+8
2013-11-04Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linusMark Brown1-0/+1
2013-11-04Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linusMark Brown1-1/+3
2013-11-04Merge remote-tracking branch 'asoc/fix/ak4642' into asoc-linusMark Brown1-1/+1
2013-11-01ASoC: wm8962: Add EQ coefficient supportRichard Fitzgerald1-0/+3
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-01ASoC: wm8962: Add ALC coefficient supportRichard Fitzgerald1-0/+5
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-01ASoC: wm_adsp: Print out the firmware versionDimitris Papastamos1-0/+1
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-01ASoC: wm_adsp: Remove and free algorithm regions for ADSP1Dimitris Papastamos1-0/+9
Do it in a similar fashion as we do for ADSP2. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-01ASoC: wm_adsp: Add debug info on get()/put() transfersDimitris Papastamos1-0/+2
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-01ASoC: wm_adsp: Release firmware on memory allocation failureDimitris Papastamos1-1/+2
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-01ASoC: wm_adsp: Print error when regmap reads/writes failDimitris Papastamos1-6/+6
Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-01ALSA: hda - not choose assigned converters for unused pins of ValleyviewMengdong Lin1-3/+4
For Valleyview display codec, if an unused pin chooses an assgined converter selected by a used pin, playback on the unused pin can also give sound to the output device of the used pin. It's because data flows from the same convertor to the display port of the used pin. This issue is same as Haswell. So this patch avoids using assinged convertors for unused pins. The related function haswell_config_cvts() is renamed for code reuse. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-11-01ASoC: ak4642: prevent un-necessary changes to SG_SL1Phil Edworthy1-1/+1
If you record the sound during playback, the playback sound becomes silent. Modify so that the codec driver does not clear SG_SL1::DACL bit which is controlled under widget Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
2013-10-31ASoC: dpcm: improve robustnessRussell King - ARM Linux1-1/+8
Avoid oopsing if there is no backend stream associated with a front end stream. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-31ASoC: pcm: Check for ops before deferencing themMark Brown1-21/+22
Ensure that we always check that an ops structure is present before we try to use it, improving the robustness of the system. Reported-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-31ASoC: Use strlcpy() for copying in snd_soc_info_enum_double()Takashi Iwai1-2/+3
The provided texts aren't guaranteed to be in the fixed size. Spotted by coverity CID 139318. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-31ALSA: fix oops in snd_pcm_info() caused by ASoC DPCMRussell King1-0/+4
Unable to handle kernel NULL pointer dereference at virtual address 00000008 pgd = d5300000 [00000008] *pgd=0d265831, *pte=00000000, *ppte=00000000 Internal error: Oops: 17 [#1] PREEMPT ARM CPU: 0 PID: 2295 Comm: vlc Not tainted 3.11.0+ #755 task: dee74800 ti: e213c000 task.ti: e213c000 PC is at snd_pcm_info+0xc8/0xd8 LR is at 0x30232065 pc : [<c031b52c>] lr : [<30232065>] psr: a0070013 sp : e213dea8 ip : d81cb0d0 fp : c05f7678 r10: c05f7770 r9 : fffffdfd r8 : 00000000 r7 : d8a968a8 r6 : d8a96800 r5 : d8a96200 r4 : d81cb000 r3 : 00000000 r2 : d81cb000 r1 : 00000001 r0 : d8a96200 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c5387d Table: 15300019 DAC: 00000015 Process vlc (pid: 2295, stack limit = 0xe213c248) [<c031b52c>] (snd_pcm_info) from [<c031b570>] (snd_pcm_info_user+0x34/0x9c) [<c031b570>] (snd_pcm_info_user) from [<c03164a4>] (snd_pcm_control_ioctl+0x274/0x280) [<c03164a4>] (snd_pcm_control_ioctl) from [<c0311458>] (snd_ctl_ioctl+0xc0/0x55c) [<c0311458>] (snd_ctl_ioctl) from [<c00eca84>] (do_vfs_ioctl+0x80/0x31c) [<c00eca84>] (do_vfs_ioctl) from [<c00ecd5c>] (SyS_ioctl+0x3c/0x60) [<c00ecd5c>] (SyS_ioctl) from [<c000e500>] (ret_fast_syscall+0x0/0x48) Code: e1a00005 e59530dc e3a01001 e1a02004 (e5933008) ---[ end trace cb3d9bdb8dfefb3c ]--- This is provoked when the ASoC front end is open along with its backend, (which causes the backend to have a runtime assigned to it) and then the SNDRV_CTL_IOCTL_PCM_INFO is requested for the (visible) backend device. Resolve this by ensuring that ASoC internal backend devices are not visible to userspace, just as the commentry for snd_pcm_new_internal() says it should be. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Mark Brown <broonie@linaro.org> Cc: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-10-31ASoC: rcar: remove original filter from rsnd_dma_init()Kuninori Morimoto1-11/+20
Remove original filter from rsnd_dma_init(), and use SH-DMA suitable filter. This new style can be used from Device Tree. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-31DMA-API: sound: fix dma mask handling in a lot of driversRussell King16-104/+61
This code sequence is unsafe in modules: static u64 mask = DMA_BIT_MASK(something); ... if (!dev->dma_mask) dev->dma_mask = &mask; as if a module is reloaded, the mask will be pointing at the original module's mask address, and this can lead to oopses. Moreover, they all follow this with: if (!dev->coherent_dma_mask) dev->coherent_dma_mask = mask; where 'mask' is the same value as the statically defined mask, and this bypasses the architecture's check on whether the DMA mask is possible. Fix these issues by using the new dma_coerce_coherent_and_mask() function. Acked-by: Mark Brown <broonie@linaro.org> Acked-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-10-31ASoC: ml26124: Fix negative array index readTakashi Iwai1-0/+2
get_coeff() may return an error. Spotted by coverity CID 703394. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-30Merge tag 'asoc-fix-v3.12-rc7' of ↵Takashi Iwai2-1/+4
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v3.12 A few of the Coverity fixes from Takashi, one of which (the wm_hubs one) is particularly noticable.
2013-10-30Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linusMark Brown1-0/+1
2013-10-30ASoC: rt5640: Fix ignored error checksTakashi Iwai1-3/+4
The negative error value returned from get_sdp_info() is ignored because it's assigned to unsigned variables. Spotted by coverity CIDs 1042657, 1042658. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-30ASoC: wm8996: Fix negative array index readTakashi Iwai1-0/+2
Spotted by coverity CID 146355. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-30ALSA: hda - Add extra chmap for 2.1 outputs on ASUS laptopsTakashi Iwai1-2/+28
ASUS N56VZ and N76VZ laptops have a bass speaker but its output comes only from the right channel. This patch adds the extra chmap specific to these models. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=846531 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-10-30Merge branch 'for-linus' into for-nextTakashi Iwai1-0/+1
2013-10-30ASoC: wm0010: Fix possible out-of-bounds array readTakashi Iwai1-4/+4
Spotted by coverity CID 744701. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-10-30ASoC: wm_hubs: Add missing break in hp_supply_event()Takashi Iwai1-0/+1
Spotted by coverity CID 115170. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
2013-10-30ASoC: ab8500: Fix invalid cast to long pointerTakashi Iwai1-6/+6
Don't cast to long pointers blindly just for using find_first_bit() and co. This is certainly not portable at all. Reimplement the code with ffs() and fls() instead. This is a slight optimization, too. Spotted by coverity CID 1056484 and 1056485. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@linaro.org>