summaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-hyperv.c
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2012-04-22 14:21:38 +0200
committerJiri Kosina <jkosina@suse.cz>2012-05-01 12:54:53 +0200
commit07d9ab4f0e52cb2a383596e5ebbbd20232501393 (patch)
tree0a7158ec9b3ccefcaae444e841df84ec8bb105e2 /drivers/hid/hid-hyperv.c
parentMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jik... (diff)
downloadlinux-07d9ab4f0e52cb2a383596e5ebbbd20232501393.tar.xz
linux-07d9ab4f0e52cb2a383596e5ebbbd20232501393.zip
HID: hid-hyperv: Do not use hid_parse_report() directly
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>
Diffstat (limited to 'drivers/hid/hid-hyperv.c')
-rw-r--r--drivers/hid/hid-hyperv.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/hid/hid-hyperv.c b/drivers/hid/hid-hyperv.c
index 406632472c1b..032e6c079826 100644
--- a/drivers/hid/hid-hyperv.c
+++ b/drivers/hid/hid-hyperv.c
@@ -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;