New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 762877 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 762846



Sign in to add a comment

CRAS: hotword stream doesn't record any data when wake from suspend

Project Member Reported by hychao@chromium.org, Sep 7 2017

Issue description


What steps will reproduce the problem?
(1) cras_test_client --listen /tmp/1
(2) powerd_dbus_suspend to suspend system
(3) speak keyword to wake device
(4) ls -al /tmp/1 to check recorded content

What is the expected result?
/tmp/1 has recorded audio

What happens instead?
/tmp/1 is empty

 
Labels: Proj-Poppy
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/c2b9444cce759fffb916aed65ef1556375b5542a

commit c2b9444cce759fffb916aed65ef1556375b5542a
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Tue Sep 12 13:38:07 2017

CRAS: iodev_list - Don't suspend hotword stream

Hotword device can be used to wake device from suspend so
do not remove stream/dev when system enter suspend.

BUG= chromium:762877 
TEST=cras_test_client --listen /tmp/1 to start hotword stream
and then suspend system, use keyword to wake it and verify
/tmp/1 records the full sentence.

Change-Id: I8d2bbc220c9cda102ce56e0e4ff3893c86eae1d5
Reviewed-on: https://chromium-review.googlesource.com/654567
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/c2b9444cce759fffb916aed65ef1556375b5542a/cras/src/server/cras_iodev_list.c

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/e9780f778cf17b8ad4f7422d3d80b32c03a97d70

commit e9780f778cf17b8ad4f7422d3d80b32c03a97d70
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Tue Sep 12 13:38:07 2017

CRAS: iodev - Better set input_streaming flag

The input_streaming flag is used mainly for hotword stream and
is updated when device level grows larger than zero. However
a case is observed that hw_level stays at zero when system resumes
by keyword recognition, that makes the input_streaming flag stay
at value 0 so audio thread is not scheduled properly to wake for
upcoming input data.

Example debug log:
    dummy_hotword_cb called
    in capture_to_streams, hw_level 0
    in capture_to_streams, hw_level 320
    in capture_to_streams, hw_level 159
    in capture_to_streams, hw_level 79

To fix this bug, move the input_streaming flag to cras_iodev
level and update its value also in the hotword callback.

BUG= chromium:762877 
TEST=On poppy,
cras_test_client --listen /tmp/1 to start hotword stream
and then suspend system, use keyword to wake it and verify
/tmp/1 records the full sentence.

Change-Id: Ie7e47478faaf2a755433be470b621ba032c114c1
Reviewed-on: https://chromium-review.googlesource.com/654568
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>

[modify] https://crrev.com/e9780f778cf17b8ad4f7422d3d80b32c03a97d70/cras/src/server/dev_io.h
[modify] https://crrev.com/e9780f778cf17b8ad4f7422d3d80b32c03a97d70/cras/src/server/dev_io.c
[modify] https://crrev.com/e9780f778cf17b8ad4f7422d3d80b32c03a97d70/cras/src/server/cras_iodev.h
[modify] https://crrev.com/e9780f778cf17b8ad4f7422d3d80b32c03a97d70/cras/src/server/audio_thread.c
[modify] https://crrev.com/e9780f778cf17b8ad4f7422d3d80b32c03a97d70/cras/src/server/cras_iodev.c
[modify] https://crrev.com/e9780f778cf17b8ad4f7422d3d80b32c03a97d70/cras/src/server/cras_alsa_io.c

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 15 2017

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/230a7887fbfe57db06e18a4c6058d139244b212b

commit 230a7887fbfe57db06e18a4c6058d139244b212b
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Fri Sep 15 17:50:31 2017

UPSTREAM: ASoC: rt5514-spi: check irq status to schedule data copy

For wake on voice use case, we need to copy data from DSP buffer
to PCM stream when system wakes up by voice. However the edge
triggered IRQ could be missed when system wakes up, in that case
the irq function will not be called. Fix that by checking the irq
status bit and schedule data copy accordingly.

Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
(cherry picked from commit 5b14b93b66499ca11792ec95fa8693863e47ea2e)

BUG= chromium:762877 
BUG=b:62333564
TEST=Manual test on Eve, 'cras_test_client --listen /tmp/1'
suspend system, say 'Ok,Google' to wake device and verify /tmp/1
records the full voice command.

