summaryrefslogtreecommitdiff
path: root/cmds/hid
diff options
context:
space:
mode:
authorSiarhei Vishniakou <svv@google.com>2017-08-25 21:44:01 -0700
committerSiarhei Vishniakou <svv@google.com>2017-08-26 05:05:19 +0000
commit388ca7feb019bdacdfc7994149909b5b68ae1b1e (patch)
treeb4b4e41e89d7abdd027b43819d3293648056ba81 /cmds/hid
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
Diffstat (limited to 'cmds/hid')
-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));