summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Siarhei Vishniakou <svv@google.com> 2017-08-25 21:44:01 -0700
committer Siarhei Vishniakou <svv@google.com> 2017-08-26 05:05:19 +0000
commit388ca7feb019bdacdfc7994149909b5b68ae1b1e (patch)
treeb4b4e41e89d7abdd027b43819d3293648056ba81
parentd499ae5a853937fba88196e418f9cfa1b2f583ce (diff)
DO NOT MERGE Use CREATE instead of CREATE2 for 3.10 kernel
CREATE2 structs were introduced after kernel 3.18, so cannot compile user code with uapi headers from newer 3.18+ kernels. If using CREATE structs then compatibility is preserved. Bug: 64981084 Test: bit Change-Id: I97c7725918b09a817a51c13384ac2d55a6cfab25 CtsHardwareTestCases:android.hardware.input.cts.tests.GamepadTestCase
-rw-r--r--cmds/hid/jni/com_android_commands_hid_Device.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/cmds/hid/jni/com_android_commands_hid_Device.cpp b/cmds/hid/jni/com_android_commands_hid_Device.cpp
index 107dc863ef66..bf2e45c60a81 100644
--- a/cmds/hid/jni/com_android_commands_hid_Device.cpp
+++ b/cmds/hid/jni/com_android_commands_hid_Device.cpp
@@ -101,16 +101,15 @@ Device* Device::open(int32_t id, const char* name, int32_t vid, int32_t pid,
struct uhid_event ev;
memset(&ev, 0, sizeof(ev));
- ev.type = UHID_CREATE2;
- strncpy((char*)ev.u.create2.name, name, UHID_MAX_NAME_LENGTH);
- memcpy(&ev.u.create2.rd_data, descriptor.get(),
- descriptorSize * sizeof(ev.u.create2.rd_data[0]));
- ev.u.create2.rd_size = descriptorSize;
- ev.u.create2.bus = BUS_BLUETOOTH;
- ev.u.create2.vendor = vid;
- ev.u.create2.product = pid;
- ev.u.create2.version = 0;
- ev.u.create2.country = 0;
+ ev.type = UHID_CREATE;
+ strncpy((char*)ev.u.create.name, name, UHID_MAX_NAME_LENGTH);
+ ev.u.create.rd_data = descriptor.get();
+ ev.u.create.rd_size = descriptorSize;
+ ev.u.create.bus = BUS_BLUETOOTH;
+ ev.u.create.vendor = vid;
+ ev.u.create.product = pid;
+ ev.u.create.version = 0;
+ ev.u.create.country = 0;
errno = 0;
ssize_t ret = TEMP_FAILURE_RETRY(::write(fd, &ev, sizeof(ev)));
@@ -159,9 +158,9 @@ Device::~Device() {
void Device::sendReport(uint8_t* report, size_t reportSize) {
struct uhid_event ev;
memset(&ev, 0, sizeof(ev));
- ev.type = UHID_INPUT2;
- ev.u.input2.size = reportSize;
- memcpy(&ev.u.input2.data, report, reportSize);
+ ev.type = UHID_INPUT;
+ ev.u.input.size = reportSize;
+ memcpy(&ev.u.input.data, report, reportSize);
ssize_t ret = TEMP_FAILURE_RETRY(::write(mFd, &ev, sizeof(ev)));
if (ret < 0 || ret != sizeof(ev)) {
LOGE("Failed to send hid event: %s", strerror(errno));