Commit graph

265 commits

Author SHA1 Message Date
Jakub Pawlowski
13b4d3150c bluetooth: V1.1
Add ISO

Test: run rootcanal, verify 1.1 HAL can be used
Bug: 144413056
Change-Id: Ic5b33602e1e4ba8e6d16623b9f8c46f674fc476c
2019-11-20 00:47:22 +01:00
Nick Desaulniers
0fd95b2473 [hardware][interfaces][bluetooth] fix -Wreorder-init-list
C++20 will require members in a designated initializer to be in order
unlike C99.

Bug: 139945549
Test: mm
Change-Id: Ie34b4f3400439817bebd30ee0356e35a87c971e5
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2019-10-14 11:04:50 -07:00
Steven Moreland
b3a4d3832e Remove libhwbinder/libhidltransport deps
Since these were combined into libhidlbase.

Bug: 135686713
Test: build only (libhwbinder/libhidltransport are empty)
Change-Id: I075670b64eebbbbd6a6ae0e84ad51bf1c6f5ba36
2019-09-06 01:07:02 +00:00
Xin Li
8190dbeef0 Merge "DO NOT MERGE - Merge Android 10 into master" 2019-09-05 16:53:18 +00:00
Steven Moreland
59d39ab02c Rename a2dp impl as mock.
So that it isn't accidentally used.

Bug: 140115084
Test: codesearching for usages
Change-Id: I2736a875d8a3021ce496847c45259f10aa148bc0
2019-08-30 11:53:44 -07:00
Felix
37298a7616 Merge "Add interface info to .rc files"
am: 98d0f4d52c

Change-Id: Ie6cfbacd523c4b09f77bee3369ec8e88b3fa0419
2019-07-08 12:22:23 -07:00
Felix
551b8d15ce Add interface info to .rc files
Signed-off-by: Felix <google@ix5.org>
Change-Id: I6d70bbdb66c3dce280bf6908c3750316a6f6cf70
2019-06-25 20:00:07 +02:00
Steven Moreland
6d494b2346 Merge "Update hidl makefiles for bpfmt" am: ff0bd741ca
am: 96f40f7b02

Change-Id: Idbf030e4993067bdb8181321bca2de00c9b6f7ef
2019-04-18 14:34:45 -07:00
Steven Moreland
1ae4615d9f Update hidl makefiles for bpfmt
hidl-generated makefiles are now generated such that bpfmt(file) == file.

Bug: 67417008
Test: enable bpfmt hook
Change-Id: I1f69d292bc23a7cc293a66110cb02d597e1019ad
2019-04-17 09:38:50 -07:00
Steven Moreland
7f4e21adda Merge "Update makefies: no 'types'" am: 4ee5ec1469 am: bab622f6a6
am: 7224bc9bcf

Change-Id: I434939e0770afa436c532a945542fce30a71ef7d
2019-03-04 16:05:59 -08:00
Steven Moreland
a878aee9ab Update makefies: no 'types'
Bug: 123976090
Test: N/A
Change-Id: I30fb04c81889b62775e1b764b965fdb0f893de17
2019-03-04 11:27:17 -08:00
Steven Moreland
63bf69427b Make audio HAL consistent.
Bug: 124459302
Test: hidl-gen -Lcheck ...
Change-Id: I319fb00ef3a2da3944094228d4801bd9f88c16bb
Merged-In: Ie125d9bb014ee747ce56a59feaca577ab2d9e96c
2019-02-26 09:00:14 -08:00
Steven Moreland
f8a47b7f01 Update makefiles.
Bug: 123976090
Test: N/A
Change-Id: I5fb6c126a090a3fe0fa4829ea9224564133dc1ae
2019-02-11 21:14:16 -08:00
Steven Moreland
94755be332 Merge "Update makefiles." am: b35c23e70c am: b37145e08e
am: d78f1f0d8e

