input/device: Replace UHID_FEATURE with UHID_GET_REPORT
authorArchie Pusaka <apusaka@chromium.org>
Mon, 3 Aug 2020 06:52:22 +0000 (14:52 +0800)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 12 Apr 2021 09:00:50 +0000 (14:30 +0530)
According to kernel's uhid.h, UHID_FEATURE is obsolete and is
replaced with UHID_GET_REPORT.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
profiles/input/device.c
profiles/input/hidp_defs.h

index f31b336..8a51ae9 100644 (file)
@@ -222,7 +222,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)
 {
@@ -232,8 +232,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);
@@ -241,13 +241,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) {
@@ -406,7 +406,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) {
@@ -467,8 +467,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;
 
@@ -633,7 +633,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;
@@ -653,13 +653,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;
@@ -667,21 +667,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;
        }
 }
 
@@ -916,7 +916,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;
 
index 5dc479a..bb9231d 100755 (executable)
@@ -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 */