AudioService: fix audio mode lock
Fix lock "sharing" for audio mode, with locking order as
1/ AudioDeviceBroker.mSetModeLock
2/ AudioDeviceBroker.mDeviceStateLock
3/ BtHelper class
The following code paths have been automatically generated
as accessing BtHelper.requestScoState(int, int), which
requires the lock to mSetModeLock. They have been checked
for consistency of locks, and have been fixed and/or annotated:
ScoClient in BtHelper.decCount() (com.android.server.audio)
BtHelper.stopBluetoothScoForClient(IBinder, String) (com.android.server.audio)
AudioDeviceBroker.stopBluetoothScoForClient_Sync(IBinder, String) (com.android.server.audio)
AudioService.stopBluetoothSco(IBinder) (com.android.server.audio)
ScoClient in BtHelper.incCount(int) (com.android.server.audio)
BtHelper.startBluetoothScoForClient(IBinder, int, String) (com.android.server.audio)
AudioDeviceBroker.startBluetoothScoForClient_Sync(IBinder, int, String) (com.android.server.audio)
AudioService.startBluetoothScoInt(IBinder, int, String) (com.android.server.audio)
ScoClient in BtHelper.clearCount(boolean) (com.android.server.audio)
BtHelper.clearAllScoClients(int, boolean) (com.android.server.audio)
BtHelper.disconnectBluetoothSco(int) (com.android.server.audio)
BrokerHandler in AudioDeviceBroker.handleMessage(Message) (com.android.server.audio)
BtHelper.resetBluetoothSco() (com.android.server.audio)
BrokerHandler in AudioDeviceBroker.handleMessage(Message) (com.android.server.audio)
BtHelper.setBtScoActiveDevice(BluetoothDevice) (com.android.server.audio)
BtHelper.disconnectHeadset() (com.android.server.audio)
BrokerHandler in AudioDeviceBroker.handleMessage(Message) (com.android.server.audio)
BtHelper.receiveBtEvent(Intent) (com.android.server.audio)
AudioDeviceBroker.receiveBtEvent(Intent) (com.android.server.audio)
BtHelper.onHeadsetProfileConnected(BluetoothHeadset) (com.android.server.audio)
BrokerHandler in AudioDeviceBroker.handleMessage(Message) (com.android.server.audio)
BtHelper.onSystemReady() (com.android.server.audio)
AudioDeviceBroker.onSystemReady() (com.android.server.audio)
BtHelper.receiveBtEvent(Intent) (com.android.server.audio)
BtHelper.scoClientDied(Object) (com.android.server.audio)
BrokerHandler in AudioDeviceBroker.handleMessage(Message) (com.android.server.audio)
Bug: 123769055
Test: see bug
Change-Id: I5fbb5e8c56d69b8ccfc6b2f44b00169c6b75b632
3 files changed