Change-Id: If698913e654c92897db703d865e900e49fe6231d
2019-02-06 12:06:14 -08:00
Steven Moreland
941f105b60 Update makefiles.
Some of these are out of date.

Bug: N/A
Test: N/A
Change-Id: Ibf87fad9981d4e430a0bf797feadbb0bede232fc
2019-02-05 13:14:26 -08:00
Cheney Ni
24be23c073 Implementation of Bluetooth Audio HAL interface v2 am: 47a8309706 am: a0cb02ea1d
am: f7ea9db510

Change-Id: I5d4569240d793f744b78203aaa48254ca0a90bfb
2019-01-31 10:43:00 -08:00
Cheney Ni
c099848540 Merge "VTS for Bluetooth Audio HAL v2" am: 5203e215e2 am: bd032886ea
am: 7fcece8f73

Change-Id: Ie4319f5f95cd5e27cc73425504d1701e6c6aa3ee
2019-01-31 10:41:32 -08:00
Cheney Ni
47a8309706 Implementation of Bluetooth Audio HAL interface v2
This is the default implementation of Bluetooth Audio Hal v2, and 3
providers are defined.

* BluetoothAudioProvider is the default provider, which is a stub when
  no SessionType matched.
* A2dpSoftwareAudioProvider uses to replace the old A2DP legacy module
  and uses IPC via HIDL interface between Bluetooth stack and Audio HAL.
* HearingAidAudioProvider uses to replace the Hearing Aids module which
  uses UNIX socket as IPC and now there is HIDL based interface.

There is also a shared library named "libbluetooth_audio_session.so" to
provide the linkage directly between this HIDL and its HAL module,
bluetooth_audio. With this library, we can break the library dependency
and guarantee those symbols of libraries while compiling.

Bug: 111519504
Bug: 122503379
Test: boot and manual test

Change-Id: I54d86291482b7fb041a3ac3e171b68a4ed7bfa07
2019-01-31 18:16:54 +00:00
Cheney Ni
56d54f1655 VTS for Bluetooth Audio HAL v2
Initial VTS commit for the bluetooth.audio@2.0 HAL

Bug: 111519504
Test: VTS (VtsHalBluetoothAudioV2_0TargetTest) passed

Change-Id: Id607979724182de242c29747218f6b12880d6295
2019-01-30 17:18:32 -08:00
Ajay Panicker
56ac36d3ab Merge "Add getCodecCapabilities as a supported function." am: 7c2fd0b19a am: 79f0e34c83
am: 753b078297

Change-Id: I11a72dbba4b72910cd3ce65b0f80e14bc1e40385
2019-01-24 14:25:00 -08:00
Ajay Panicker
5f0e90ece7 Add getCodecCapabilities as a supported function.
Add the ability to get a list of supported codecs and their capabilites
through the HIDL interface.

Bug: 111519504
Test: Compile
Change-Id: I61dff240a98d59cb99b526d8988d0d0245140ee4
2019-01-23 15:33:59 -08:00
Pavlin Radoslavov
1ea96a3802 Bluetooth Audio HAL interface v2
Generalized Bluetooth Audio HAL interface.
It is similar to the original android.hardware.bluetooth.a2dp@1.0
interface with the following modifications:

* The session type can be one of the following:
  - A2DP Software Encoding Datapath
  - A2DP Hardware Encoding Datapath
  - Hearing Aid Software Encoding Datapath
* For Hardware Offload Datapath (A2DP), the HAL interface is used only
  for the control path
* For Software Encoding Datapath (A2DP or Hearing Aid), the HAL
  interface is used for both the control and data paths
* Added Delay Report support: IBluetoothAudioHost.getPresentationPosition()
  that was missing in the original android.hardware.bluetooth.a2dp@1.0
  HAL interface.
* Removed "oneway" calls to avoid potential reordering of HAL calls:
  b/111244402
