[alsa-devel] Linux Kernel-3.5 crashed as dapm is not supported by codec
Rajeev kumar
rajeev-dlh.kumar at st.com
Tue Nov 6 11:40:41 CET 2012
Hello Mark,
On 9/21/2012 9:27 AM, Rajeev kumar wrote:
> Hello Mark,
>
> On 9/20/2012 5:19 PM, Mark Brown wrote:
>> On Thu, Sep 20, 2012 at 04:46:27PM +0530, Rajeev kumar wrote:
>>
>>> I have not provided the dapm support in codec. When the system goes
>>> in hibernation state it gets crashed. command for putting the system
>>> in hibernation:
>>
>> DAPM is mandatory now, though any device with an audio interface
>> connected should have some DAPM widgets added transparently so its not
>> always explicitly present in the CODEC driver. It's just causing too
>> much pain to special case non-DAPM devices and theres really not any
>> cases where there's no need for widgets.
>>
>
Once again I am raising this issue. Sorry for that.
First time I have implemented dapm support for my codec driver (sta529),
but still crash is there. There is no any asynchronous events, so
platform/Machine driver does not contains any dapm widgets.
Please find below the implementation for dapm.
static const struct snd_soc_dapm_widget sta529_dapm_widgets[] = {
SND_SOC_DAPM_DAC("DAC", "Play", SND_SOC_NOPM , 0, 0),
SND_SOC_DAPM_ADC("ADC", "Capture", SND_SOC_NOPM, 0, 0),
SND_SOC_DAPM_OUTPUT("HPL"),
SND_SOC_DAPM_OUTPUT("HPR"),
SND_SOC_DAPM_OUTPUT("SPKL"),
SND_SOC_DAPM_OUTPUT("SPKR"),
SND_SOC_DAPM_INPUT("MIC1"),
};
static const struct snd_soc_dapm_route sta529_audio_map[] = {
{"DAC", NULL, "output"},
{"ADC", NULL, "input"},
{"HPL", NULL, "HP Left Out"},
{"HPR", NULL, "HP Right Out"},
{"SPKL", NULL, "SPK Left Out"},
{"SPKR", NULL, "SPK Right Out"},
};
struct snd_soc_codec_driver sta529_codec_driver = {
.probe = sta529_probe,
.remove = sta529_remove,
.set_bias_level = sta529_set_bias_level,
.suspend = sta529_suspend,
.resume = sta529_resume,
.controls = sta529_snd_controls,
.num_controls = ARRAY_SIZE(sta529_snd_controls),
.dapm_widgets = sta529_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(sta529_dapm_widgets),
.dapm_routes = sta529_audio_map,
.num_dapm_routes = ARRAY_SIZE(sta529_audio_map),
};
Could you please suggest me, is there any thing more I need to do to
make it work or I am missing something.
For reference, please find crash log also.
snd_soc_dapm_shutdown+0x4c/0x11c) from [<803ce05c>]
(snd_soc_poweroff+0x68/0x70)
[<803ce05c>] (snd_soc_poweroff+0x68/0x70) from [<80288b1c>]
(platform_pm_poweroff+0x40/0x58)
[<80288b1c>] (platform_pm_poweroff+0x40/0x58) from [<8028d1a8>]
(dpm_run_callback.isra.4+0x3c/0x74)
[<8028d1a8>] (dpm_run_callback.isra.4+0x3c/0x74) from [<8028dbcc>]
(__device_suspend+0x180/0x228)
[<8028dbcc>] (__device_suspend+0x180/0x228) from [<8028e5d4>]
(dpm_suspend+0xb4/0x220)
[<8028e5d4>] (dpm_suspend+0xb4/0x220) from [<8028e97c>]
(dpm_suspend_start+0x6c/0x74)
[<8028e97c>] (dpm_suspend_start+0x6c/0x74) from [<8005b778>]
(hibernation_platform_enter+0x48/0x128)
[<8005b778>] (hibernation_platform_enter+0x48/0x128) from [<8005b9ac>]
(hibernate+0x154/0x21c)
[<8005b9ac>] (hibernate+0x154/0x21c) from [<80059b10>]
(state_store+0xbc/0xd0)
[<80059b10>] (state_store+0xbc/0xd0) from [<801f093c>]
(kobj_attr_store+0x1c/0x28)
[<801f093c>] (kobj_attr_store+0x1c/0x28) from [<80127bd0>]
(sysfs_write_file+0x118/0x14c)
[<80127bd0>] (sysfs_write_file+0x118/0x14c) from [<800d2640>]
(vfs_write+0xc4/0x140)
[<800d2640>] (vfs_write+0xc4/0x140) from [<800d28bc>] (sys_write+0x4c/0x78)
[<800d28bc>] (sys_write+0x4c/0x78) from [<8000de20>]
(ret_fast_syscall+0x0/0x48)
Code: e59350f8 e3a03000 e2455014 ea00000f (e595201c)
Best Regards
Rajeev
> Best Regards
> Rajeev
>
>
>
>
More information about the Alsa-devel
mailing list