Change-Id: Ib7a49e33c4bd79d9d5faf5b6694e25972f7e44f1
Reviewed-on: https://chromium-review.googlesource.com/668273
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>

[modify] https://crrev.com/230a7887fbfe57db06e18a4c6058d139244b212b/sound/soc/codecs/rt5514-spi.h
[modify] https://crrev.com/230a7887fbfe57db06e18a4c6058d139244b212b/sound/soc/codecs/rt5514-spi.c

Comment 5 Deleted

Comment 6 Deleted

Comment 7 by hychao@chromium.org, Sep 19 2017

Cc: keta...@chromium.org
Labels: Merge-Request-62
Status: Started (was: Assigned)
Merge request for DSP hotwording on Poppy & Eve.
Project Member

Comment 8 by sheriffbot@chromium.org, Sep 19 2017

Labels: -Merge-Request-62 Merge-Review-62 Hotlist-Merge-Review
This bug requires manual review: M62 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 9 by hychao@chromium.org, Sep 19 2017

Cc: bhthompson@chromium.org
Can you please mark which OS's this is impacting?
Labels: -merge-merged-chromeos-4.4 -Merge-Review-62 Merge-Request-62 Merge-Request-61 M-61 OS-Chrome
Project Member

Comment 12 by sheriffbot@chromium.org, Sep 20 2017

Labels: -Merge-Request-62 Merge-Review-62
This bug requires manual review: M62 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Request-61 -Merge-Review-62 Merge-Rejected-61 Merge-Approved-62
Merge approved for 62, default deny for 61 unless this is a critical bug fix.

Comment 14 Deleted

Hi Bernie,

This fix is required for issue 762846 and since 762846 has been merge-approved for 61, can we also merge this one? thanks!
Project Member

Comment 16 by bugdroid1@chromium.org, Sep 21 2017

Labels: merge-merged-release-R62-9901.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/6d02d3d7f59966faf63179c6e1c4b0af177b901f

commit 6d02d3d7f59966faf63179c6e1c4b0af177b901f
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Thu Sep 21 03:14:46 2017

CRAS: iodev - Better set input_streaming flag

The input_streaming flag is used mainly for hotword stream and
is updated when device level grows larger than zero. However
a case is observed that hw_level stays at zero when system resumes
by keyword recognition, that makes the input_streaming flag stay
at value 0 so audio thread is not scheduled properly to wake for
upcoming input data.

Example debug log:
    dummy_hotword_cb called
    in capture_to_streams, hw_level 0
    in capture_to_streams, hw_level 320
    in capture_to_streams, hw_level 159
    in capture_to_streams, hw_level 79

To fix this bug, move the input_streaming flag to cras_iodev
level and update its value also in the hotword callback.

BUG= chromium:762877 
TEST=On poppy,
cras_test_client --listen /tmp/1 to start hotword stream
and then suspend system, use keyword to wake it and verify
/tmp/1 records the full sentence.

Change-Id: Ie7e47478faaf2a755433be470b621ba032c114c1
Reviewed-on: https://chromium-review.googlesource.com/654568
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
(cherry picked from commit e9780f778cf17b8ad4f7422d3d80b32c03a97d70)
Reviewed-on: https://chromium-review.googlesource.com/676763
Commit-Queue: Chinyue Chen <chinyue@chromium.org>
Tested-by: Chinyue Chen <chinyue@chromium.org>

[modify] https://crrev.com/6d02d3d7f59966faf63179c6e1c4b0af177b901f/cras/src/server/dev_io.h
[modify] https://crrev.com/6d02d3d7f59966faf63179c6e1c4b0af177b901f/cras/src/server/dev_io.c
[modify] https://crrev.com/6d02d3d7f59966faf63179c6e1c4b0af177b901f/cras/src/server/cras_iodev.h
[modify] https://crrev.com/6d02d3d7f59966faf63179c6e1c4b0af177b901f/cras/src/server/audio_thread.c
[modify] https://crrev.com/6d02d3d7f59966faf63179c6e1c4b0af177b901f/cras/src/server/cras_iodev.c
[modify] https://crrev.com/6d02d3d7f59966faf63179c6e1c4b0af177b901f/cras/src/server/cras_alsa_io.c

Project Member

Comment 17 by bugdroid1@chromium.org, Sep 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/f36f3fdfa5b9e38eeed31773df14264275cb7072

