Repository navigation
Closed
thesofproject/sof
#1427Labels
Description
Describe the bug
For the WoV, The recording process should wait until the keyword arrives, and then start recording. But when runtime suspend is enabled, it won't wait for keywords, but start recording
immediately. Runtime suspend is enabled as default in our kernel driver.
To Reproduce
arecord -Dhw:0,8 -M -N -r 16000 -f s16_le -c 2 wov.wav -vvv
Expected behavior
The recording process should wait for the keyword arrives before start the recording.
Impact
No keyword detection before recording.
Environment
- kernel: sof-dev/8663570d2
- firmware: master/030c81c + PR [RFC]selector: need treat selector as endpoint for command handling sof#1365
- tplg: sof-glk-da7219-kwd.tplg
- platform: GLK-ubuntu
- Reproducibility Rate. 100%
dmesg
[ 31.779353] sof-audio-pci 0000:00:0e.0: pcm: trigger stream 8 dir 1 cmd 1
[ 31.779368] sof-audio-pci 0000:00:0e.0: ipc tx: 0x60040000: GLB_STREAM_MSG: TRIG_START
[ 31.779547] sof-audio-pci 0000:00:0e.0: ipc tx succeeded: 0x60040000: GLB_STREAM_MSG: TRIG_START
[ 33.095173] sof-audio-pci 0000:00:0e.0: ipc rx: 0x50050039: GLB_COMP_MSG: unknown type
[ 33.095176] sof-audio-pci 0000:00:0e.0: ipc rx done: 0x50050039: GLB_COMP_MSG: unknown type
[ 35.163652] sof-audio-pci 0000:00:0e.0: pcm: trigger stream 8 dir 1 cmd 0
[ 35.163688] sof-audio-pci 0000:00:0e.0: ipc tx: 0x60050000: GLB_STREAM_MSG: TRIG_STOP
[ 35.163830] sof-audio-pci 0000:00:0e.0: ipc tx succeeded: 0x60050000: GLB_STREAM_MSG: TRIG_STOP
Trace
0 2 PIPE 51056.354167 36.562500 src/audio/pipeline.c:72 pipeline_new()
0 2 IPC 51118.333333 61.979168 src/ipc/handler.c:675 ipc: pm core mask 0x1 -> enable
0 2 IPC 51177.656250 59.322918 src/ipc/handler.c:948 ipc: hdr 0x30010000 tx (220) > rx (28)
0 2 IPC 51183.437500 5.781250 src/ipc/handler.c:951 ipc: pipe 9 comp 57 -> new (type 15)
0 2 unknown 51203.750000 20.312500 /audio/detect_test.c:211 test_keyword_new()
0 2 IPC 51277.239583 73.489586 src/ipc/handler.c:948 ipc: hdr 0x30010000 tx (200) > rx (28)
0 2 IPC 51280.781250 3.541667 src/ipc/handler.c:951 ipc: pipe 9 comp 58 -> new (type 17)
0 2 SELECTOR 51301.510417 20.729166 src/audio/selector.c:115 selector_new()
0 2 IPC 51360.052083 58.541668 src/ipc/handler.c:981 ipc: pipe 9 buffer 59 -> new (0xa00 bytes)
0 2 BUFFER 51380.989583 20.937500 src/audio/buffer.c:54 buffer_new()
0 2 IPC 51445.833333 64.843750 src/ipc/handler.c:981 ipc: pipe 9 buffer 60 -> new (0xa00 bytes)
Activity
keyonjie commentedon May 10, 2019
Thanks for reporting the first issue for Keyword Detection, @keqiaozhang
The issue only happens at running 'arecord' after resuming from suspended status.
Something looks odd in dmesg to me is:
ipc rx: 0x50050039: GLB_COMP_MSG: unknown type
keyonjie commentedon May 10, 2019
root caused this to be that the detector binary config set fails(triggered after suspend/resume), please refer to Linux issue #919, we can quick workaround it with bypassing test_keyword_set_config().
keyonjie commentedon May 13, 2019
I am working on this now...
keyonjie commentedon May 14, 2019
Linux PR #942 and thesofproject/sof#1427 is the fix for this issue.
keqiaozhang commentedon May 16, 2019
Confirmed that this issue is fixed by Linux PR #942 and thesofproject/sof#1427.