* Updated SBC-specific codec configuration
* Added AAC-specific and LDAC-specific codec configuration
* Reorganized the original CodecConfiguration into two sections:
  - PcmDataConfiguration: Audio PCM data configuration
  - EncodedDataConfiguration: Encoded audio data codec configuration.
    It is used only if the HAL is responsible for encoding the PCM audio
    data.
* Added new HAL IBluetoothAudioProvidersFactory.
  It is used to open an audio provider for an audio session as specified by
  the session type and the codec configuration as negotiated with the
  remote device.

Bug: 111519504
Test: manual
Change-Id: I2ee4cf50b177baee077cf0b5143dbeadda57c8fb
Merged-In: I2ee4cf50b177baee077cf0b5143dbeadda57c8fb
(cherry picked from commit fcc0732db4)
2019-01-14 03:55:18 +08:00
Pavlin Radoslavov
fcc0732db4 Bluetooth Audio HAL interface v2
Generalized Bluetooth Audio HAL interface.
It is similar to the original android.hardware.bluetooth.a2dp@1.0
interface with the following modifications:

* The session type can be one of the following:
  - A2DP Software Encoding Datapath
  - A2DP Hardware Encoding Datapath
  - Hearing Aid Software Encoding Datapath
* For Hardware Offload Datapath (A2DP), the HAL interface is used only
  for the control path
* For Software Encoding Datapath (A2DP or Hearing Aid), the HAL
  interface is used for both the control and data paths
* Added Delay Report support: IBluetoothAudioHost.getPresentationPosition()
  that was missing in the original android.hardware.bluetooth.a2dp@1.0
  HAL interface.
* Removed "oneway" calls to avoid potential reordering of HAL calls:
  b/111244402
* Updated SBC-specific codec configuration
* Added AAC-specific and LDAC-specific codec configuration
* Reorganized the original CodecConfiguration into two sections:
  - PcmDataConfiguration: Audio PCM data configuration
  - EncodedDataConfiguration: Encoded audio data codec configuration.
    It is used only if the HAL is responsible for encoding the PCM audio
    data.
* Added new HAL IBluetoothAudioProvidersFactory.
  It is used to open an audio provider for an audio session as specified by
  the session type and the codec configuration as negotiated with the
  remote device.

Bug: 111519504
Test: manual
Change-Id: I2ee4cf50b177baee077cf0b5143dbeadda57c8fb
2019-01-11 12:04:51 +08:00
Keun Soo YIM
68ae05dd2d pack VTS cc_test binaries as general-tests
Test: make general-tests
Bug: 120093339
Merged-In: I363450d205868f900e4925ccff1430e2a569f2a4
Change-Id: I363450d205868f900e4925ccff1430e2a569f2a4
2018-12-07 10:49:56 -08:00
Jack He
5ab3677930 BT: Ignore vendor debug packets in TearDown
Test: make, VtsHalBluetoothV1_0TargetTest
Change-Id: Id965b3783f4e599f5389166c5a98e6ee35cee15c
2018-12-03 16:43:15 -08:00
Keun Soo YIM
ff84c37bc1 pack VTS cc_test binaries as general-tests
Test: make general-tests
Bug: 120093339
Change-Id: I363450d205868f900e4925ccff1430e2a569f2a4
2018-11-27 16:11:41 -08:00
Joseph Pirozzo
9ff8f0bf61 Merge "Initialize pointers for vendor_interface" 2018-11-13 22:48:31 +00:00
Joseph Pirozzo
c1e10a3369 Initialize pointers for vendor_interface
Default member variables to nullptr.

Bug: 118075338
Test: Inspection
Change-Id: I5fc8a5b45d2c1116036139e308743a1928abaef3
2018-11-13 10:38:31 -08:00
Jack He
886963274a BT: Make Bluetooth HCI VTS tests more stable
* Add a 200ms sleep after BluetoothHci->close() to give HAL an ample
  time to shutdown