commit f36f3fdfa5b9e38eeed31773df14264275cb7072
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Thu Sep 21 08:09:29 2017

CRAS: iodev_list - Don't suspend hotword stream

Hotword device can be used to wake device from suspend so
do not remove stream/dev when system enter suspend.

BUG= chromium:762877 
TEST=cras_test_client --listen /tmp/1 to start hotword stream
and then suspend system, use keyword to wake it and verify
/tmp/1 records the full sentence.

Change-Id: I8d2bbc220c9cda102ce56e0e4ff3893c86eae1d5
Reviewed-on: https://chromium-review.googlesource.com/654567
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
(cherry picked from commit c2b9444cce759fffb916aed65ef1556375b5542a)
Reviewed-on: https://chromium-review.googlesource.com/676827
Commit-Queue: Hsinyu Chao <hychao@chromium.org>

[modify] https://crrev.com/f36f3fdfa5b9e38eeed31773df14264275cb7072/cras/src/server/cras_iodev_list.c

Project Member

Comment 18 by bugdroid1@chromium.org, Sep 21 2017

Labels: merge-merged-release-R62-9901.B-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/fe64b4e628bd2dd7ff7e1711a400f0e8c58c72e0

commit fe64b4e628bd2dd7ff7e1711a400f0e8c58c72e0
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Thu Sep 21 08:18:18 2017

UPSTREAM: ASoC: rt5514-spi: check irq status to schedule data copy

For wake on voice use case, we need to copy data from DSP buffer
to PCM stream when system wakes up by voice. However the edge
triggered IRQ could be missed when system wakes up, in that case
the irq function will not be called. Fix that by checking the irq
status bit and schedule data copy accordingly.

Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
(cherry picked from commit 5b14b93b66499ca11792ec95fa8693863e47ea2e)

BUG= chromium:762877 
BUG=b:62333564
TEST=Manual test on Eve, 'cras_test_client --listen /tmp/1'
suspend system, say 'Ok,Google' to wake device and verify /tmp/1
records the full voice command.

Change-Id: Ib7a49e33c4bd79d9d5faf5b6694e25972f7e44f1
Reviewed-on: https://chromium-review.googlesource.com/668273
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
(cherry picked from commit 230a7887fbfe57db06e18a4c6058d139244b212b)
Reviewed-on: https://chromium-review.googlesource.com/676828
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>

[modify] https://crrev.com/fe64b4e628bd2dd7ff7e1711a400f0e8c58c72e0/sound/soc/codecs/rt5514-spi.h
[modify] https://crrev.com/fe64b4e628bd2dd7ff7e1711a400f0e8c58c72e0/sound/soc/codecs/rt5514-spi.c

Labels: -Merge-Approved-62
Owner: chinyue@chromium.org
Done merge to R62.
Reassign this to chinyue@ as this is blocking 762846 which targets R61, pending on R61 request in #15.
Labels: -Merge-Rejected-61 Merge-Request-61
Blocking: 762846
Approving merge to M61.
Labels: -Merge-Request-61 Merge-Approved-61
Project Member

Comment 24 by bugdroid1@chromium.org, Sep 22 2017

Labels: merge-merged-release-R61-9765.B-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/926ea52ababa5e3d72813831d62f867faaafecfb

commit 926ea52ababa5e3d72813831d62f867faaafecfb
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Fri Sep 22 03:29:11 2017

UPSTREAM: ASoC: rt5514-spi: check irq status to schedule data copy

For wake on voice use case, we need to copy data from DSP buffer
to PCM stream when system wakes up by voice. However the edge
triggered IRQ could be missed when system wakes up, in that case
the irq function will not be called. Fix that by checking the irq
status bit and schedule data copy accordingly.

Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
(cherry picked from commit 5b14b93b66499ca11792ec95fa8693863e47ea2e)

BUG= chromium:762877 
BUG=b:62333564
TEST=Manual test on Eve, 'cras_test_client --listen /tmp/1'
suspend system, say 'Ok,Google' to wake device and verify /tmp/1
records the full voice command.

Change-Id: Ib7a49e33c4bd79d9d5faf5b6694e25972f7e44f1
Reviewed-on: https://chromium-review.googlesource.com/668273
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
(cherry picked from commit 230a7887fbfe57db06e18a4c6058d139244b212b)
Reviewed-on: https://chromium-review.googlesource.com/677897
Commit-Queue: Chinyue Chen <chinyue@chromium.org>
Tested-by: Chinyue Chen <chinyue@chromium.org>

