audio: Do not use StreamSwitcher for StreamPrimary

Since use of StreamSwitcher causes the worker thread to be changed
during connected device change, its use for the primary HAL streams
must be avoided. The reason is that switching of the FMQ reader thread
accompanied with simultaneous writes from two writers: one on the
framework side, another on the HAL side sending the "exit" command,
violates threading assumptions of blocking FMQ and causes spurious
races that eventually make FMQ non-functional.

Bug: 300130515
Bug: 368723297
Bug: 369272078
Bug: 369289912
Bug: 369964381
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I14dc6fc08ae9e8aaaf3cd80e96b20dd1df54f633
diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp
index f51f65e..d47b0b1 100644
--- a/audio/aidl/default/Android.bp
+++ b/audio/aidl/default/Android.bp
@@ -77,6 +77,7 @@
         "r_submix/ModuleRemoteSubmix.cpp",
         "r_submix/SubmixRoute.cpp",
         "r_submix/StreamRemoteSubmix.cpp",
+        "stub/DriverStubImpl.cpp",
         "stub/ModuleStub.cpp",
         "stub/StreamStub.cpp",
         "usb/ModuleUsb.cpp",