* Add override modifier to certain serviceDied() callback
* Change from return to break in handle_no_ops
* Add more logging to TearDown()

Test: make, VtsHalBluetoothV1_0TargetTest
Bug: 119071943
Change-Id: I5c919a99fb651f8f52d1d34847e1f9b4325efcd5
2018-11-13 18:29:12 +00:00
Jack He
80f0ae6e2d BT: Use one OWNERS file per VTS directory
* Unfortunately, glob pattern in OWNERS file cannot include
  directory paths and hence **/vts/** mechanism doesn't work
* For now, we need an individual OWNERS file for each VTS directory that
  we have

Test: make
Change-Id: Iacad2cb78152c06829632126c210c9585dce2a31
2018-11-13 00:56:58 +00:00
Treehugger Robot
a6d6ed2ec3 Merge "BT: Fix glob pattern in owners file" 2018-11-12 18:57:54 +00:00
Zhuoyao Zhang
f1d854616e Fix android.hardware.bluetooth@1.0-service.rc
* Remove the action on property vts.native_server.on, the current one
  will actually turn off the BT HAL service

Bug: 118637723
Test: make vts
      vts-tradefed run vts -m VtsHalBluetoothV1_0Target

Change-Id: I5bcc0532d57c2f5f3b01a8df1bab8c358270ca73
2018-11-09 17:52:52 +00:00
Jack He
25c2469b9e BT: Fix glob pattern in owners file
- */vts/* only matches one layer of directories
  e.g. a/vts/b is matched, a/b/vts/c is not matched
- **/vts/** matches everything up to a/b/c/vts/d/e/f

Test: make
Change-Id: I57ea4f2ab2fdeef5929895c7443a1d1097985dba
2018-11-09 02:18:17 -08:00
Jack He
defedbf273 Bluetooth: Add OWNERS file to Bluetooth VTS tests
* Add Bluetooth related persons to OWNERS file for Bluetooth VTS tests
  so that it is easier to develop VTS tests in the future

Test: make
Change-Id: I202145344582f9a5ad9dd367da897f5982db57eb
2018-11-08 17:58:12 -08:00
Jack He
fac144bb80 VTS: Subscribe to death notification of HAL service
Test: make, run HciReset test
Change-Id: I03bfc115e2330eb92608c8020edfda898902eec8
2018-11-06 00:24:57 +00:00
Jack He
caeab05bdb Apply clang-format to Bluetooth related HAL code
- cp system/bt/.clang-format hardware/interfaces/bluetooth/
- modify hardware/interfaces/bluetooth/.clang-format to match context
- find . -type f \( -iname \*.cpp -o -iname \*.h -o -iname \*.cc \) | xargs clang-format --style=file -i

Test: make
Change-Id: I82e4f26e1efeb715aff7de8a15c3db06e02967a4
2018-10-23 18:22:10 -07:00
Jack He
4b50fcda51 VTS: Check return status of initialize and close
Test: atest VtsHalBluetoothV1_0TargetTest
Change-Id: I579c4d5f4c6e24b358c67c3dc8a8a8ceb1f936e2
2018-10-08 17:06:06 -07:00
Hansong Zhang
5b1813f077 VTS for Bluetooth A2DP HAL
Initial VTS commit for the bluetooth.a2dp@1.0 HAL

Test: VTS
Bug: 74900514
Change-Id: I752abc4878ee6a974ce3a17ad852e941783da022
2018-04-11 09:56:09 -07:00
Tom Cherry
97e3881d17 Add BLOCK_SUSPEND capability for Bluetooth HAL service
This is needed for some platforms

Bug: 74554159
Bug: 77213213
Test: walleye BT works
Change-Id: If0033c5a7fc09057415b27196fa4541e9aadfb4b
(cherry picked from commit 2d46875666)
2018-03-29 12:51:54 -07:00
Tom Cherry
345154cd0e Add capabilities to bluetooth HAL service
Bug: 74554159
Test: BT works on walleye
Change-Id: Ib2e1be66ae92ce742540a50cffc8c675db945655
(cherry picked from commit f03dbc6924)
2018-03-26 11:11:55 -07:00
Sunny Kapdi
e656214915 Bluetooth: A2DP offload HIDL
Interface for Bluetooth A2DP offload feature.

Bug: 63932139
Bug: 72242910
Test: Manual; TestTracker/148125
Change-Id: I3649800dfe3e1a2d66b76859be87e01ee58d2de0
(cherry picked from commit 4e95d81ef0)
2018-03-12 19:18:52 +00:00
Myles Watson
920a28f0d2 Bluetooth: Relax NO_OP and SCO checks am: 72382e3014 am: 4de5fba958
am: 3174a29883

Change-Id: I6eab0b25080645922f1498f92d4876308a689dfb
2018-03-01 22:14:55 +00:00
Myles Watson
72382e3014 Bluetooth: Relax NO_OP and SCO checks
Ignore NO_OP complete events.
Ignore ordering for Loopback Mode Connection/Command Complete.
Only check for SCO buffer size when SCO connections are made.

Bug: 69785298
Test: VtsHalBluetoothV1_0TargetTest
Change-Id: Ia1ead7ff942ffa369f88f61bcaaa8e03d7973179
2018-03-01 20:25:15 +00:00
Zhuoyao Zhang
c9936f2318 Convert bluetooth hal test to use VtsHalHidlTargetTestEnvBase am: 7a727ff3ec am: d87afe3938
am: 54544a94ec

Change-Id: I3392818680fcfea3fdd5d32c753ddc464eb54895
2018-02-13 18:11:41 +00:00
Zhuoyao Zhang
7a727ff3ec Convert bluetooth hal test to use VtsHalHidlTargetTestEnvBase
Bug: 64203181
Test: make vts
      vts-tradefed run vts -m VtsHalBluetoothV1_0Target

Change-Id: Ib6030ab0191913362ce54262c7ec8baa1f0bd147
2018-02-12 17:01:00 -08:00
Myles Watson
42643f8fa1 Bluetooth: Sleep instead of dying on EOF am: 0d63f8af7c am: e63d6a08ce
am: 7365ea5b9d

Change-Id: If88fda6729848f345a4645bff7f684b8f778994d
2018-01-10 01:44:13 +00:00
Myles Watson
0d63f8af7c Bluetooth: Sleep instead of dying on EOF
When a device is restarted, the UART may go away before the
packetizer.  Print an error and sleep in case it isn't really
a restart.

Bug: 70855323
Test: Repeated restarts, check for Bluetooth tombstones
Change-Id: I2b4e677451e826d40dcc9d063d80dc0e17fc9aca
2018-01-09 23:54:05 +00:00
Lianchao Song
893798b19b BT Interface: fix hci cmd timeout am: 424ffd0da5 am: fc0e8c6f48
am: 6991b9f428

Change-Id: I6daa5c12ddd45ef212ac47369005cbb625527e7d
2018-01-09 23:26:24 +00:00
Lianchao Song
424ffd0da5 BT Interface: fix hci cmd timeout
Add mutex in function Send() and OnTimeout() to do mutual
exclusive access on lpm_wake_deasserted.

If lpm_wake_deasserted is out of sync with the actual
wake state, then platforms which use the lpm hint
will break.

Bug: 64299848
Test: run affected platform for a long period of time
and find that hci commands do not time out
Change-Id: I9f630d6f40f84b9c047c6488632cd44d6602bb14
2018-01-09 21:14:47 +00:00
Dan Willemsen
fbe95d5c0f Fix problem found with host bionic fortify checks am: dc1921810e am: 6737d81d15
am: ca253762cb

Change-Id: Ie33aa142f0af34f640397c29baf5d8076b89dc32
2017-12-01 04:37:31 +00:00