Update the signature of init function to include whether the device is am: 3e7b35ee18 am: 43e0dd5936 am: 234cb4857b am: 1d90247bb1 am: e5ef2a3f04 am: 984f2f2d43 am: 34b5501c04 am: db5579e341
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/libhardware/+/12308134
Change-Id: I0aa34ac2347044a6f9bead9d679b341a7424446d
diff --git a/Android.bp b/Android.bp
index 0b340a1..3ac123e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -29,6 +29,7 @@
},
},
min_sdk_version: "29",
+ host_supported: true,
}
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..d97975c
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,3 @@
+third_party {
+ license_type: NOTICE
+}
diff --git a/include/hardware/audio_alsaops.h b/include/hardware/audio_alsaops.h
index 6a17a35..476c311 100644
--- a/include/hardware/audio_alsaops.h
+++ b/include/hardware/audio_alsaops.h
@@ -60,7 +60,7 @@
case AUDIO_FORMAT_PCM_FLOAT: /* there is no equivalent for float */
default:
LOG_ALWAYS_FATAL("pcm_format_from_audio_format: invalid audio format %#x", format);
- return 0;
+ return PCM_FORMAT_INVALID; /* doesn't get here, assert called above */
}
}
@@ -94,7 +94,7 @@
#endif
default:
LOG_ALWAYS_FATAL("audio_format_from_pcm_format: invalid pcm format %#x", format);
- return 0;
+ return AUDIO_FORMAT_INVALID; /* doesn't get here, assert called above */
}
}
diff --git a/modules/input/evdev/Android.bp b/modules/input/evdev/Android.bp
index 26e711f..bcd563f 100644
--- a/modules/input/evdev/Android.bp
+++ b/modules/input/evdev/Android.bp
@@ -27,6 +27,7 @@
"SwitchInputMapper.cpp",
],
+ header_libs: ["jni_headers"],
shared_libs: [
"libhardware_legacy",
"liblog",
diff --git a/modules/input/evdev/SwitchInputMapper.cpp b/modules/input/evdev/SwitchInputMapper.cpp
index 1b2e749..028fc72 100644
--- a/modules/input/evdev/SwitchInputMapper.cpp
+++ b/modules/input/evdev/SwitchInputMapper.cpp
@@ -49,9 +49,9 @@
{SW_LINEIN_INSERT, INPUT_USAGE_SWITCH_UNKNOWN},
{SW_MUTE_DEVICE, INPUT_USAGE_SWITCH_UNKNOWN},
{SW_PEN_INSERTED, INPUT_USAGE_SWITCH_UNKNOWN},
- {SW_HPHL_OVERCURRENT, INPUT_USAGE_SWITCH_UNKNOWN},
- {SW_HPHR_OVERCURRENT, INPUT_USAGE_SWITCH_UNKNOWN},
- {SW_UNSUPPORT_INSERT, INPUT_USAGE_SWITCH_UNKNOWN},
+ {SW_MACHINE_COVER, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x11 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x12 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
{0x13 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
{0x14 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
{0x15 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
@@ -59,9 +59,21 @@
{0x17 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
{0x18 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
{0x19 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
- {SW_MAX, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x1a /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x1b /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x1c /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x1d /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x1e /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x1f /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x20 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
};
+static_assert(SW_MAX == SW_MACHINE_COVER, "SW_MAX is not SW_MACHINE_COVER");
+
+// This is the max value that any kernel has ever used. The v5.4 kernels
+// increased SW_MAX to 0x20, while v5.8 decreased the value to 0x10.
+static constexpr int32_t kMaxNumInputCodes = 0x21;
+
SwitchInputMapper::SwitchInputMapper()
: InputMapper() {
// If this gets larger than 64, then the mSwitchValues and mUpdatedSwitchMask
@@ -71,9 +83,9 @@
bool SwitchInputMapper::configureInputReport(InputDeviceNode* devNode,
InputReportDefinition* report) {
- InputUsage usages[SW_CNT];
+ InputUsage usages[kMaxNumInputCodes];
int numUsages = 0;
- for (int32_t i = 0; i < SW_CNT; ++i) {
+ for (int32_t i = 0; i < kMaxNumInputCodes; ++i) {
if (devNode->hasSwitch(codeMap[i].scancode)) {
usages[numUsages++] = codeMap[i].usage;
}
@@ -105,7 +117,7 @@
void SwitchInputMapper::processSwitch(int32_t switchCode, int32_t switchValue) {
ALOGV("processing switch event. code=%" PRId32 ", value=%" PRId32, switchCode, switchValue);
- if (switchCode >= 0 && switchCode < SW_CNT) {
+ if (switchCode >= 0 && switchCode < kMaxNumInputCodes) {
if (switchValue) {
mSwitchValues.markBit(switchCode);
} else {