|
@@ -3935,7 +3935,8 @@ void snd_hda_bus_reset_codecs(struct hda_bus *bus)
|
|
|
|
|
|
list_for_each_codec(codec, bus) {
|
|
list_for_each_codec(codec, bus) {
|
|
/* FIXME: maybe a better way needed for forced reset */
|
|
/* FIXME: maybe a better way needed for forced reset */
|
|
- cancel_delayed_work_sync(&codec->jackpoll_work);
|
|
|
|
|
|
+ if (current_work() != &codec->jackpoll_work.work)
|
|
|
|
+ cancel_delayed_work_sync(&codec->jackpoll_work);
|
|
#ifdef CONFIG_PM
|
|
#ifdef CONFIG_PM
|
|
if (hda_codec_is_power_on(codec)) {
|
|
if (hda_codec_is_power_on(codec)) {
|
|
hda_call_codec_suspend(codec);
|
|
hda_call_codec_suspend(codec);
|