CRAS: iodev_list - suspend/resume dev API to fix BT profile switch bug
Calling cras_iodev_list_enable() at BT profile switch implies
promoting BT iodev as activated by Chrome UI. This causes
serious bug when the BT profile switch is triggered by pin
stream.
To fix the problem, this change adds API to suspend/resume the
connection of all types of stream with an iodev. These new APIs
are totally independent from whether the iodev is enabled by UI
or not.
Note that we keep this commit small so its good for cherry-pick
to older release branches.
Larger code modification will be done in future commit to:
- Deeper clean up to APIs of cras_iodev_list
- Polish the interaction logic of suspend/resume API with UI
enabled state of an iodev.
BUG=chromium:933095
TEST=Launch meet.google.com, connect USB camera with mic, then
pair and connect BT headset. Execute cras_test_client to verify
there's no multiple inputs activated.
Change-Id: Ia3210fccb9cc72f728cae5ae78046a14a44153db
Reviewed-on: https://chromium-review.googlesource.com/1475689
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
6 files changed