Commit Graph

9380 Commits

Author SHA1 Message Date
Chia-I Wu
efd99206d0 graphics: make mapper 2.1 VTS utils more reusable
Move V2_1::vts::Gralloc to android.hardware.graphics.mapper@2.1-vts.

Test: VTS
Change-Id: Iecb7fc3cb90b886ad2d9c23a5cab8aef2da6367f
2018-02-02 07:30:38 +00:00
Chia-I Wu
98923fccad graphics: make mapper VTS utils more reusable
Better include path (#include <mapper-vts/2.0/MapperVts.h>), better
library naming, and move GraphicsMapperHidlEnvironment to where
tests are defined.

Test: VTS
Change-Id: I9fbf6515993ac11852b11ca6b8194a58afe5579a
2018-02-02 07:29:25 +00:00
Chia-I Wu
7d510c91f0 Merge changes from topic "gralloc-mapper-cleanup" am: 779a7aa37a am: 3b1e1fdac1
am: 979b233827

Change-Id: Ic42426c1f31bbc8732995eb8e744bd093d1c2071
2018-02-02 06:56:55 +00:00
Ruchi Kandoi
54791a993b Merge "Add VTS Test for Secure Element HAL" am: 6a75cdbe96 am: 3b24df528a
am: 6e3948f36b

Change-Id: I0a360479fd9f31352bacb4b857672f642c99b253
2018-02-02 06:55:31 +00:00
Ruchi Kandoi
a0dc2c9089 Add NFC HAL 1.1 am: 4475917d65 am: 6fa5f5bbfd
am: ac564248bc

Change-Id: I8a54f823d3b754753cfe804d8d60755aa09a67bb
2018-02-02 06:54:22 +00:00
Chia-I Wu
979b233827 Merge changes from topic "gralloc-mapper-cleanup" am: 779a7aa37a
am: 3b1e1fdac1

Change-Id: I4b2f10410049b05689b71b29a892703797ecdcd0
2018-02-02 04:21:58 +00:00
Ruchi Kandoi
6e3948f36b Merge "Add VTS Test for Secure Element HAL" am: 6a75cdbe96
am: 3b24df528a

Change-Id: Id3458e6a4826c7e4f0f05d9a38d802d9c7dc5488
2018-02-02 04:20:34 +00:00
Ruchi Kandoi
ac564248bc Add NFC HAL 1.1 am: 4475917d65
am: 6fa5f5bbfd

Change-Id: I19cb422b8db03cae7509fbd784990353570b5f06
2018-02-02 04:19:05 +00:00
TreeHugger Robot
02fbe63100 Merge "Audio V4: Create audio V4.0 .hal makefiles" 2018-02-02 03:38:20 +00:00
TreeHugger Robot
b14f34839d Merge changes from topic "audio-hal-v4"
* changes:
  Audio V4: More fixes of the audio 2.0 API
  Audio V4: Support query microphones information
  Audio V4: Only expose one notification usage
  Audio V4: Add new api in XSD
  Audio V4: Copy audio_policy_configure.xsd 2.0 to 4.0
  Audio V4: Forward tracks attributes to the hal
  Audio V4: Remove deprecated function and enum
  Audio V4: bitfield enum now use the bitfield class
  Audio V4: Add MSD formats and Device
  Audio V4: Add new Audio HAL API
  Audio V4: Remove all non extensible enum value
  Audio V4: Fix doc comments for hidl-doc
  Audio V4: Fix documentation and useable/untestable bugs
  Audio V4: Copy 2.0 .hal files in 4.0
2018-02-02 02:28:34 +00:00
Michael Butler
5dd8a9909b Merge "Add README to NeuralNetworks HAL" 2018-02-02 01:15:39 +00:00
Kevin Rocard
87ac081930 Audio V4: Create audio V4.0 .hal makefiles
Run update-makefiles.sh to create all HAL makefiles.

Test: update-makefiles.sh
Bug: 38184704
Change-Id: I2532c4b9d1f0f6252ceaffbfb0c5d0a615400c72
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 16:17:34 -08:00
Kevin Rocard
eacb99697f Audio V4: More fixes of the audio 2.0 API
Remove unnecessary Result typedef.
Make bufferSizeFrames and burstSizeFrames unsigned
as they should not be negative.
Remove legacy AudioInterleave.
Remove implicit callflow annotation.
Make EffectConfigParameters a bitfield.

Bug: 38184704
Test: hardware/interfaces/update-makefiles.py
Change-Id: I33e6f7869d20ca0cad4123f32347754e5a514caa
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 16:17:34 -08:00
Ricardo Garcia
520e53d346 Audio V4: Support query microphones information
Get list of all/currently active microphones from hardware.
Part of the device enumeration feature.

Bug: 64038649
Test: test/vts-testcase/hal/script/update_makefiles.py
Change-Id: I08051f1d6013672dea8f3866776864e87ff35297
Rebased for 4.0 by:
Signed-off-by: Kevin Rocard <krocard@google.com>
Originally written by:
Signed-off-by: Ricardo Garcia <rago@google.com>
2018-02-01 16:17:34 -08:00
Kevin Rocard
c8d7bb7c84 Audio V4: Only expose one notification usage
Too many usages detail were previously exposed to the HAL.
All usages that should be handled identically by the HAL
are now the same value.

 - All notification types are now the same usages

Test: build
Bug: 38184704
Change-Id: I2096f995e249ab02bc29449c6d1a65b521dc13f7
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 16:17:34 -08:00
Eric Laurent
34daac8485 Audio V4: Add new api in XSD
Allow multiple concurrent opened profiles.
Allow mixPort to declare their preferred usage.
Allow to declare the default devicePort for a device type.

Bug: 38184704
Test: xmllint --noout --schema hardware/interfaces/audio/4.0/config/audio_policy_configuration.xsd  --xinclude out/target/product/taimen/vendor/etc/audio_policy_configuration.xml
Change-Id: If2afd9e83f8b023e6229496759dc525497af8d72
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 16:17:34 -08:00
Kevin Rocard
9efddc5596 Audio V4: Copy audio_policy_configure.xsd 2.0 to 4.0
That will make it easier to review the changes between 2.0 and 4.0.

Bug: 38184704
Test: none
Change-Id: Icb36a5b6e74ad89fb05dfe3ceee7b7f81801918d
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 16:17:34 -08:00
Kevin Rocard
14dbb1edce Audio V4: Forward tracks attributes to the hal
Forward to the HAL the audio usage, audio content types and volume
of playback tracks to the stream out they are playing to.

Forward to the HAL the audio source and volume of record tracks
to the stream in they are playing to.

This will allow the HAL to better tune its effects and remove the need
to inject a fake effect (volume listener) to get the tracks volume.

Bug: 38184704
Test: none
Change-Id: Iede0f7aa518608c3b3ce1497f059f672aac109b2
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 16:17:34 -08:00
Chia-I Wu
3b1e1fdac1 Merge changes from topic "gralloc-mapper-cleanup"
am: 779a7aa37a

Change-Id: Ia48ae7515fac374a5a99efcb8b230b4f3dca57f0
2018-02-02 00:14:12 +00:00
Ruchi Kandoi
3b24df528a Merge "Add VTS Test for Secure Element HAL"
am: 6a75cdbe96

Change-Id: Ie97c14471a2bf155ce338de42a32a761e76e8d76
2018-02-02 00:13:00 +00:00
Ruchi Kandoi
6fa5f5bbfd Add NFC HAL 1.1
am: 4475917d65

Change-Id: I4b0303f62687357b26f0c542eeee0ba37409fee8
2018-02-02 00:08:56 +00:00
Kevin Rocard
0fd5bc2dce Audio V4: Remove deprecated function and enum
The debugDump function was deprecated by the introduction of the
debug method in the IBase.

AudioMode CURRENT and INVALID should not be passed to the
vendor.

Bug: 38184704
Test: none
Change-Id: I0e14c71ce7216524587a6ba28cae0cdb821bae23
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 15:24:25 -08:00
Kevin Rocard
79c574082d Audio V4: bitfield enum now use the bitfield class
The audio HAL has lots of enums were each value is a specific bit
pattern (usually a single bit) and are expected to be used as a
combination of value (kind of like a bitfield).

Nevertheless the 2.0 methods only had the enums themselves in their
signatures which leads the HIDL API checkers to warn that invalid values
were passed.

Currently, there are no way to express a value which is a combination
of enum values. The closest thing is the bitfield type.

Thus transition all enums combination to bitfield.

Note that AudioDevice as NOT been transition systematically
as both the enums and the combination are meaningful:
 - the enum is one device
 - the combination is a list of device.

Test: none
Bug: 38184704
Change-Id: I155cf7bc5d88fc5cf8954903d55aa8d7ca458a4b
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-02-01 15:24:25 -08:00
Michael Butler
3530f9ef0d Add README to NeuralNetworks HAL
Adds README explaining where to find the NeuralNetworks sample driver.

Test: N/A
Change-Id: Ifbbbbb3801176da27fb03bbed0b0d739031a195b
2018-02-01 13:49:49 -08:00
Chia-I Wu
779a7aa37a Merge changes from topic "gralloc-mapper-cleanup"
* changes:
  graphics: move libVtsHalGraphicsMapperTestUtils
  graphics: make mapper default impl a header library
  graphics: add mapper HAL support library
  graphics: make allocator passthrough library header-only
2018-02-01 20:53:26 +00:00
Ruchi Kandoi
6a75cdbe96 Merge "Add VTS Test for Secure Element HAL" 2018-02-01 18:08:23 +00:00
Ruchi Kandoi
4475917d65 Add NFC HAL 1.1
Adds factoryReset(). This must be used by the HAL to clear the chip and
use the do a full initialization at the next init.

Adds closeForPowerOffCase(). There are vendor specific
configurations that are need during NFC power off to enable low battery
and power off use cases. This will distinguish cases where the user
turns NFC off because they do not want to use NFC and NFC is turned off
as a result of device switched off.

HCI_NETWORK_RESET event has been added to indicate something went wrong
on the firmware level and HCI network needs to be re-initialized.

Bug: 70294869
Bug: 70294551
Test: Run VtsHalNfcV1_1TargetTest
Change-Id: Ib981a56ac94e06b74bd901a159791f09ea16483a
2018-02-01 16:32:07 +00:00
Dean Wheatley
fd64afb0fd Audio V4: Add MSD formats and Device
Add MAT 1.0, 2.0, 2.1 audio formats
Add 5.1.2, 5.1.4, 7.1.2, 7.1.4 output channel masks
Add E_AC3_JOC audio format
Add MSD Device to allow an MSD HAL implementation separated from the
primary.

Bug: 38184704
Test: none
Change-Id: I2f488462614114e4c82149460b030585981ae15e
Original author:
Signed-off-by: Dean Wheatley <dwhea@dolby.com>
Ported to HAL 4.0:
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-31 23:09:23 -08:00
Kevin Rocard
8b010d2421 Audio V4: Add new Audio HAL API
Add new device to the device factory to allow vendors to split
their HAL implementations more.

AudioDevice bitfield is now 64bit to allow more devices to be added.

Add a new AudioDevice to support playing music to distant during voice
call.

A HAL can now declare if its MMAP buffer can be securely accessed
directly by untrusted apps.

Add AAC_XHE format.

Add BLE input source.

Bug: 38184704
Test: none
Change-Id: Ic2fbec4db71c7f688c8847ba39c72f51480c0727
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-31 23:09:23 -08:00
Kevin Rocard
71afcf1f87 Audio V4: Remove all non extensible enum value
The CNT, MAX enum values had two drawbacks:
 - they were invalid enum value that were part of the enum
   thus enum validity check would validate them although those values
   are only expected to be use in loops/validation code.
 - they are not extensible by vendors

The *_ALL enum values were not extensible by vendors.

Those values can instead be replaced by treble enum iterator and
helper functions.

Bug: 38184704
Test: none
Change-Id: I1a9527bb7311088e0abe22eceee92d21d9171ca4
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-31 23:09:23 -08:00
Kevin Rocard
260470f7b7 Audio V4: Fix doc comments for hidl-doc
hidl-doc does not support two consecutive documentation comments
/** ... */
/** ... */

In such case make the first one a non-doc comment.

This is a port of: http://android-review.googlesource.com/432140

Bug: 38184704
Test: none
Change-Id: I86cb10c655036ca49055ee007813c3e5af743eb5
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-31 23:09:23 -08:00
Kevin Rocard
74980b56eb Audio V4: Fix documentation and useable/untestable bugs
Add missing documentation, especially for failure cases
and methods that are optional.
Add missing operation status for testability.
Add format for getSupported* methods as they could not
be implemented in 2.0 for multi-format stream (HDMI).

Test: compile
Bug: 38184704
Change-Id: I14ee5e02ef70a82df6de732f88b065810e9b032f
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-31 23:09:23 -08:00
Chia-I Wu
5255c35a70 graphics: move libVtsHalGraphicsMapperTestUtils
Move libVtsHalGraphicsMapperTestUtils from 2.0/vts/functional/ to
2.0/utils/vts/.  Run clang-format.

Test: VTS
Change-Id: I1e87129cbdc12167160f7e2f1cd76478e88bbf41
2018-01-31 15:11:50 -08:00
Chia-I Wu
821c4c4a9d graphics: make mapper default impl a header library
Reimplement the default impl as a header-only library,
android.hardware.graphics.mapper@2.0-passthrough, based on the HAL
support library.

Effectively, this renames Gralloc[01]Mapper to Gralloc[01]Hal, and
make adjustments here and there to meet the requirements of the HAL
support library.  This also adds GrallocLoader to load either of
Gralloc[01]Hal and create an IMapper instance.

libgrallocmapperincludes is renamed to follow the new naming and
include path conventions.

Test: boots and VTS
Change-Id: I924cadce9a10a6e544f99ceba63aadc38ec431ac
2018-01-31 15:11:50 -08:00
Chia-I Wu
fd1924f6f5 graphics: add mapper HAL support library
Add a header-only support library
android.hardware.graphics.mapper@2.0-hal that can be used by
implementations.  There are two classes in the support library.
MapperHal is an abstract class to be implemented by implementations.
Mapper is an implementation of HIDL IMapper interface on top of
MapperHal.

An implementation can

  class VendorHal : public MapperHal { ... };

  auto mapper = std::make_unique<Mapper>();
  mapper->init(std::make_unique<VendorHal>(...));

Or, if vendor extensions are to be added to the IMapper,

  class MapperHalExt : public MapperHal { ... };
  class VendorHal : public MapperHalExt { ... };
  class MapperExt : public MapperImpl<IMapperExt, MapperHalExt> { ... };

  auto mapper = std::make_unique<MapperExt>();
  mapper->init(std::make_unique<VendorHal>(...));

Test: builds
Change-Id: Ib23c1f5977744f7e116bb93db53e882e2dad7ce3
2018-01-31 15:11:50 -08:00
Chia-I Wu
422b94e002 graphics: make allocator passthrough library header-only
android.hardware.graphics.allocator@2.0-passthrough should be a
header-only library to be fully reusable by vendor HALs.

This also allows us to switch from virtual inheritance to templates,
which is more straightforward.  This changes nothing to the users
and we still have these relations

 - AllocatorHal is an abstract class to be implemented by vendors or
   the default implementations
 - Gralloc[01]Hal are our default implementations
 - Allocator implements HIDL IAllocator interface on top of
   AllocatorHal

What we do not like about virtual inheritance is that, given

  // abstract class B and D
  class B {
    virtual void foo() = 0;
    virtual void bar() = 0;
  };
  class D : public virtual B {
    // foo is superceded by fooEnhanced in D
    void foo() { fooEnhanced(); }
    virtual void fooEnhanced() = 0;
  };

  // an implementation of B
  class BImpl : public virtual B {
    void foo() {}
    void bar() {}
  };

  // an implementation of D on top of BImpl
  class DImpl : public virtual D, public virtual BImpl {
    void fooEnhanced() {}
  };

we get "no unique final overrider" becase both D and BImpl implement
foo.  With non-virtual inheritance, on the other hand, we get "DImpl
is abstract" because foo is still pure virtual implemented in DImpl.
Templates solve the issue by allowing

  namespace detail{
  template<typename T>
  class BImpl : public T { ... };

  template<typename T>
  class DImpl : public BImpl<T> { ... };
  } // namespace detail

  using BImpl = detail::BImpl<B>;
  using DImpl = detail::DImpl<D>;

Test: boots
Change-Id: Iccb513e4fc751e9a687a1ed2d9fb2192c8324a50
2018-01-31 15:11:50 -08:00
TreeHugger Robot
52d951b8eb Merge "Add GNSS VTS test for IGnssDebug.TimeDebug values sanity check" 2018-01-31 22:38:27 +00:00
Ruchi Kandoi
22a4d0e07e Add VTS Test for Secure Element HAL
Test: Run VTS test
Bug: 64881253
Change-Id: If77d87c88bd073409dce3d18aba8f15a1267a80e
2018-01-31 11:51:48 -08:00
Kevin Rocard
a4e6d8b1de Audio V4: Copy 2.0 .hal files in 4.0
That will ease review of the changes.
The only changes are:
 - replace all @2.0 by 4.0
   $ sed -i 's/@2\.0/@4\.0/g' */4.0/*.hal
 - replace all licence 2016 by 2018
   $ sed -i 's/2016/2018/g' */4.0/*.hal

Moving the .hal in a subfolder forces the package name and the
namespace to change.

This mean that the audio HAL 2.0 and 4.0 will not be consider
different version of the same HAL but two different HALs.

As a result to minimize code change due to tight deadline,
keep the 4.0 core in the audio folder.

Bug: 38184704
Test: hardware/interfaces/update-makefiles.sh
Change-Id: I7c7a826270c9933091f037b795806787e1284583
Signed-off-by: Kevin Rocard <krocard@google.com>
2018-01-31 10:39:47 -08:00
Miao Wang
1bdf3d835c Merge "Create NeuralNetworks HAL v1.1 for new OperationTypes" 2018-01-31 17:34:30 +00:00
Yifan Hong
9fe3cc4e34 health 2.0: update README for typo. am: de542acbbf am: 6271c38c90
am: a9e9f9182d

Change-Id: Ia2997a95ca4034e79895197c56206e0cd0a7a379
2018-01-31 02:33:45 +00:00
Yifan Hong
5c32b61858 health: add README. am: 3e6dbcbc30 am: 28068121ce
am: ed795844a6  -s ours

Change-Id: I04114c54a61805a630c7754e173d4dcec6c49361
2018-01-31 02:33:39 +00:00
Ruchi Kandoi
8d358cb471 Add SecureElement HAL interface am: 241e5aba9e am: a9938a3d57
am: 8d25fb59e8

Change-Id: I008784ef03794a369466b6f76026b1afd5eb2987
2018-01-31 02:33:18 +00:00
Yifan Hong
a9e9f9182d health 2.0: update README for typo. am: de542acbbf
am: 6271c38c90

Change-Id: I9f5b13e620efe65e4917da5446035f1e691cf888
2018-01-31 02:10:09 +00:00
Yifan Hong
ed795844a6 health: add README. am: 3e6dbcbc30
am: 28068121ce

Change-Id: I69690fd96d566d1d38e81314bdcd3d010c609fb7
2018-01-31 02:10:04 +00:00
Ruchi Kandoi
8d25fb59e8 Add SecureElement HAL interface am: 241e5aba9e
am: a9938a3d57

Change-Id: Ibac179a8a996d97cea169d12e776ca8e71b49301
2018-01-31 02:09:47 +00:00
Yifan Hong
6271c38c90 health 2.0: update README for typo.
am: de542acbbf

Change-Id: Id443c3ea9949d77119d9e619a85f8fe53ca64f3b
2018-01-31 01:58:16 +00:00
Yifan Hong
28068121ce health: add README.
am: 3e6dbcbc30

Change-Id: If4d64db9bb3febed1a5d48f2d24d8a158a0880d9
2018-01-31 01:58:11 +00:00
Ruchi Kandoi
a9938a3d57 Add SecureElement HAL interface
am: 241e5aba9e

Change-Id: I80adcfbfe36c6bcb0a2b1e3e52624d92781c58cf
2018-01-31 01:57:52 +00:00
TreeHugger Robot
bc72cdf1ea Merge "Remove unused property from Vehicle HAL" 2018-01-31 01:30:30 +00:00