summaryrefslogtreecommitdiff
path: root/profiles/input
diff options
context:
space:
mode:
authorArchie Pusaka <apusaka@chromium.org>2020-08-03 14:52:22 +0800
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2020-08-03 12:58:41 -0700
commit646db71713b05d50b2b0c421da34e80ed4c54fbd (patch)
tree01aaa469171e2bf6e5e88cea96b513b5fa2ace57 /profiles/input
parente170ce6fba549287cffa81bd52b62c4555c00722 (diff)
downloadbluez-646db71713b05d50b2b0c421da34e80ed4c54fbd.tar.gz
input/device: Replace UHID_FEATURE with UHID_GET_REPORT
According to kernel's uhid.h, UHID_FEATURE is obsolete and is replaced with UHID_GET_REPORT.
Diffstat (limited to 'profiles/input')
-rw-r--r--profiles/input/device.c41
-rw-r--r--profiles/input/hidp_defs.h2
2 files changed, 22 insertions, 21 deletions
diff --git a/profiles/input/device.c b/profiles/input/device.c
index ee0b2404a..ac4487f63 100644
--- a/profiles/input/device.c
+++ b/profiles/input/device.c
@@ -220,7 +220,7 @@ static bool hidp_send_intr_message(struct input_device *idev, uint8_t hdr,
return hidp_send_message(idev->intr_io, hdr, data, size);
}
-static bool uhid_send_feature_answer(struct input_device *idev,
+static bool uhid_send_get_report_reply(struct input_device *idev,
const uint8_t *data, size_t size,
uint32_t id, uint16_t err)
{
@@ -230,8 +230,8 @@ static bool uhid_send_feature_answer(struct input_device *idev,
if (data == NULL)
size = 0;
- if (size > sizeof(ev.u.feature_answer.data))
- size = sizeof(ev.u.feature_answer.data);
+ if (size > sizeof(ev.u.get_report_reply.data))
+ size = sizeof(ev.u.get_report_reply.data);
if (!idev->uhid_created) {
DBG("HID report (%zu bytes) dropped", size);
@@ -239,13 +239,13 @@ static bool uhid_send_feature_answer(struct input_device *idev,
}
memset(&ev, 0, sizeof(ev));
- ev.type = UHID_FEATURE_ANSWER;
- ev.u.feature_answer.id = id;
- ev.u.feature_answer.err = err;
- ev.u.feature_answer.size = size;
+ ev.type = UHID_GET_REPORT_REPLY;
+ ev.u.get_report_reply.id = id;
+ ev.u.get_report_reply.err = err;
+ ev.u.get_report_reply.size = size;
if (size > 0)
- memcpy(ev.u.feature_answer.data, data, size);
+ memcpy(ev.u.get_report_reply.data, data, size);
ret = bt_uhid_send(idev->uhid, &ev);
if (ret < 0) {
@@ -399,7 +399,7 @@ static void hidp_recv_ctrl_handshake(struct input_device *idev, uint8_t param)
case HIDP_HSHK_ERR_FATAL:
if (pending_req_type == HIDP_TRANS_GET_REPORT) {
DBG("GET_REPORT failed (%u)", param);
- uhid_send_feature_answer(idev, NULL, 0,
+ uhid_send_get_report_reply(idev, NULL, 0,
idev->report_rsp_id, EIO);
pending_req_complete = true;
} else if (pending_req_type == HIDP_TRANS_SET_REPORT) {
@@ -460,8 +460,8 @@ static void hidp_recv_ctrl_data(struct input_device *idev, uint8_t param,
switch (param) {
case HIDP_DATA_RTYPE_FEATURE:
case HIDP_DATA_RTYPE_INPUT:
- case HIDP_DATA_RTYPE_OUPUT:
- uhid_send_feature_answer(idev, data + 1, size - 1,
+ case HIDP_DATA_RTYPE_OUTPUT:
+ uhid_send_get_report_reply(idev, data + 1, size - 1,
idev->report_rsp_id, 0);
break;
@@ -626,7 +626,7 @@ static void hidp_send_set_report(struct uhid_event *ev, void *user_data)
break;
case UHID_OUTPUT_REPORT:
/* Send DATA on interrupt channel */
- hdr = HIDP_TRANS_DATA | HIDP_DATA_RTYPE_OUPUT;
+ hdr = HIDP_TRANS_DATA | HIDP_DATA_RTYPE_OUTPUT;
hidp_send_intr_message(idev, hdr, ev->u.output.data,
ev->u.output.size);
break;
@@ -646,13 +646,13 @@ static void hidp_send_get_report(struct uhid_event *ev, void *user_data)
if (idev->report_req_pending) {
DBG("Old GET_REPORT or SET_REPORT still pending");
- uhid_send_feature_answer(idev, NULL, 0, ev->u.feature.id,
+ uhid_send_get_report_reply(idev, NULL, 0, ev->u.get_report.id,
EBUSY);
return;
}
/* Send GET_REPORT on control channel */
- switch (ev->u.feature.rtype) {
+ switch (ev->u.get_report.rtype) {
case UHID_FEATURE_REPORT:
hdr = HIDP_TRANS_GET_REPORT | HIDP_DATA_RTYPE_FEATURE;
break;
@@ -660,21 +660,21 @@ static void hidp_send_get_report(struct uhid_event *ev, void *user_data)
hdr = HIDP_TRANS_GET_REPORT | HIDP_DATA_RTYPE_INPUT;
break;
case UHID_OUTPUT_REPORT:
- hdr = HIDP_TRANS_GET_REPORT | HIDP_DATA_RTYPE_OUPUT;
+ hdr = HIDP_TRANS_GET_REPORT | HIDP_DATA_RTYPE_OUTPUT;
break;
default:
- DBG("Unsupported HID report type %u", ev->u.feature.rtype);
+ DBG("Unsupported HID report type %u", ev->u.get_report.rtype);
return;
}
- sent = hidp_send_ctrl_message(idev, hdr, &ev->u.feature.rnum,
- sizeof(ev->u.feature.rnum));
+ sent = hidp_send_ctrl_message(idev, hdr, &ev->u.get_report.rnum,
+ sizeof(ev->u.get_report.rnum));
if (sent) {
idev->report_req_pending = hdr;
idev->report_req_timer =
g_timeout_add_seconds(REPORT_REQ_TIMEOUT,
hidp_report_req_timeout, idev);
- idev->report_rsp_id = ev->u.feature.id;
+ idev->report_rsp_id = ev->u.get_report.id;
}
}
@@ -909,7 +909,8 @@ static int uhid_connadd(struct input_device *idev, struct hidp_connadd_req *req)
}
bt_uhid_register(idev->uhid, UHID_OUTPUT, hidp_send_set_report, idev);
- bt_uhid_register(idev->uhid, UHID_FEATURE, hidp_send_get_report, idev);
+ bt_uhid_register(idev->uhid, UHID_GET_REPORT, hidp_send_get_report,
+ idev);
idev->uhid_created = true;
diff --git a/profiles/input/hidp_defs.h b/profiles/input/hidp_defs.h
index 5dc479acf..bb9231dbb 100644
--- a/profiles/input/hidp_defs.h
+++ b/profiles/input/hidp_defs.h
@@ -63,7 +63,7 @@
#define HIDP_DATA_RSRVD_MASK 0x0c
#define HIDP_DATA_RTYPE_OTHER 0x00
#define HIDP_DATA_RTYPE_INPUT 0x01
-#define HIDP_DATA_RTYPE_OUPUT 0x02
+#define HIDP_DATA_RTYPE_OUTPUT 0x02
#define HIDP_DATA_RTYPE_FEATURE 0x03
/* HIDP protocol header parameters */