summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc2
-rw-r--r--automotive/vehicle/2.0/types.hal5
-rw-r--r--camera/device/3.2/default/CameraDeviceSession.cpp25
-rw-r--r--confirmationui/1.0/default/service.cpp1
-rw-r--r--current.txt4
-rw-r--r--gnss/1.1/default/Gnss.cpp4
-rw-r--r--gnss/1.1/vts/functional/gnss_hal_test_cases.cpp17
-rw-r--r--graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp9
-rw-r--r--graphics/composer/2.2/IComposerClient.hal3
-rw-r--r--graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp19
-rw-r--r--keymaster/4.0/default/service.cpp1
11 files changed, 70 insertions, 20 deletions
diff --git a/audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc b/audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc
index a76770d7..8217b946 100644
--- a/audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc
+++ b/audio/common/all-versions/default/service/android.hardware.audio@2.0-service.rc
@@ -9,3 +9,5 @@ service vendor.audio-hal-2-0 /vendor/bin/hw/android.hardware.audio@2.0-service
9 # and its .rc file has an "onrestart restart audio-hal" rule, thus 9 # and its .rc file has an "onrestart restart audio-hal" rule, thus
10 # an additional auto-restart from the init process isn't needed. 10 # an additional auto-restart from the init process isn't needed.
11 oneshot 11 oneshot
12 interface android.hardware.audio@4.0::IDevicesFactory default
13 interface android.hardware.audio@2.0::IDevicesFactory default
diff --git a/automotive/vehicle/2.0/types.hal b/automotive/vehicle/2.0/types.hal
index a031ee98..57179dfd 100644
--- a/automotive/vehicle/2.0/types.hal
+++ b/automotive/vehicle/2.0/types.hal
@@ -501,7 +501,8 @@ enum VehicleProperty : int32_t {
501 /** 501 /**
502 * Tire pressure 502 * Tire pressure
503 * 503 *
504 * The min/max range is used to indicate the recommended tire pressure. 504 * min/max value indicates tire pressure sensor range. Each tire will have a separate min/max
505 * value denoted by its areaConfig.areaId.
505 * 506 *
506 * @change_mode VehiclePropertyChangeMode:CONTINUOUS 507 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
507 * @access VehiclePropertyAccess:READ 508 * @access VehiclePropertyAccess:READ
@@ -510,7 +511,7 @@ enum VehicleProperty : int32_t {
510 TIRE_PRESSURE = ( 511 TIRE_PRESSURE = (
511 0x0309 512 0x0309
512 | VehiclePropertyGroup:SYSTEM 513 | VehiclePropertyGroup:SYSTEM
513 | VehiclePropertyType:MIXED 514 | VehiclePropertyType:FLOAT
514 | VehicleArea:WHEEL), 515 | VehicleArea:WHEEL),
515 516
516 /** 517 /**
diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp
index f33da134..8d002646 100644
--- a/camera/device/3.2/default/CameraDeviceSession.cpp
+++ b/camera/device/3.2/default/CameraDeviceSession.cpp
@@ -18,6 +18,7 @@
18#include <android/log.h> 18#include <android/log.h>
19 19
20#include <set> 20#include <set>
21#include <cutils/properties.h>
21#include <utils/Trace.h> 22#include <utils/Trace.h>
22#include <hardware/gralloc.h> 23#include <hardware/gralloc.h>
23#include <hardware/gralloc1.h> 24#include <hardware/gralloc1.h>
@@ -31,9 +32,9 @@ namespace V3_2 {
31namespace implementation { 32namespace implementation {
32 33
33// Size of request metadata fast message queue. Change to 0 to always use hwbinder buffer. 34// Size of request metadata fast message queue. Change to 0 to always use hwbinder buffer.
34static constexpr size_t CAMERA_REQUEST_METADATA_QUEUE_SIZE = 1 << 20 /* 1MB */; 35static constexpr int32_t CAMERA_REQUEST_METADATA_QUEUE_SIZE = 1 << 20 /* 1MB */;
35// Size of result metadata fast message queue. Change to 0 to always use hwbinder buffer. 36// Size of result metadata fast message queue. Change to 0 to always use hwbinder buffer.
36static constexpr size_t CAMERA_RESULT_METADATA_QUEUE_SIZE = 1 << 20 /* 1MB */; 37static constexpr int32_t CAMERA_RESULT_METADATA_QUEUE_SIZE = 1 << 20 /* 1MB */;
37 38
38// Metadata sent by HAL will be replaced by a compact copy 39// Metadata sent by HAL will be replaced by a compact copy
39// if their (total size >= compact size + METADATA_SHRINK_ABS_THRESHOLD && 40// if their (total size >= compact size + METADATA_SHRINK_ABS_THRESHOLD &&
@@ -95,14 +96,30 @@ bool CameraDeviceSession::initialize() {
95 return true; 96 return true;
96 } 97 }
97 98
99 int32_t reqFMQSize = property_get_int32("ro.camera.req.fmq.size", /*default*/-1);
100 if (reqFMQSize < 0) {
101 reqFMQSize = CAMERA_REQUEST_METADATA_QUEUE_SIZE;
102 } else {
103 ALOGV("%s: request FMQ size overridden to %d", __FUNCTION__, reqFMQSize);
104 }
105
98 mRequestMetadataQueue = std::make_unique<RequestMetadataQueue>( 106 mRequestMetadataQueue = std::make_unique<RequestMetadataQueue>(
99 CAMERA_REQUEST_METADATA_QUEUE_SIZE, false /* non blocking */); 107 static_cast<size_t>(reqFMQSize),
108 false /* non blocking */);
100 if (!mRequestMetadataQueue->isValid()) { 109 if (!mRequestMetadataQueue->isValid()) {
101 ALOGE("%s: invalid request fmq", __FUNCTION__); 110 ALOGE("%s: invalid request fmq", __FUNCTION__);
102 return true; 111 return true;
103 } 112 }
113
114 int32_t resFMQSize = property_get_int32("ro.camera.res.fmq.size", /*default*/-1);
115 if (resFMQSize < 0) {
116 resFMQSize = CAMERA_RESULT_METADATA_QUEUE_SIZE;
117 } else {
118 ALOGV("%s: result FMQ size overridden to %d", __FUNCTION__, resFMQSize);
119 }
104 mResultMetadataQueue = std::make_shared<RequestMetadataQueue>( 120 mResultMetadataQueue = std::make_shared<RequestMetadataQueue>(
105 CAMERA_RESULT_METADATA_QUEUE_SIZE, false /* non blocking */); 121 static_cast<size_t>(resFMQSize),
122 false /* non blocking */);
106 if (!mResultMetadataQueue->isValid()) { 123 if (!mResultMetadataQueue->isValid()) {
107 ALOGE("%s: invalid result fmq", __FUNCTION__); 124 ALOGE("%s: invalid result fmq", __FUNCTION__);
108 return true; 125 return true;
diff --git a/confirmationui/1.0/default/service.cpp b/confirmationui/1.0/default/service.cpp
index 58ec66ab..39f3f62b 100644
--- a/confirmationui/1.0/default/service.cpp
+++ b/confirmationui/1.0/default/service.cpp
@@ -27,6 +27,7 @@ using android::hardware::joinRpcThreadpool;
27using android::hardware::confirmationui::V1_0::implementation::ConfirmationUI; 27using android::hardware::confirmationui::V1_0::implementation::ConfirmationUI;
28 28
29int main() { 29int main() {
30 ::android::hardware::configureRpcThreadpool(1, true /*willJoinThreadpool*/);
30 auto confirmationui = new ConfirmationUI(); 31 auto confirmationui = new ConfirmationUI();
31 auto status = confirmationui->registerAsService(); 32 auto status = confirmationui->registerAsService();
32 if (status != android::OK) { 33 if (status != android::OK) {
diff --git a/current.txt b/current.txt
index 3f3bd534..9ddfdb63 100644
--- a/current.txt
+++ b/current.txt
@@ -311,7 +311,7 @@ f2904a4c108ad1b93eb2fa4e43b82bd01ce1ff26156316e49d1d9fc80dfecaad android.hardwar
3113b17c1fdfc389e0abe626c37054954b07201127d890c2bc05d47613ec1f4de4f android.hardware.automotive.evs@1.0::types 3113b17c1fdfc389e0abe626c37054954b07201127d890c2bc05d47613ec1f4de4f android.hardware.automotive.evs@1.0::types
312b3caf524c46a47d67e6453a34419e1881942d059e146cda740502670e9a752c3 android.hardware.automotive.vehicle@2.0::IVehicle 312b3caf524c46a47d67e6453a34419e1881942d059e146cda740502670e9a752c3 android.hardware.automotive.vehicle@2.0::IVehicle
3137ce8728b27600e840cacf0a832f6942819fe535f9d3797ae052d5eef5065921c android.hardware.automotive.vehicle@2.0::IVehicleCallback 3137ce8728b27600e840cacf0a832f6942819fe535f9d3797ae052d5eef5065921c android.hardware.automotive.vehicle@2.0::IVehicleCallback
3143562503f550f70eec7a688343a600fb92b74efb807a31452b70195dfab328b22 android.hardware.automotive.vehicle@2.0::types 31406fa7218fb1500acca69b265a7e697b885933f7146cd6e8d83fe6c1fa06ce876 android.hardware.automotive.vehicle@2.0::types
31532cc50cc2a7658ec613c0c2dd2accbf6a05113b749852879e818b8b7b438db19 android.hardware.bluetooth.a2dp@1.0::IBluetoothAudioHost 31532cc50cc2a7658ec613c0c2dd2accbf6a05113b749852879e818b8b7b438db19 android.hardware.bluetooth.a2dp@1.0::IBluetoothAudioHost
316ff4be64d7992f8bec97dff37f35450e79b3430c61f85f54322ce45bef229dc3b android.hardware.bluetooth.a2dp@1.0::IBluetoothAudioOffload 316ff4be64d7992f8bec97dff37f35450e79b3430c61f85f54322ce45bef229dc3b android.hardware.bluetooth.a2dp@1.0::IBluetoothAudioOffload
31727f22d2e873e6201f9620cf4d8e2facb25bd0dd30a2b911e441b4600d560fa62 android.hardware.bluetooth.a2dp@1.0::types 31727f22d2e873e6201f9620cf4d8e2facb25bd0dd30a2b911e441b4600d560fa62 android.hardware.bluetooth.a2dp@1.0::types
@@ -342,7 +342,7 @@ a830336ac8627d6432cfafb1b884343ad9f885dee0a5323e380e6d3c519156b8 android.hardwar
3420b96e0254e2168cfecb30c1ed5fb42681652cc00faa68c6e07568fafe64d1d50 android.hardware.graphics.common@1.1::types 3420b96e0254e2168cfecb30c1ed5fb42681652cc00faa68c6e07568fafe64d1d50 android.hardware.graphics.common@1.1::types
3437d2cef99c838fb58038de8bbfd3cdb76ff4797241987077721715297f8d45e34 android.hardware.graphics.common@1.1::types # b/78135149 3437d2cef99c838fb58038de8bbfd3cdb76ff4797241987077721715297f8d45e34 android.hardware.graphics.common@1.1::types # b/78135149
344d9b40a5b09962a5a0780b10fe33a4e607e69e2e088fc83de88a584115b7cb1c0 android.hardware.graphics.composer@2.2::IComposer 344d9b40a5b09962a5a0780b10fe33a4e607e69e2e088fc83de88a584115b7cb1c0 android.hardware.graphics.composer@2.2::IComposer
345e7717f2ff2f6db43b24370ff08e14cd353da3004b32b17740e4a7ed4894b7e45 android.hardware.graphics.composer@2.2::IComposerClient 345a2f183f7fcc79aabedaef11095ab223aac0ed5ef984d850893872515e7f560c7 android.hardware.graphics.composer@2.2::IComposerClient
346dd83be076b6b3f10ed62ab34d8c8b95f2415961fb785200eb842e7bfb2b0ee92 android.hardware.graphics.mapper@2.1::IMapper 346dd83be076b6b3f10ed62ab34d8c8b95f2415961fb785200eb842e7bfb2b0ee92 android.hardware.graphics.mapper@2.1::IMapper
347675682dd3007805c985eaaec91612abc88f4c25b3431fb84070b7584a1a741fb android.hardware.health@2.0::IHealth 347675682dd3007805c985eaaec91612abc88f4c25b3431fb84070b7584a1a741fb android.hardware.health@2.0::IHealth
348434c4c32c00b0e54bb05e40c79503208b40f786a318029a2a4f66e34f10f2a76 android.hardware.health@2.0::IHealthInfoCallback 348434c4c32c00b0e54bb05e40c79503208b40f786a318029a2a4f66e34f10f2a76 android.hardware.health@2.0::IHealthInfoCallback
diff --git a/gnss/1.1/default/Gnss.cpp b/gnss/1.1/default/Gnss.cpp
index bbc4940c..bbf1cd31 100644
--- a/gnss/1.1/default/Gnss.cpp
+++ b/gnss/1.1/default/Gnss.cpp
@@ -227,7 +227,9 @@ Return<GnssSvStatus> Gnss::getMockSvStatus() const {
227 getSvInfo(5, GnssConstellationType::GPS, 27.0, 29.0, 56.5), 227 getSvInfo(5, GnssConstellationType::GPS, 27.0, 29.0, 56.5),
228 getSvInfo(17, GnssConstellationType::GPS, 30.5, 71.0, 77.0), 228 getSvInfo(17, GnssConstellationType::GPS, 30.5, 71.0, 77.0),
229 getSvInfo(26, GnssConstellationType::GPS, 24.1, 28.0, 253.0), 229 getSvInfo(26, GnssConstellationType::GPS, 24.1, 28.0, 253.0),
230 getSvInfo(30, GnssConstellationType::GPS, 20.5, 11.5, 116.0), 230 getSvInfo(5, GnssConstellationType::GLONASS, 20.5, 11.5, 116.0),
231 getSvInfo(17, GnssConstellationType::GLONASS, 21.5, 28.5, 186.0),
232 getSvInfo(18, GnssConstellationType::GLONASS, 28.3, 38.8, 69.0),
231 getSvInfo(10, GnssConstellationType::GLONASS, 25.0, 66.0, 247.0)}; 233 getSvInfo(10, GnssConstellationType::GLONASS, 25.0, 66.0, 247.0)};
232 234
233 GnssSvStatus svStatus = {.numSvs = sizeof(mockGnssSvInfoList) / sizeof(GnssSvInfo)}; 235 GnssSvStatus svStatus = {.numSvs = sizeof(mockGnssSvInfoList) / sizeof(GnssSvInfo)};
diff --git a/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp b/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp
index 8f4691e1..cce46f18 100644
--- a/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp
+++ b/gnss/1.1/vts/functional/gnss_hal_test_cases.cpp
@@ -84,15 +84,15 @@ TEST_F(GnssHalTest, GetLocationLowPower) {
84} 84}
85 85
86/* 86/*
87 * FindStrongFrequentSource: 87 * FindStrongFrequentNonGpsSource:
88 * 88 *
89 * Search through a GnssSvStatus list for the strongest satellite observed enough times 89 * Search through a GnssSvStatus list for the strongest non-GPS satellite observed enough times
90 * 90 *
91 * returns the strongest source, 91 * returns the strongest source,
92 * or a source with constellation == UNKNOWN if none are found sufficient times 92 * or a source with constellation == UNKNOWN if none are found sufficient times
93 */ 93 */
94 94
95IGnssConfiguration::BlacklistedSource FindStrongFrequentSource( 95IGnssConfiguration::BlacklistedSource FindStrongFrequentNonGpsSource(
96 const list<IGnssCallback::GnssSvStatus> list_gnss_sv_status, const int min_observations) { 96 const list<IGnssCallback::GnssSvStatus> list_gnss_sv_status, const int min_observations) {
97 struct ComparableBlacklistedSource { 97 struct ComparableBlacklistedSource {
98 IGnssConfiguration::BlacklistedSource id; 98 IGnssConfiguration::BlacklistedSource id;
@@ -113,7 +113,8 @@ IGnssConfiguration::BlacklistedSource FindStrongFrequentSource(
113 for (const auto& gnss_sv_status : list_gnss_sv_status) { 113 for (const auto& gnss_sv_status : list_gnss_sv_status) {
114 for (uint32_t iSv = 0; iSv < gnss_sv_status.numSvs; iSv++) { 114 for (uint32_t iSv = 0; iSv < gnss_sv_status.numSvs; iSv++) {
115 const auto& gnss_sv = gnss_sv_status.gnssSvList[iSv]; 115 const auto& gnss_sv = gnss_sv_status.gnssSvList[iSv];
116 if (gnss_sv.svFlag & IGnssCallback::GnssSvFlags::USED_IN_FIX) { 116 if ((gnss_sv.svFlag & IGnssCallback::GnssSvFlags::USED_IN_FIX) &&
117 (gnss_sv.constellation != GnssConstellationType::GPS)) {
117 ComparableBlacklistedSource source; 118 ComparableBlacklistedSource source;
118 source.id.svid = gnss_sv.svid; 119 source.id.svid = gnss_sv.svid;
119 source.id.constellation = gnss_sv.constellation; 120 source.id.constellation = gnss_sv.constellation;
@@ -187,8 +188,12 @@ TEST_F(GnssHalTest, BlacklistIndividualSatellites) {
187 */ 188 */
188 189
189 IGnssConfiguration::BlacklistedSource source_to_blacklist = 190 IGnssConfiguration::BlacklistedSource source_to_blacklist =
190 FindStrongFrequentSource(list_gnss_sv_status_, kLocationsToAwait - 1); 191 FindStrongFrequentNonGpsSource(list_gnss_sv_status_, kLocationsToAwait - 1);
191 EXPECT_NE(source_to_blacklist.constellation, GnssConstellationType::UNKNOWN); 192
193 if (source_to_blacklist.constellation == GnssConstellationType::UNKNOWN) {
194 // Cannot find a non-GPS satellite. Let the test pass.
195 return;
196 }
192 197
193 // Stop locations, blacklist the common SV 198 // Stop locations, blacklist the common SV
194 StopAndClearLocations(); 199 StopAndClearLocations();
diff --git a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp
index 8b8b530a..747c66c9 100644
--- a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp
+++ b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp
@@ -292,9 +292,16 @@ TEST_F(GraphicsComposerHidlTest, SetActiveConfig) {
292 * Test that IComposerClient::setColorMode succeeds for all color modes. 292 * Test that IComposerClient::setColorMode succeeds for all color modes.
293 */ 293 */
294TEST_F(GraphicsComposerHidlTest, SetColorMode) { 294TEST_F(GraphicsComposerHidlTest, SetColorMode) {
295 std::unordered_set<ColorMode> validModes;
296 for (auto mode : hidl_enum_iterator<ColorMode>()) {
297 validModes.insert(mode);
298 }
299
295 std::vector<ColorMode> modes = mComposerClient->getColorModes(mPrimaryDisplay); 300 std::vector<ColorMode> modes = mComposerClient->getColorModes(mPrimaryDisplay);
296 for (auto mode : modes) { 301 for (auto mode : modes) {
297 mComposerClient->setColorMode(mPrimaryDisplay, mode); 302 if (validModes.count(mode)) {
303 mComposerClient->setColorMode(mPrimaryDisplay, mode);
304 }
298 } 305 }
299} 306}
300 307
diff --git a/graphics/composer/2.2/IComposerClient.hal b/graphics/composer/2.2/IComposerClient.hal
index 2f0a3cca..d4a87e6f 100644
--- a/graphics/composer/2.2/IComposerClient.hal
+++ b/graphics/composer/2.2/IComposerClient.hal
@@ -355,7 +355,8 @@ interface IComposerClient extends @2.1::IComposerClient {
355 * Returns the render intents supported by the specified display and color 355 * Returns the render intents supported by the specified display and color
356 * mode. 356 * mode.
357 * 357 *
358 * RenderIntent::COLORIMETRIC is always supported. 358 * For SDR color modes, RenderIntent::COLORIMETRIC must be supported. For
359 * HDR color modes, RenderIntent::TONE_MAP_COLORIMETRIC must be supported.
359 * 360 *
360 * @param display is the display to query. 361 * @param display is the display to query.
361 * @param mode is the color mode to query. 362 * @param mode is the color mode to query.
diff --git a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp
index f0d22504..23bf5583 100644
--- a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp
+++ b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp
@@ -347,9 +347,22 @@ TEST_F(GraphicsComposerHidlTest, GetRenderIntent) {
347 for (auto mode : modes) { 347 for (auto mode : modes) {
348 std::vector<RenderIntent> intents = 348 std::vector<RenderIntent> intents =
349 mComposerClient->getRenderIntents(mPrimaryDisplay, mode); 349 mComposerClient->getRenderIntents(mPrimaryDisplay, mode);
350 auto colorimetricIntent = 350
351 std::find(intents.cbegin(), intents.cend(), RenderIntent::COLORIMETRIC); 351 bool isHdr;
352 EXPECT_NE(intents.cend(), colorimetricIntent); 352 switch (mode) {
353 case ColorMode::BT2100_PQ:
354 case ColorMode::BT2100_HLG:
355 isHdr = true;
356 break;
357 default:
358 isHdr = false;
359 break;
360 }
361 RenderIntent requiredIntent =
362 isHdr ? RenderIntent::TONE_MAP_COLORIMETRIC : RenderIntent::COLORIMETRIC;
363
364 auto iter = std::find(intents.cbegin(), intents.cend(), requiredIntent);
365 EXPECT_NE(intents.cend(), iter);
353 } 366 }
354} 367}
355 368
diff --git a/keymaster/4.0/default/service.cpp b/keymaster/4.0/default/service.cpp
index cfb960a5..fdcc6ba9 100644
--- a/keymaster/4.0/default/service.cpp
+++ b/keymaster/4.0/default/service.cpp
@@ -24,6 +24,7 @@
24using android::hardware::keymaster::V4_0::SecurityLevel; 24using android::hardware::keymaster::V4_0::SecurityLevel;
25 25
26int main() { 26int main() {
27 ::android::hardware::configureRpcThreadpool(1, true /* willJoinThreadpool */);
27 auto keymaster = ::keymaster::V4_0::ng::CreateKeymasterDevice(SecurityLevel::SOFTWARE); 28 auto keymaster = ::keymaster::V4_0::ng::CreateKeymasterDevice(SecurityLevel::SOFTWARE);
28 auto status = keymaster->registerAsService(); 29 auto status = keymaster->registerAsService();
29 if (status != android::OK) { 30 if (status != android::OK) {