HID: hid-hyperv: Do not use hid_parse_report() directly
authorHenrik Rydberg <rydberg@euromail.se>
Sun, 22 Apr 2012 12:21:38 +0000 (14:21 +0200)
committerJiri Kosina <jkosina@suse.cz>
Tue, 1 May 2012 10:54:53 +0000 (12:54 +0200)
Upcoming changes will split the semantics of hid_parse_report()
and hid_parse(), so make sure drivers use hid_parse() in probe().

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Acked-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-hyperv.c

index 4066324..032e6c0 100644 (file)
@@ -430,6 +430,15 @@ cleanup:
        return ret;
 }
 
+static int mousevsc_hid_parse(struct hid_device *hid)
+{
+       struct hv_device *dev = hid_get_drvdata(hid);
+       struct mousevsc_dev *input_dev = hv_get_drvdata(dev);
+
+       return hid_parse_report(hid, input_dev->report_desc,
+                               input_dev->report_desc_size);
+}
+
 static int mousevsc_hid_open(struct hid_device *hid)
 {
        return 0;
@@ -449,6 +458,7 @@ static void mousevsc_hid_stop(struct hid_device *hid)
 }
 
 static struct hid_ll_driver mousevsc_ll_driver = {
+       .parse = mousevsc_hid_parse,
        .open = mousevsc_hid_open,
        .close = mousevsc_hid_close,
        .start = mousevsc_hid_start,
@@ -510,9 +520,9 @@ static int mousevsc_probe(struct hv_device *device,
        if (ret)
                goto probe_err1;
 
-       ret = hid_parse_report(hid_dev, input_dev->report_desc,
-                               input_dev->report_desc_size);
+       hid_set_drvdata(hid_dev, device);
 
+       ret = hid_parse(hid_dev);
        if (ret) {
                hid_err(hid_dev, "parse failed\n");
                goto probe_err2;