summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot2018-05-17 02:26:04 -0500
committerandroid-build-team Robot2018-05-17 02:26:04 -0500
commit0f85276fdd6392dfd0a0ee13e8d9fdefc5f6f30b (patch)
tree183e0d755d719a67fcc8f88a2b430b39c4fcf9b3
parent48d29a4a41375a9d19ae31f99bc78e4fe28d78db (diff)
parent3569b0273f63084f3304df1e7870e02d9c5d4c2b (diff)
downloadplatform-hardware-interfaces-0f85276fdd6392dfd0a0ee13e8d9fdefc5f6f30b.tar.gz
platform-hardware-interfaces-0f85276fdd6392dfd0a0ee13e8d9fdefc5f6f30b.tar.xz
platform-hardware-interfaces-0f85276fdd6392dfd0a0ee13e8d9fdefc5f6f30b.zip
Snap for 4787078 from 3569b0273f63084f3304df1e7870e02d9c5d4c2b to pi-release
Change-Id: I8798ce790414a1e314c8c006699fa1fe31a046e7
-rw-r--r--compatibility_matrices/Android.mk6
-rw-r--r--compatibility_matrices/compatibility_matrix.3.xml14
-rw-r--r--current.txt2
-rw-r--r--graphics/composer/2.2/IComposerClient.hal13
-rw-r--r--wifi/1.2/default/Android.mk3
-rw-r--r--wifi/1.2/default/tests/mock_wifi_feature_flags.h1
-rw-r--r--wifi/1.2/default/tests/wifi_chip_unit_tests.cpp57
-rw-r--r--wifi/1.2/default/wifi_chip.cpp17
-rw-r--r--wifi/1.2/default/wifi_feature_flags.cpp9
-rw-r--r--wifi/1.2/default/wifi_feature_flags.h1
10 files changed, 112 insertions, 11 deletions
diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk
index 8904c685..86fe00dd 100644
--- a/compatibility_matrices/Android.mk
+++ b/compatibility_matrices/Android.mk
@@ -64,9 +64,9 @@ LOCAL_MODULE := framework_compatibility_matrix.3.xml
64LOCAL_MODULE_STEM := compatibility_matrix.3.xml 64LOCAL_MODULE_STEM := compatibility_matrix.3.xml
65LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) 65LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM)
66LOCAL_KERNEL_CONFIG_DATA_PATHS := \ 66LOCAL_KERNEL_CONFIG_DATA_PATHS := \
67 4.4.0:$(my_kernel_config_data)/p/android-4.4 \ 67 4.4.107:$(my_kernel_config_data)/p/android-4.4 \
68 4.9.0:$(my_kernel_config_data)/p/android-4.9 \ 68 4.9.84:$(my_kernel_config_data)/p/android-4.9 \
69 4.14.0:$(my_kernel_config_data)/p/android-4.14 \ 69 4.14.40:$(my_kernel_config_data)/p/android-4.14 \
70 70
71include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) 71include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
72 72
diff --git a/compatibility_matrices/compatibility_matrix.3.xml b/compatibility_matrices/compatibility_matrix.3.xml
index 9bc76ea0..2c5d4310 100644
--- a/compatibility_matrices/compatibility_matrix.3.xml
+++ b/compatibility_matrices/compatibility_matrix.3.xml
@@ -88,6 +88,14 @@
88 </interface> 88 </interface>
89 </hal> 89 </hal>
90 <hal format="hidl" optional="true"> 90 <hal format="hidl" optional="true">
91 <name>android.hardware.broadcastradio</name>
92 <version>2.0</version>
93 <interface>
94 <name>IBroadcastRadio</name>
95 <regex-instance>.*</regex-instance>
96 </interface>
97 </hal>
98 <hal format="hidl" optional="true">
91 <name>android.hardware.camera.provider</name> 99 <name>android.hardware.camera.provider</name>
92 <version>2.4</version> 100 <version>2.4</version>
93 <interface> 101 <interface>
@@ -185,7 +193,7 @@
185 </hal> 193 </hal>
186 <hal format="hidl" optional="false"> 194 <hal format="hidl" optional="false">
187 <name>android.hardware.graphics.composer</name> 195 <name>android.hardware.graphics.composer</name>
188 <version>2.1</version> 196 <version>2.1-2</version>
189 <interface> 197 <interface>
190 <name>IComposer</name> 198 <name>IComposer</name>
191 <instance>default</instance> 199 <instance>default</instance>
@@ -193,7 +201,7 @@
193 </hal> 201 </hal>
194 <hal format="hidl" optional="false"> 202 <hal format="hidl" optional="false">
195 <name>android.hardware.graphics.mapper</name> 203 <name>android.hardware.graphics.mapper</name>
196 <version>2.0</version> 204 <version>2.0-1</version>
197 <interface> 205 <interface>
198 <name>IMapper</name> 206 <name>IMapper</name>
199 <instance>default</instance> 207 <instance>default</instance>
@@ -258,7 +266,7 @@
258 </hal> 266 </hal>
259 <hal format="hidl" optional="true"> 267 <hal format="hidl" optional="true">
260 <name>android.hardware.neuralnetworks</name> 268 <name>android.hardware.neuralnetworks</name>
261 <version>1.0</version> 269 <version>1.0-1</version>
262 <interface> 270 <interface>
263 <name>IDevice</name> 271 <name>IDevice</name>
264 <regex-instance>.*</regex-instance> 272 <regex-instance>.*</regex-instance>
diff --git a/current.txt b/current.txt
index d221238a..7d630d27 100644
--- a/current.txt
+++ b/current.txt
@@ -327,7 +327,7 @@ a830336ac8627d6432cfafb1b884343ad9f885dee0a5323e380e6d3c519156b8 android.hardwar
32783e7a10ff3702147bd7ffa04567b20d407a3b16bbb7705644af44d919afe9103 android.hardware.gnss@1.1::IGnssMeasurementCallback 32783e7a10ff3702147bd7ffa04567b20d407a3b16bbb7705644af44d919afe9103 android.hardware.gnss@1.1::IGnssMeasurementCallback
3280b96e0254e2168cfecb30c1ed5fb42681652cc00faa68c6e07568fafe64d1d50 android.hardware.graphics.common@1.1::types 3280b96e0254e2168cfecb30c1ed5fb42681652cc00faa68c6e07568fafe64d1d50 android.hardware.graphics.common@1.1::types
329d9b40a5b09962a5a0780b10fe33a4e607e69e2e088fc83de88a584115b7cb1c0 android.hardware.graphics.composer@2.2::IComposer 329d9b40a5b09962a5a0780b10fe33a4e607e69e2e088fc83de88a584115b7cb1c0 android.hardware.graphics.composer@2.2::IComposer
33018eff12102db47b03a5fa906f8d4fd9018f0fb9236c663d457b8eac8d57c2937 android.hardware.graphics.composer@2.2::IComposerClient 330e7717f2ff2f6db43b24370ff08e14cd353da3004b32b17740e4a7ed4894b7e45 android.hardware.graphics.composer@2.2::IComposerClient
331dd83be076b6b3f10ed62ab34d8c8b95f2415961fb785200eb842e7bfb2b0ee92 android.hardware.graphics.mapper@2.1::IMapper 331dd83be076b6b3f10ed62ab34d8c8b95f2415961fb785200eb842e7bfb2b0ee92 android.hardware.graphics.mapper@2.1::IMapper
332675682dd3007805c985eaaec91612abc88f4c25b3431fb84070b7584a1a741fb android.hardware.health@2.0::IHealth 332675682dd3007805c985eaaec91612abc88f4c25b3431fb84070b7584a1a741fb android.hardware.health@2.0::IHealth
333434c4c32c00b0e54bb05e40c79503208b40f786a318029a2a4f66e34f10f2a76 android.hardware.health@2.0::IHealthInfoCallback 333434c4c32c00b0e54bb05e40c79503208b40f786a318029a2a4f66e34f10f2a76 android.hardware.health@2.0::IHealthInfoCallback
diff --git a/graphics/composer/2.2/IComposerClient.hal b/graphics/composer/2.2/IComposerClient.hal
index a6665a12..2f0a3cca 100644
--- a/graphics/composer/2.2/IComposerClient.hal
+++ b/graphics/composer/2.2/IComposerClient.hal
@@ -152,6 +152,11 @@ interface IComposerClient extends @2.1::IComposerClient {
152 * output of the display remains the same (subject to the note about protected 152 * output of the display remains the same (subject to the note about protected
153 * content in the description of setReadbackBuffer). 153 * content in the description of setReadbackBuffer).
154 * 154 *
155 * If the active configuration or color mode of this display has changed
156 * since a previous call to this function, it must be called again prior to
157 * setting a readback buffer such that the returned format and dataspace can
158 * be updated accordingly.
159 *
155 * Parameters: 160 * Parameters:
156 * @param display - the display on which to create the layer. 161 * @param display - the display on which to create the layer.
157 * 162 *
@@ -203,7 +208,13 @@ interface IComposerClient extends @2.1::IComposerClient {
203 * must be non-NULL 208 * must be non-NULL
204 * @return error - is HWC2_ERROR_NONE or one of the following errors: 209 * @return error - is HWC2_ERROR_NONE or one of the following errors:
205 * BAD_DISPLAY - an invalid display handle was passed in 210 * BAD_DISPLAY - an invalid display handle was passed in
206 * UNSUPPORTED if not supported on underlying HAL 211 * NO_RESOURCES - the readback operation was successful, but
212 * resulted in a different validate result than would
213 * have occurred without readback
214 * UNSUPPORTED - the readback operation was unsuccessful because of
215 * resource constraints, the presence of protected
216 * content, or other reasons; -1 must be returned for
217 * acquireFence
207 * 218 *
208 * See also: 219 * See also:
209 * getReadbackBufferAttributes 220 * getReadbackBufferAttributes
diff --git a/wifi/1.2/default/Android.mk b/wifi/1.2/default/Android.mk
index 978cf63f..39196901 100644
--- a/wifi/1.2/default/Android.mk
+++ b/wifi/1.2/default/Android.mk
@@ -27,6 +27,9 @@ endif
27ifdef WIFI_HIDL_FEATURE_DUAL_INTERFACE 27ifdef WIFI_HIDL_FEATURE_DUAL_INTERFACE
28LOCAL_CPPFLAGS += -DWIFI_HIDL_FEATURE_DUAL_INTERFACE 28LOCAL_CPPFLAGS += -DWIFI_HIDL_FEATURE_DUAL_INTERFACE
29endif 29endif
30ifdef WIFI_HIDL_FEATURE_DISABLE_AP
31LOCAL_CPPFLAGS += -DWIFI_HIDL_FEATURE_DISABLE_AP
32endif
30LOCAL_SRC_FILES := \ 33LOCAL_SRC_FILES := \
31 hidl_struct_util.cpp \ 34 hidl_struct_util.cpp \
32 hidl_sync_util.cpp \ 35 hidl_sync_util.cpp \
diff --git a/wifi/1.2/default/tests/mock_wifi_feature_flags.h b/wifi/1.2/default/tests/mock_wifi_feature_flags.h
index 8cf1d4b2..2a36dd50 100644
--- a/wifi/1.2/default/tests/mock_wifi_feature_flags.h
+++ b/wifi/1.2/default/tests/mock_wifi_feature_flags.h
@@ -34,6 +34,7 @@ class MockWifiFeatureFlags : public WifiFeatureFlags {
34 34
35 MOCK_METHOD0(isAwareSupported, bool()); 35 MOCK_METHOD0(isAwareSupported, bool());
36 MOCK_METHOD0(isDualInterfaceSupported, bool()); 36 MOCK_METHOD0(isDualInterfaceSupported, bool());
37 MOCK_METHOD0(isApDisabled, bool());
37}; 38};
38 39
39} // namespace feature_flags 40} // namespace feature_flags
diff --git a/wifi/1.2/default/tests/wifi_chip_unit_tests.cpp b/wifi/1.2/default/tests/wifi_chip_unit_tests.cpp
index 3928c9ab..8722d0ac 100644
--- a/wifi/1.2/default/tests/wifi_chip_unit_tests.cpp
+++ b/wifi/1.2/default/tests/wifi_chip_unit_tests.cpp
@@ -48,6 +48,8 @@ class WifiChipTest : public Test {
48 .WillRepeatedly(testing::Return(false)); 48 .WillRepeatedly(testing::Return(false));
49 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported()) 49 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported())
50 .WillRepeatedly(testing::Return(false)); 50 .WillRepeatedly(testing::Return(false));
51 EXPECT_CALL(*feature_flags_, isApDisabled())
52 .WillRepeatedly(testing::Return(false));
51 } 53 }
52 54
53 void setupV1_AwareIfaceCombination() { 55 void setupV1_AwareIfaceCombination() {
@@ -55,6 +57,17 @@ class WifiChipTest : public Test {
55 .WillRepeatedly(testing::Return(true)); 57 .WillRepeatedly(testing::Return(true));
56 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported()) 58 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported())
57 .WillRepeatedly(testing::Return(false)); 59 .WillRepeatedly(testing::Return(false));
60 EXPECT_CALL(*feature_flags_, isApDisabled())
61 .WillRepeatedly(testing::Return(false));
62 }
63
64 void setupV1_AwareDisabledApIfaceCombination() {
65 EXPECT_CALL(*feature_flags_, isAwareSupported())
66 .WillRepeatedly(testing::Return(true));
67 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported())
68 .WillRepeatedly(testing::Return(false));
69 EXPECT_CALL(*feature_flags_, isApDisabled())
70 .WillRepeatedly(testing::Return(true));
58 } 71 }
59 72
60 void setupV2_AwareIfaceCombination() { 73 void setupV2_AwareIfaceCombination() {
@@ -62,6 +75,17 @@ class WifiChipTest : public Test {
62 .WillRepeatedly(testing::Return(true)); 75 .WillRepeatedly(testing::Return(true));
63 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported()) 76 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported())
64 .WillRepeatedly(testing::Return(true)); 77 .WillRepeatedly(testing::Return(true));
78 EXPECT_CALL(*feature_flags_, isApDisabled())
79 .WillRepeatedly(testing::Return(false));
80 }
81
82 void setupV2_AwareDisabledApIfaceCombination() {
83 EXPECT_CALL(*feature_flags_, isAwareSupported())
84 .WillRepeatedly(testing::Return(true));
85 EXPECT_CALL(*feature_flags_, isDualInterfaceSupported())
86 .WillRepeatedly(testing::Return(true));
87 EXPECT_CALL(*feature_flags_, isApDisabled())
88 .WillRepeatedly(testing::Return(true));
65 } 89 }
66 90
67 void assertNumberOfModes(uint32_t num_modes) { 91 void assertNumberOfModes(uint32_t num_modes) {
@@ -515,6 +539,39 @@ TEST_F(WifiChipV2_AwareIfaceCombinationTest,
515 ASSERT_FALSE(ap_iface_name.empty()); 539 ASSERT_FALSE(ap_iface_name.empty());
516 ASSERT_NE(sta_iface_name, ap_iface_name); 540 ASSERT_NE(sta_iface_name, ap_iface_name);
517} 541}
542
543////////// V1 Iface Combinations when AP creation is disabled //////////
544class WifiChipV1_AwareDisabledApIfaceCombinationTest : public WifiChipTest {
545 public:
546 void SetUp() override {
547 setupV1_AwareDisabledApIfaceCombination();
548 WifiChipTest::SetUp();
549 }
550};
551
552TEST_F(WifiChipV1_AwareDisabledApIfaceCombinationTest,
553 StaMode_CreateSta_ShouldSucceed) {
554 findModeAndConfigureForIfaceType(IfaceType::STA);
555 ASSERT_FALSE(createIface(IfaceType::STA).empty());
556 ASSERT_TRUE(createIface(IfaceType::AP).empty());
557}
558
559////////// V2 Iface Combinations when AP creation is disabled //////////
560class WifiChipV2_AwareDisabledApIfaceCombinationTest: public WifiChipTest {
561 public:
562 void SetUp() override {
563 setupV2_AwareDisabledApIfaceCombination();
564 WifiChipTest::SetUp();
565 }
566};
567
568TEST_F(WifiChipV2_AwareDisabledApIfaceCombinationTest,
569 CreateSta_ShouldSucceed) {
570 findModeAndConfigureForIfaceType(IfaceType::STA);
571 ASSERT_FALSE(createIface(IfaceType::STA).empty());
572 ASSERT_TRUE(createIface(IfaceType::AP).empty());
573}
574
518} // namespace implementation 575} // namespace implementation
519} // namespace V1_2 576} // namespace V1_2
520} // namespace wifi 577} // namespace wifi
diff --git a/wifi/1.2/default/wifi_chip.cpp b/wifi/1.2/default/wifi_chip.cpp
index ab96ef1b..3bd05570 100644
--- a/wifi/1.2/default/wifi_chip.cpp
+++ b/wifi/1.2/default/wifi_chip.cpp
@@ -1211,10 +1211,17 @@ void WifiChip::populateModes() {
1211 {chip_iface_combination_limit_1, chip_iface_combination_limit_2}}; 1211 {chip_iface_combination_limit_1, chip_iface_combination_limit_2}};
1212 const IWifiChip::ChipIfaceCombination chip_iface_combination_2 = { 1212 const IWifiChip::ChipIfaceCombination chip_iface_combination_2 = {
1213 {chip_iface_combination_limit_1, chip_iface_combination_limit_3}}; 1213 {chip_iface_combination_limit_1, chip_iface_combination_limit_3}};
1214 const IWifiChip::ChipMode chip_mode = { 1214 if (feature_flags_.lock()->isApDisabled()) {
1215 const IWifiChip::ChipMode chip_mode = {
1216 kV2ChipModeId,
1217 {chip_iface_combination_2}};
1218 modes_ = {chip_mode};
1219 } else {
1220 const IWifiChip::ChipMode chip_mode = {
1215 kV2ChipModeId, 1221 kV2ChipModeId,
1216 {chip_iface_combination_1, chip_iface_combination_2}}; 1222 {chip_iface_combination_1, chip_iface_combination_2}};
1217 modes_ = {chip_mode}; 1223 modes_ = {chip_mode};
1224 }
1218 } else { 1225 } else {
1219 // V1 Iface combinations for Mode Id = 0. (STA Mode) 1226 // V1 Iface combinations for Mode Id = 0. (STA Mode)
1220 const IWifiChip::ChipIfaceCombinationLimit 1227 const IWifiChip::ChipIfaceCombinationLimit
@@ -1238,7 +1245,11 @@ void WifiChip::populateModes() {
1238 {ap_chip_iface_combination_limit}}; 1245 {ap_chip_iface_combination_limit}};
1239 const IWifiChip::ChipMode ap_chip_mode = {kV1ApChipModeId, 1246 const IWifiChip::ChipMode ap_chip_mode = {kV1ApChipModeId,
1240 {ap_chip_iface_combination}}; 1247 {ap_chip_iface_combination}};
1241 modes_ = {sta_chip_mode, ap_chip_mode}; 1248 if (feature_flags_.lock()->isApDisabled()) {
1249 modes_ = {sta_chip_mode};
1250 } else {
1251 modes_ = {sta_chip_mode, ap_chip_mode};
1252 }
1242 } 1253 }
1243} 1254}
1244 1255
diff --git a/wifi/1.2/default/wifi_feature_flags.cpp b/wifi/1.2/default/wifi_feature_flags.cpp
index 554d4d5f..778944dd 100644
--- a/wifi/1.2/default/wifi_feature_flags.cpp
+++ b/wifi/1.2/default/wifi_feature_flags.cpp
@@ -27,6 +27,12 @@ static const bool wifiHidlFeatureDualInterface = true;
27#else 27#else
28static const bool wifiHidlFeatureDualInterface = false; 28static const bool wifiHidlFeatureDualInterface = false;
29#endif // WIFI_HIDL_FEATURE_DUAL_INTERFACE 29#endif // WIFI_HIDL_FEATURE_DUAL_INTERFACE
30#ifdef WIFI_HIDL_FEATURE_DISABLE_AP
31static const bool wifiHidlFeatureDisableAp = true;
32#else
33static const bool wifiHidlFeatureDisableAp = false;
34#endif // WIFI_HIDL_FEATURE_DISABLE_AP
35
30} // namespace 36} // namespace
31 37
32namespace android { 38namespace android {
@@ -41,6 +47,9 @@ bool WifiFeatureFlags::isAwareSupported() { return wifiHidlFeatureAware; }
41bool WifiFeatureFlags::isDualInterfaceSupported() { 47bool WifiFeatureFlags::isDualInterfaceSupported() {
42 return wifiHidlFeatureDualInterface; 48 return wifiHidlFeatureDualInterface;
43} 49}
50bool WifiFeatureFlags::isApDisabled() {
51 return wifiHidlFeatureDisableAp;
52}
44 53
45} // namespace feature_flags 54} // namespace feature_flags
46} // namespace implementation 55} // namespace implementation
diff --git a/wifi/1.2/default/wifi_feature_flags.h b/wifi/1.2/default/wifi_feature_flags.h
index dc0c1ff3..4a7b2d22 100644
--- a/wifi/1.2/default/wifi_feature_flags.h
+++ b/wifi/1.2/default/wifi_feature_flags.h
@@ -31,6 +31,7 @@ class WifiFeatureFlags {
31 31
32 virtual bool isAwareSupported(); 32 virtual bool isAwareSupported();
33 virtual bool isDualInterfaceSupported(); 33 virtual bool isDualInterfaceSupported();
34 virtual bool isApDisabled();
34}; 35};
35 36
36} // namespace feature_flags 37} // namespace feature_flags