summaryrefslogtreecommitdiffstats
path: root/sound
AgeCommit message (Collapse)Author
2013-12-06ALSA: hda - Ignore small negative LPIB delay correctionTakashi Iwai
Sometimes the hardware reports LPIB being advanced than POSBUF. When this happens, the driver adjusts to a positive value by adding the buffer size. Then the driver detects it as an error (greater than the period size), and stops the LPIB delay account from this point on. When I took a close look at these conditions, the values shown are all very small numbers, and it'd be better to just ignore these values instead of discontinuing the LPIB delay correction. In this patch, the driver checks a negative delay value and ignores if it's a significantly small error. Currently the threshold is set to 64 frames, but could be smaller. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-06ALSA: hda - Add missing initialization of aamix pathsTakashi Iwai
The loopback mixing paths aren't initialized correctly at init callback. Mostly this is harmless as codecs usually set the mute state as default, but we still should make sure. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-06ALSA: hda - Allow capture-only configurationTakashi Iwai
We have blindly assumed that all valid configurations should have either analog or digital playback, but there can be capture-only configurations. The parser shouldn't escape in such a case. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-06ALSA: hda - skip depop delay before D3 for Haswell and Valleyview2 display codecMengdong Lin
This patch skips the default depop delay before D3 for Haswell (10 ms) and Valleyview2 (100 ms) display codec, to reduce codec suspend time. The analog part of display audio is implemented in the external display. Some displays have weak pop noise while others not when suspending, no matter there is the default delay or not. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-06ALSA: hda - Remove quirk for Dell Vostro 131David Henningsson
I've tested the old Dell Vostro 131 with the latest generic parser and it works just fine, and as a bonus we get better jack detection features in userspace. Therefore this quirk can be removed. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-06ALSA: hda - Clean up async codec PM using standard async infrastructureTakashi Iwai
This simplifies lots of codes indeed. Tested-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-05ALSA: usb-audio: fix uninitialized variable compile warningMikulas Patocka
Fix the following warning when optimizing for size with gcc-4.6.4: sound/usb/mixer_quirks.c:1514:6: warning: 'err' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-05ASoC: wm8962: Enable SYSCLK provisonally before fetching generated DSPCLK_DIVNicolin Chen
DSPCLK_DIV can be only generated correctly after enabling SYSCLK. But if the current bias_level hasn't reached SND_SOC_BIAS_ON, DAPM won't enable SYSCLK, which would cause the calculation result from DSPCLK_DIV invalid since bit DSPCLK_DIV will be finally turned to its true value after DAPM enables SYSCLK while the driver won't calculate it again for the current instance. In this circumstance, a playback which needs non-zero DSPCLK_DIV would be distorted due to unexpected clock frequency resulted from an invalid DSPCLK_DIV value. So this patch provisionally enables the SYSCLK to get a valid DSPCLK_DIV for calculation and then disables it afterward. Signed-off-by: Nicolin Chen <b42378@freescale.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-05ASoC: tegra: add tegra+MAX98090 machine driverStephen Warren
Initially, this binding and driver only describe/support playback to headphones and speakers, and capture from the external microphone, with GPIO-based jack detection for the headphone jack only. This driver is useful for the Venice2 board. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-05ALSA: hda - fix mic issues on Acer Aspire E-572Oleksij Rempel
This patch add quirk for Acer Aspire E-572: - fix external mic - limit mic boost for internal mic with maximal noise level of -24dB Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-05ASoC: imx-ssi: Check the return value from clk_prepare_enable()Fabio Estevam
clk_prepare_enable() may fail, so let's check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-04ASoC: adsp: Use async writes where possibleMark Brown
This will allow a marginal speed improvement when used with a bus that supports async I/O by reducing the amount of context thrashing between writes, allowing the bus to be more fully utilised. Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-04ALSA: hda - Fix silent output on MacBook Air 2,1Takashi Iwai
MacBook Air 2,1 has a fairly different pin assignment from its brother MBA 1,1, and yet another quirks are needed for pin 0x18 and 0x19, similarly like what iMac 9,1 requires, in order to make the sound working on it. Reported-and-tested-by: Bruno Prémont <bonbons@linux-vserver.org> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-04ASoC: sam9x5_wm8731: change to work in DSP A modeBo Shen
Change sam9x5 with wm8731 work in DSP A mode, this will fix the left/right channel swap issue. Signed-off-by: Bo Shen <voice.shen@atmel.com> Tested-by: Richard Genoud <richard.genoud@gmail.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-04ASoC: atmel_ssc_dai: add dai trigger opsBo Shen
According to the SSC specifiation, it should be enabled after DMA is enabled. So, add trigger operation to make sure the right sequence. Signed-off-by: Bo Shen <voice.shen@atmel.com> Tested-by: Richard Genoud <richard.genoud@gmail.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-04Merge remote-tracking branch 'asoc/topic/symmetry' into asoc-coreMark Brown
Conflicts (Trivial add/delete): sound/soc/soc-pcm.c
2013-12-04ASoC: rcar: use devm_clk_get() instead of clk_get()Kuninori Morimoto
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-04ASoC: soc-pcm: Use valid condition for snd_soc_dai_digital_mute() in hw_free()Nicolin Chen
The snd_soc_dai_digital_mute() here will be never executed because we only decrease codec->active in snd_soc_close(). Thus correct it. Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-04ASoC: soc-pcm: Drop the redundant snd_soc_dai_digital_mute() in soc_pcm_close()Nicolin Chen
This patch removed the redundant snd_soc_dai_digital_mute() in close() since it's better to mute in hw_free() which's slightly earlier and symmetrical for the case of reconfiguration: 'aplay 44k1.wav 48k.wav', for example, will be open()->hw_params()->prepare(unmute)->playi1ng->hw_free(mute)->hw_params()-> parepare(unmute)->playing->hw_free(mute)->close() Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-04Merge tag 'asoc-v3.13-rc2' of ↵Takashi Iwai
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v3.13 A smattering of fixes here, some core ones for the rate combination issues for things other than simple bitmasks, for readback of byte controls and for updating the power of value muxes plus a bunch of driver fixes of varying severity. The warning fix in the i.MX FIQ driver is fixing a warning introduced by a previous fix.
2013-12-04ALSA: hda - Fix missing ELD info when using jackpoll_ms parameterDavid Henningsson
In the case of using jackpoll_ms instead of unsol events, the jack was correctly detected, but ELD info was not refreshed on plug-in. And without ELD info, no proper restriction of pcm, which can in turn break sound output on some devices. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-04ALSA: hda/realtek - remove hp_automute_hook from alc283_fixup_chromebookKailang Yang
I forgot to remove the hp_automute_hook from alc283_fixup_chromebook. It doesn't need this for other chrome os machine. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-03Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/atmel', ↵Mark Brown
'asoc/fix/fsl', 'asoc/fix/kirkwood', 'asoc/fix/omap', 'asoc/fix/rcar', 'asoc/fix/wm8731' and 'asoc/fix/wm8990' into asoc-linus
2013-12-03Merge remote-tracking branch 'asoc/fix/core' into asoc-linusMark Brown
2013-12-03ASoC: jz4740: Use the generic dmaengine PCM driverLars-Peter Clausen
Now that there is a dmaengine driver for the jz4740 DMA core we can use the generic dmaengine PCM driver. This allows us to remove the custom jz4740-pcm code completely. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-03ASoC: jz4740-i2s: Use managed resourcesLars-Peter Clausen
Makes the code a bit shorter. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-03ALSA: AACI: Convert to modern PM opsUlf Hansson
Even if the CONFIG_PM explicity is undefined, let's convert to the modern PM ops. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-03ASoC: wm8731: fix dsp mode configurationBo Shen
According to WM8731 "PD, Rev 4.9 October 2012" datasheet, when it works in DSP mode A, LRP = 1, while works in DSP mode B, LRP = 0. So, fix LRP for DSP mode as the datesheet specification. Signed-off-by: Bo Shen <voice.shen@atmel.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
2013-12-03ASoC: ssm2602: Use core for applying symmetry constraintsLars-Peter Clausen
Let the core take care of applying sample rate and sample bits constraints instead of open-coding this in the driver. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-03Merge remote-tracking branch 'asoc/topic/symmetry' into asoc-ssm2602Mark Brown
2013-12-03ASoC: fsl_ssi: Implement symmetric_channels and symmetric_samplebitsNicolin Chen
Since we introduced symmetric_channels and symmetric_samplebits, we implement these two features to fsl_ssi so as to drop some no-more-needed code and make the driver neat and clean. Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-03Merge remote-tracking branch 'asoc/topic/symmetry' into asoc-fslMark Brown
2013-12-03ALSA: hda - fixup ALC262 to skip depop delay before D3 on Intel BayleyBayMengdong Lin
This patch sets a 0ms depop delay in fixup funtion 'alc_fixup_no_depop_delay'. And Realteck ALC262 applies this on Intel Baytrail BayleyBay platform to reduce codec suspend time. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Reviewed-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-03ALSA: hda/realtek - Independent of model for HPKailang Yang
Create single model for HP. The headset jack module was difference between other chrome book. It need to manual control Mic jack detect. Chrome OS loaded driver by models. Remove old assigned fixup table from ALC269 fixup list entry. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-03ALSA: hda - Fix headset mic input after muted internal mic (Dell/Realtek)David Henningsson
By trial and error, I found this patch could work around an issue where the headset mic would stop working if you switch between the internal mic and the headset mic, and the internal mic was muted. It still takes a second or two before the headset mic actually starts working, but still better than nothing. Information update from Kailang: The verb was ADC digital mute(bit 6 default 1). Switch internal mic and headset mic will run alc_headset_mode_default. The coef index 0x11 will set to 0x0041. Because headset mode was fixed type. It doesn't need to run alc_determine_headset_type. So, the value still keep 0x0041. ADC was muted. BugLink: https://bugs.launchpad.net/bugs/1256840 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ASoC: fsl_ssi: Add monaural audio support for non-ac97 interfaceNicolin Chen
The normal mode of SSI allows it to send/receive data to/from the first slot of each period. So we can use this normal mode to trick I2S signal by puting/getting data to/from the first slot only (the left channel) so as to support monaural audio playback and recording. Signed-off-by: Nicolin Chen <b42378@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-02ALSA: hda - Use always amps for auto-mute on AD1986A codecTakashi Iwai
It seems that AD1986A cannot manage the dynamic pin on/off for auto-muting, but rather gets confused. Since each output has own amp, let's use it instead. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971 Cc: <stable@vger.kernel.org> [v3.11+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ALSA: hda/analog - Handle inverted EAPD properly in vmaster hookTakashi Iwai
ad_vmaster_eapd_hook() needs to handle the inverted EAPD case properly, too. Otherwise the output gets broken on Lenovo N100 with AD1986A codec. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ALSA: hda - Another fixup for ASUS laptop with ALC660 codecTakashi Iwai
ASUS Z35HL laptop also needs the very same fix as the previous one that was applied to ASUS W7J. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66231 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ALSA: hda - Always do delayed probes for HD-audio devicesTakashi Iwai
HD-audio devices tend to take long time for finishing the whole probing procedure. In this patch, the time-consuming part of the probing procedure, the codec probe and the rest initializations, are moved in the work, so that they can be done asynchronously in parallel with probes of other devices. Since we already have this mechanism in the driver code for the firmware and i915 request_symbol() stuff, we just need to enable it always; the resultant patch even reduces more lines, which is an additional bonus. Credit goes to David Henningsson, who suggested this workaround. Reported-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ALSA: atmel: Fix possible array overflowTakashi Iwai
The static checker found a possible array overflow in atmel/abdac.c: static checker warning: "sound/atmel/abdac.c:373 set_sample_rates() error: buffer overflow 'dac->rates' 6 <= 6" This patch papers over the buggy point, by ensuring that dac->rates[] update not overflowing the actual array size. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ASoC: ak4642: Convert to module_i2c_driver()Mark Brown
The device does not support anything other than I2C (at least with the current driver) so save code. Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-02ASoC: simple-card: add Device Tree supportKuninori Morimoto
Support for loading the simple-card module via DeviceTree. It requests CPU/CODEC information. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-02Merge branch 'for-linus' into for-nextTakashi Iwai
2013-12-02ALSA: hda - Fix complete_all() timing in deferred probesTakashi Iwai
When the probe of snd-hda-intel driver is deferred due to f/w loading or the nested module loading, complete_all() should be also delayed until the initialization really finished. Otherwise, vga-switcheroo client would start switching before the actual init is done. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ALSA: hda - Fix bad EAPD setup for HP machines with AD1984ATakashi Iwai
It seems that EAPD on NID 0x16 is the only control over all outputs on HP machines with AD1984A while turning EAPD on NID 0x12 breaks the output. Thus we need to avoid fiddling EAPD on NID. As a quick workaround, just set own_eapd_ctrl flag for the wrong EAPD, then implement finer EAPD controls. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66321 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-12-02ASoC: fsl: imx-ssi: omit ssi counter to avoid harm in unbalanced situationOskar Schirmer
Unbalanced calls to imx_ssi_trigger() may result in endless SSI activity and thus provoke eternal sound. While on the first glance, the switch statement looks pretty symmetric, the SUSPEND/RESUME pair is not: the suspend case comes along snd_pcm_suspend_all(), which for fsl/imx-pcm-fiq is called only at snd_soc_suspend(), but the resume case originates straight from the SNDRV_PCM_IOCTL_RESUME. This way userland may provoke an unbalanced resume, which might cause the ssi->enabled counter to increase and never return to zero again, so eventually SSI_SCR_SSIEN is never disabled. As the information on whether to enable the SSI or not is contained in the two bits for TE/RE, we save all the software mirroring of hardware state here and simply use the hardware register itself to keep the state of whether someone is currently playing or capturing. This is essentially the same stuff as in sound/soc/fsl/imx-pcm-fiq.c which I send a patch for three days ago. Astonishing enough this highly fragile scheme is used twice in parallel to serve the very same control function, synchronously: Once out of sync you are lost until reboot. Note, that these fixes wont prevent state machine distortion on alsa level to cut sound or the like. It just makes sure we have a chance to synchronise again later on. Signed-off-by: Oskar Schirmer <oskar@scara.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-02ASoC: ak4642: Convert to direct regmap API usageMark Brown
This moves us towards being able to remove the ASoC level I/O code which duplicates regmap functionality. Currently the only difference between the supported devices in the driver is the regmap so we can replace the CODEC driver selections with regmap selection instead. Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-02ASoC: ak4642: Convert to table based control initMark Brown
Improves error handling and saves code. Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-02ASoC: core: fix devres parameter in devm_snd_soc_register_card()Shawn Guo
Since devm_card_release() expects parameter 'res' to be a pointer to struct snd_soc_card, devm_snd_soc_register_card() should really pass such a pointer rather than the one to struct device. This bug causes the kernel Oops below with imx-sgtl500 driver when we remove the module. It happens because with 'card' pointing to the wrong structure, card->num_rtd becomes 0 in function soc_remove_dai_links(). Consequently, soc_remove_link_components() and in turn soc_cleanup_codec[platform]_debugfs() will not be called on card removal. It results in that debugfs_card_root is being removed while its child entries debugfs_codec_root and debugfs_platform_root are still there, and thus the kernel Oops. Fix the bug by correcting the parameter 'res' to be the pointer to struct snd_soc_card. $ lsmod Module Size Used by snd_soc_imx_sgtl5000 3506 0 snd_soc_sgtl5000 13677 2 snd_soc_imx_audmux 5324 1 snd_soc_imx_sgtl5000 snd_soc_fsl_ssi 8139 2 imx_pcm_dma 1380 1 snd_soc_fsl_ssi $ rmmod snd_soc_imx_sgtl5000 Unable to handle kernel paging request at virtual address e594025c pgd = be134000 [e594025c] *pgd=00000000 Internal error: Oops: 5 [#1] SMP ARM Modules linked in: snd_soc_imx_sgtl5000(-) snd_soc_sgtl5000 snd_soc_imx_audmux snd_soc_fsl_ssi imx_pcm_dma CPU: 0 PID: 1793 Comm: rmmod Not tainted 3.13.0-rc1 #1570 task: bee28900 ti: bfbec000 task.ti: bfbec000 PC is at debugfs_remove_recursive+0x28/0x154 LR is at snd_soc_unregister_card+0xa0/0xcc pc : [<80252b38>] lr : [<80496ac4>] psr: a0000013 sp : bfbede00 ip : bfbede28 fp : bfbede24 r10: 803281d4 r9 : bfbec000 r8 : 803271ac r7 : bef54440 r6 : 00000004 r5 : bf9a4010 r4 : bf9a4010 r3 : e5940224 r2 : 00000000 r1 : bef54450 r0 : 803271ac Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c53c7d Table: 4e13404a DAC: 00000015 Process rmmod (pid: 1793, stack limit = 0xbfbec240) Stack: (0xbfbede00 to 0xbfbee000) de00: 00000000 bf9a4010 bf9a4010 00000004 bef54440 bec89000 bfbede44 bfbede28 de20: 80496ac4 80252b1c 804a4b60 bfbede60 bf9a4010 00000004 bfbede54 bfbede48 de40: 804a4b74 80496a30 bfbede94 bfbede58 80328728 804a4b6c bfbede94 a0000013 de60: bf1b5800 bef54440 00000002 bf9a4010 7f0169f8 bf9a4044 00000081 8000e9c4 de80: bfbec000 00000000 bfbedeac bfbede98 80328cb0 80328618 7f016000 bf9a4010 dea0: bfbedec4 bfbedeb0 8032561c 80328c84 bf9a4010 7f0169f8 bfbedee4 bfbedec8 dec0: 80325e84 803255a8 bee28900 7f0169f8 00000000 78208d30 bfbedefc bfbedee8 dee0: 80325410 80325dd4 beca8100 7f0169f8 bfbedf14 bfbedf00 803264f8 803253c8 df00: 7f01635c 7f016a3c bfbedf24 bfbedf18 80327098 803264d4 bfbedf34 bfbedf28 df20: 7f016370 80327090 bfbedfa4 bfbedf38 80085ef0 7f016368 bfbedf54 5f646e73 df40: 5f636f73 5f786d69 6c746773 30303035 00000000 78208008 bfbedf84 bfbedf68 df60: 800613b0 80061194 fffffffe 78208d00 7efc2f07 00000081 7f016a3c 00000800 df80: bfbedf84 00000000 00000000 fffffffe 78208d00 7efc2f07 00000000 bfbedfa8 dfa0: 8000e800 80085dcc fffffffe 78208d00 78208d30 00000800 a8c82400 a8c82400 dfc0: fffffffe 78208d00 7efc2f07 00000081 00000002 00000000 78208008 00000800 dfe0: 7efc2e1c 7efc2ba8 76f5ca47 76edec7c 80000010 78208d30 00000000 00000000 Backtrace: [<80252b10>] (debugfs_remove_recursive+0x0/0x154) from [<80496ac4>] (snd_soc_unregister_card+0xa0/0xcc) r8:bec89000 r7:bef54440 r6:00000004 r5:bf9a4010 r4:bf9a4010 r3:00000000 [<80496a24>] (snd_soc_unregister_card+0x0/0xcc) from [<804a4b74>] (devm_card_release+0x14/0x18) r6:00000004 r5:bf9a4010 r4:bfbede60 r3:804a4b60 [<804a4b60>] (devm_card_release+0x0/0x18) from [<80328728>] (release_nodes+0x11c/0x1dc) [<8032860c>] (release_nodes+0x0/0x1dc) from [<80328cb0>] (devres_release_all+0x38/0x54) [<80328c78>] (devres_release_all+0x0/0x54) from [<8032561c>] (__device_release_driver+0x80/0xd4) r4:bf9a4010 r3:7f016000 [<8032559c>] (__device_release_driver+0x0/0xd4) from [<80325e84>] (driver_detach+0xbc/0xc0) r5:7f0169f8 r4:bf9a4010 [<80325dc8>] (driver_detach+0x0/0xc0) from [<80325410>] (bus_remove_driver+0x54/0x98) r6:78208d30 r5:00000000 r4:7f0169f8 r3:bee28900 [<803253bc>] (bus_remove_driver+0x0/0x98) from [<803264f8>] (driver_unregister+0x30/0x50) r4:7f0169f8 r3:beca8100 [<803264c8>] (driver_unregister+0x0/0x50) from [<80327098>] (platform_driver_unregister+0x14/0x18) r4:7f016a3c r3:7f01635c [<80327084>] (platform_driver_unregister+0x0/0x18) from [<7f016370>] (imx_sgtl5000_driver_exit+0x14/0x1c [snd_soc_imx_sgtl5000]) [<7f01635c>] (imx_sgtl5000_driver_exit+0x0/0x1c [snd_soc_imx_sgtl5000]) from [<80085ef0>] (SyS_delete_module+0x130/0x18c) [<80085dc0>] (SyS_delete_module+0x0/0x18c) from [<8000e800>] (ret_fast_syscall+0x0/0x48) r6:7efc2f07 r5:78208d00 r4:fffffffe Code: 889da9f8 e5983020 e3530000 089da9f8 (e5933038) ---[ end trace 825e7e125251a225 ]--- Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>