[alsa-devel] ESI Juli@ crash with external clock switch - patch
Pavel Hofman
pavel.hofman at ivitera.com
Sun Jan 11 18:57:38 CET 2015
Hi Takashi,
Dne 11.1.2015 v 16:52 Takashi Iwai napsal(a):
> Does the patch below work instead?
Thanks a lot for your Sunday response. Unfortunately this patch does not
help, again stuck in the flush_delayed work call - see stack trace below.
> The reason it appears only on
> Juli@ is that juli@ is the only board using this function.
I see, snd_ak4113_reinit of ak4113.c is never called, only
ak4113_init_regs. Perhaps Juli should not touch the workqueue in
ak4114_reinit and only initialize the regs in similar manner to ak4113?
But then should we restart the workqueue in juli_resume or just reinit
ak4114 regs? Quartet does not have the resume functionality implemented
at all yet.
The following patch removing any workqueue functions seems to work too
(making it the same functionality as in quartet - only reinitializing
ak411x registers). The workqueue gets executed since upon changing the
incoming rate the running capture is stopped. The recorded file stops
growing but arecord does not stop, must be killed with kill -9. Not a
problem for now.
==========
diff --git a/sound/i2c/other/ak4114.c b/sound/i2c/other/ak4114.c
index c7f5633..65efac7 100644
--- a/sound/i2c/other/ak4114.c
+++ b/sound/i2c/other/ak4114.c
@@ -154,12 +154,9 @@ void snd_ak4114_reinit(struct ak4114 *chip)
{
chip->init = 1;
mb();
- flush_delayed_work(&chip->work);
ak4114_init_regs(chip);
/* bring up statistics / event queing */
chip->init = 0;
- if (chip->kctls[0])
- schedule_delayed_work(&chip->work, HZ / 10);
}
static unsigned int external_rate(unsigned char rcs1)
==========
Thanks a lot,
Pavel.
[ 360.656039] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[ 360.656040] kworker/3:1 D ffff88021fd94480 0 49 2
0x00000000
[ 360.656052] Workqueue: events ak4114_stats [snd_ak4114]
[ 360.656055] ffff880213c9fba0 0000000000000046 ffff880214233000
ffff880213c9ffd8
[ 360.656058] 0000000000014480 0000000000014480 ffff880214233000
ffff880213c9fce8
[ 360.656061] ffff880213c9fcf0 7fffffffffffffff ffff880214233000
ffff880212cb02a8
[ 360.656063] Call Trace:
[ 360.656188] [<ffffffff81723129>] schedule+0x29/0x70
[ 360.656191] [<ffffffff81722379>] schedule_timeout+0x239/0x2d0
[ 360.656193] [<ffffffff81722cb1>] ? __schedule+0x381/0x7d0
[ 360.656196] [<ffffffff81723c46>] wait_for_completion+0xa6/0x160
[ 360.656198] [<ffffffff8109a8d0>] ? wake_up_state+0x20/0x20
[ 360.656201] [<ffffffff81084b8d>] flush_work+0xed/0x1b0
[ 360.656203] [<ffffffff81080e60>] ? wake_up_worker+0x30/0x30
[ 360.656205] [<ffffffff81084e2f>] flush_delayed_work+0x3f/0x50
[ 360.656208] [<ffffffffa03e8695>] snd_ak4114_reinit+0x25/0x60
[snd_ak4114]
[ 360.656214] [<ffffffffa042b26a>] juli_akm_set_rate_val+0xca/0xf0
[snd_ice1724]
[ 360.656219] [<ffffffffa0420642>] snd_vt1724_set_pro_rate+0x122/0x220
[snd_ice1724]
[ 360.656224] [<ffffffffa042300d>]
snd_vt1724_pro_internal_clock_put+0xad/0x1f0 [snd_ice1724]
[ 360.656234] [<ffffffffa0302df5>] ? snd_ctl_find_id+0xb5/0xe0 [snd]
[ 360.656240] [<ffffffffa03034fd>] snd_ctl_elem_write+0x11d/0x1a0 [snd]
[ 360.656243] [<ffffffff811a1dc5>] ? __kmalloc+0xa5/0x230
[ 360.656248] [<ffffffffa02ff01d>] ? __snd_kmalloc+0x1d/0x90 [snd]
[ 360.656253] [<ffffffffa0305266>] ? snd_ctl_ioctl+0xa6/0x7a0 [snd]
[ 360.656258] [<ffffffffa03052cc>] snd_ctl_ioctl+0x10c/0x7a0 [snd]
[ 360.656261] [<ffffffff8109a8d0>] ? wake_up_state+0x20/0x20
[ 360.656265] [<ffffffff811d03a0>] do_vfs_ioctl+0x2e0/0x4c0
[ 360.656268] [<ffffffff811bd0ce>] ? vfs_read+0xee/0x160
[ 360.656270] [<ffffffff811d0601>] SyS_ioctl+0x81/0xa0
[ 360.656272] [<ffffffff811bdb89>] ? SyS_read+0x49/0xa0
[ 360.656275] [<ffffffff8172f82d>] system_call_fastpath+0x1a/0x1f
[ 360.656277] INFO: task amixer:2917 blocked for more than 120 seconds.
[ 360.656278] Tainted: G OX 3.13.0-37-generic #64-Ubuntu
[ 360.656279] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[ 360.656281] amixer D ffff88021fd14480 0 2917 2916
0x00000004
[ 360.656283] ffff8800d2ba7d98 0000000000000082 ffff880212d84800
ffff8800d2ba7fd8
[ 360.656286] 0000000000014480 0000000000014480 ffff880212d84800
ffff880212d84800
[ 360.656288] ffff8802119709c0 ffff8802119709c8 ffffffff00000000
ffff8802119709d0
[ 360.656291] Call Trace:
[ 360.656293] [<ffffffff81723129>] schedule+0x29/0x70
[ 360.656296] [<ffffffff81725da5>] rwsem_down_write_failed+0x115/0x230
[ 360.656298] [<ffffffff811a1dc5>] ? __kmalloc+0xa5/0x230
[ 360.656302] [<ffffffff8136fd13>] call_rwsem_down_write_failed+0x13/0x20
[ 360.656304] [<ffffffff817257bd>] ? down_write+0x2d/0x30
[ 360.656310] [<ffffffffa030324d>] snd_ctl_release+0x7d/0x130 [snd]
[ 360.656312] [<ffffffff811bed64>] __fput+0xe4/0x260
[ 360.656315] [<ffffffff811bef2e>] ____fput+0xe/0x10
[ 360.656318] [<ffffffff81088227>] task_work_run+0xa7/0xe0
[ 360.656321] [<ffffffff81013df7>] do_notify_resume+0x97/0xb0
[ 360.656324] [<ffffffff8172faea>] int_signal+0x12/0x17
[ 360.656326] INFO: task amixer:2934 blocked for more than 120 seconds.
[ 360.656327] Tainted: G OX 3.13.0-37-generic #64-Ubuntu
[ 360.656329] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[ 360.656330] amixer D ffff88021fd94480 0 2934 2933
0x00000004
[ 360.656332] ffff8802110cfd98 0000000000000086 ffff88003569c800
ffff8802110cffd8
[ 360.656335] 0000000000014480 0000000000014480 ffff88003569c800
ffff88003569c800
[ 360.656337] ffff8802119709c0 ffff8802119709c8 ffffffff00000000
ffff8802119709d0
[ 360.656339] Call Trace:
[ 360.656342] [<ffffffff81723129>] schedule+0x29/0x70
[ 360.656344] [<ffffffff81725da5>] rwsem_down_write_failed+0x115/0x230
[ 360.656347] [<ffffffff8136fd13>] call_rwsem_down_write_failed+0x13/0x20
[ 360.656349] [<ffffffff817257bd>] ? down_write+0x2d/0x30
[ 360.656355] [<ffffffffa030324d>] snd_ctl_release+0x7d/0x130 [snd]
[ 360.656357] [<ffffffff811bed64>] __fput+0xe4/0x260
[ 360.656360] [<ffffffff811bef2e>] ____fput+0xe/0x10
[ 360.656362] [<ffffffff81088227>] task_work_run+0xa7/0xe0
[ 360.656365] [<ffffffff81013df7>] do_notify_resume+0x97/0xb0
[ 360.656367] [<ffffffff8172faea>] int_signal+0x12/0x17
[ 360.656369] INFO: task amixer:2938 blocked for more than 120 seconds.
[ 360.656370] Tainted: G OX 3.13.0-37-generic #64-Ubuntu
[ 360.656372] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[ 360.656373] amixer D ffff88021fd94480 0 2938 2937
0x00000004
[ 360.656375] ffff88020ff1dd98 0000000000000086 ffff8800d2a1b000
ffff88020ff1dfd8
[ 360.656378] 0000000000014480 0000000000014480 ffff8800d2a1b000
ffff8800d2a1b000
[ 360.656380] ffff8802119709c0 ffff8802119709c8 ffffffff00000000
ffff8802119709d0
[ 360.656383] Call Trace:
[ 360.656385] [<ffffffff81723129>] schedule+0x29/0x70
[ 360.656387] [<ffffffff81725da5>] rwsem_down_write_failed+0x115/0x230
[ 360.656390] [<ffffffff8136fd13>] call_rwsem_down_write_failed+0x13/0x20
[ 360.656392] [<ffffffff817257bd>] ? down_write+0x2d/0x30
[ 360.656398] [<ffffffffa030324d>] snd_ctl_release+0x7d/0x130 [snd]
[ 360.656400] [<ffffffff811bed64>] __fput+0xe4/0x260
[ 360.656402] [<ffffffff811bef2e>] ____fput+0xe/0x10
[ 360.656405] [<ffffffff81088227>] task_work_run+0xa7/0xe0
[ 360.656408] [<ffffffff81013df7>] do_notify_resume+0x97/0xb0
[ 360.656410] [<ffffffff8172faea>] int_signal+0x12/0x17
>
More information about the Alsa-devel
mailing list