[alsa-devel] Hang up at .prepare( )

Tomoya MORINAGA tomoya.rohm at gmail.com
Tue Jan 24 10:38:45 CET 2012


Hi

I've started debugging our ASoC drivers.
I've faced issue when installing these drivers,
system becomes hang up at async_synchronize_full_domain() of
dapm_power_widgets()
in .prepare().

Do you have any information about this hang up ?

I show details below.

======Details============

 * Procedure
install codec-driver
install platform-driver
install machine driver

echo ml26124 0x1A > /sys/bus/i2c/devices/i2c-1/new_device
After this command,
occur system hang up within a few seconds

 * Call Trees

platform-driver:.open()
machine-driver:.hw_params()
codec-driver:.hw_params()
platform-driver:.dai_hw_params()
platform-driver:.hw_params()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()

platform-driver:.open()
machine-driver:.hw_params()
codec-driver:.hw_params()
platform-driver:.dai_hw_params()
platform-driver:.hw_params()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.close()

platform-driver:.open()
machine-driver:.hw_params()
codec-driver:.hw_params()
platform-driver:.dai_hw_params()
platform-driver:.hw_params()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.close()
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.close()
platform-driver:.dai_digital_mute()

platform-driver:.open()
machine-driver:.hw_params()
codec-driver:.hw_params()
platform-driver:.dai_hw_params()
platform-driver:.hw_params()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()

platform-driver:.open()
machine-driver:.hw_params()
codec-driver:.hw_params()
platform-driver:.dai_hw_params()
platform-driver:.hw_params()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.prepare()
platform-driver:.dai_digital_mute()
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.hw_free
platform-driver:.dai_hw_free
platform-driver:.close()

platform-driver:.open()
machine-driver:.hw_params()
codec-driver:.hw_params()
platform-driver:.dai_hw_params()
platform-driver:.hw_params()
platform-driver:.prepare()

==> Occur system hang up.

According to system log,
the hang up seems occuring at async_synchronize_full_domain(),
which is at soc_pcm_prepare -> soc_dapm_stream_event ->
dapm_power_widgets -> async_synchronize_full_domain [2nd call]

 * Test condition
CPU=Intel Atom E6xx series
IOH=LAPIS Semiconductor ML7213
Fedora15
Kernel=3.2

thanks in advance.
tomoya


More information about the Alsa-devel mailing list