Hang up at .prepare( )

From: Tomoya MORINAGA
Date: Tue Jan 24 2012 - 04:38:54 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/