[modify] https://crrev.com/926ea52ababa5e3d72813831d62f867faaafecfb/sound/soc/codecs/rt5514-spi.h
[modify] https://crrev.com/926ea52ababa5e3d72813831d62f867faaafecfb/sound/soc/codecs/rt5514-spi.c

Project Member

Comment 25 by bugdroid1@chromium.org, Sep 22 2017

Labels: merge-merged-release-R61-9765.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/96542a715ecd61cc47280ba218636ae126ed9620

commit 96542a715ecd61cc47280ba218636ae126ed9620
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Fri Sep 22 03:29:11 2017

CRAS: iodev_list - Don't suspend hotword stream

Hotword device can be used to wake device from suspend so
do not remove stream/dev when system enter suspend.

BUG= chromium:762877 
TEST=cras_test_client --listen /tmp/1 to start hotword stream
and then suspend system, use keyword to wake it and verify
/tmp/1 records the full sentence.

Change-Id: I8d2bbc220c9cda102ce56e0e4ff3893c86eae1d5
Reviewed-on: https://chromium-review.googlesource.com/654567
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
(cherry picked from commit c2b9444cce759fffb916aed65ef1556375b5542a)
Reviewed-on: https://chromium-review.googlesource.com/677898
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
Commit-Queue: Chinyue Chen <chinyue@chromium.org>
Tested-by: Chinyue Chen <chinyue@chromium.org>

[modify] https://crrev.com/96542a715ecd61cc47280ba218636ae126ed9620/cras/src/server/cras_iodev_list.c

Project Member

Comment 26 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/adhd/+/f96b64529c50cc2c51ac7c331a5aed0e7bf7286d

commit f96b64529c50cc2c51ac7c331a5aed0e7bf7286d
Author: Hsin-Yu Chao <hychao@chromium.org>
Date: Fri Sep 22 03:29:14 2017

CRAS: iodev - Better set input_streaming flag

The input_streaming flag is used mainly for hotword stream and
is updated when device level grows larger than zero. However
a case is observed that hw_level stays at zero when system resumes
by keyword recognition, that makes the input_streaming flag stay
at value 0 so audio thread is not scheduled properly to wake for
upcoming input data.

Example debug log:
    dummy_hotword_cb called
    in capture_to_streams, hw_level 0
    in capture_to_streams, hw_level 320
    in capture_to_streams, hw_level 159
    in capture_to_streams, hw_level 79

To fix this bug, move the input_streaming flag to cras_iodev
level and update its value also in the hotword callback.

BUG= chromium:762877 
TEST=On poppy,
cras_test_client --listen /tmp/1 to start hotword stream
and then suspend system, use keyword to wake it and verify
/tmp/1 records the full sentence.

Change-Id: Ie7e47478faaf2a755433be470b621ba032c114c1
Reviewed-on: https://chromium-review.googlesource.com/654568
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Chinyue Chen <chinyue@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
(cherry picked from commit e9780f778cf17b8ad4f7422d3d80b32c03a97d70)
Reviewed-on: https://chromium-review.googlesource.com/677899
Commit-Queue: Chinyue Chen <chinyue@chromium.org>
Tested-by: Chinyue Chen <chinyue@chromium.org>

[modify] https://crrev.com/f96b64529c50cc2c51ac7c331a5aed0e7bf7286d/cras/src/server/dev_io.h
[modify] https://crrev.com/f96b64529c50cc2c51ac7c331a5aed0e7bf7286d/cras/src/server/dev_io.c
[modify] https://crrev.com/f96b64529c50cc2c51ac7c331a5aed0e7bf7286d/cras/src/server/cras_iodev.h
[modify] https://crrev.com/f96b64529c50cc2c51ac7c331a5aed0e7bf7286d/cras/src/server/audio_thread.c
[modify] https://crrev.com/f96b64529c50cc2c51ac7c331a5aed0e7bf7286d/cras/src/server/cras_iodev.c
[modify] https://crrev.com/f96b64529c50cc2c51ac7c331a5aed0e7bf7286d/cras/src/server/cras_alsa_io.c

Labels: -Merge-Approved-61 Merge-Merged
Status: Fixed (was: Started)
Cc: ka...@chromium.org

Sign in to add a comment