CHROMIUM: Use link policies to disallow role switches

Some peripherals will attempt to role switch the host device into a
peripheral role mode.  When combined with other peripherals such as mice
and keyboards, this forces the controller to maintain a complicated
topology which results in audio glitches or mouse movement glitches.

The solution implemented by this patch is to leverage the link_policy to
attempt to disallow the peripheral from switching roles once the host
settles into the central role.

This is submitted as a chromium patch to gain some feedback on
improvement before proposing upstream.

BUG=b:181843241
TEST=update_kernel on hatch.  Observed the role switch 3 seconds after
the connection using a Bose headset and observe the connection remains
in central role after the kernel is updated.

Signed-off-by: Alain Michaud <alainm@chromium.org>
Change-Id: I67136706ba39a9f09b3285017b62a13a920bfffd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2818466
Reviewed-by: Miao-chen Chou <mcchou@chromium.org>
(cherry picked from commit a90a005a273904da327630695aca8988e16a3809)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2821919
Reviewed-by: Shyh-In Hwang <josephsih@chromium.org>
2 files changed