lkml.org 
[lkml]   [2014]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 02/14] HID: uHID: implement .raw_request
    Date
    uHID is missing a SET_REPORT protocol implementation, but as
    .hid_get_raw_report() as been removed from struct hid_device,
    there were no means to access GET_REPORT in uhid.

    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    ---
    drivers/hid/uhid.c | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
    index b6de903..60acee4 100644
    --- a/drivers/hid/uhid.c
    +++ b/drivers/hid/uhid.c
    @@ -250,6 +250,21 @@ static int uhid_hid_output_report(struct hid_device *hid, __u8 *buf,
    return uhid_hid_output_raw(hid, buf, count, HID_OUTPUT_REPORT);
    }

    +static int uhid_raw_request(struct hid_device *hid, unsigned char reportnum,
    + __u8 *buf, size_t len, unsigned char rtype,
    + int reqtype)
    +{
    + switch (reqtype) {
    + case HID_REQ_GET_REPORT:
    + return uhid_hid_get_raw(hid, reportnum, buf, len, rtype);
    + case HID_REQ_SET_REPORT:
    + /* TODO: implement proper SET_REPORT functionality */
    + return -ENOSYS;
    + default:
    + return -EIO;
    + }
    +}
    +
    static struct hid_ll_driver uhid_hid_driver = {
    .start = uhid_hid_start,
    .stop = uhid_hid_stop,
    @@ -257,6 +272,7 @@ static struct hid_ll_driver uhid_hid_driver = {
    .close = uhid_hid_close,
    .parse = uhid_hid_parse,
    .output_report = uhid_hid_output_report,
    + .raw_request = uhid_raw_request,
    };

    #ifdef CONFIG_COMPAT
    --
    1.8.3.1


    \
     
     \ /
      Last update: 2014-02-11 16:21    [W:4.050 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site