aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/i2c-hid/i2c-hid.c14
-rw-r--r--drivers/hid/uhid.c1
-rw-r--r--drivers/hid/usbhid/hid-core.c12
-rw-r--r--include/linux/hid.h19
-rw-r--r--net/bluetooth/hidp/core.c14
5 files changed, 0 insertions, 60 deletions
diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
index 1a955317d05f..2de2b8e22462 100644
--- a/drivers/hid/i2c-hid/i2c-hid.c
+++ b/drivers/hid/i2c-hid/i2c-hid.c
@@ -587,19 +587,6 @@ static int i2c_hid_output_raw_report(struct hid_device *hid, __u8 *buf,
587 return ret; 587 return ret;
588} 588}
589 589
590static int __i2c_hid_output_raw_report(struct hid_device *hid, __u8 *buf,
591 size_t count, unsigned char report_type)
592{
593 struct i2c_client *client = hid->driver_data;
594 struct i2c_hid *ihid = i2c_get_clientdata(client);
595 bool data = true; /* SET_REPORT */
596
597 if (report_type == HID_OUTPUT_REPORT)
598 data = le16_to_cpu(ihid->hdesc.wMaxOutputLength) == 0;
599
600 return i2c_hid_output_raw_report(hid, buf, count, report_type, data);
601}
602
603static int i2c_hid_output_report(struct hid_device *hid, __u8 *buf, 590static int i2c_hid_output_report(struct hid_device *hid, __u8 *buf,
604 size_t count) 591 size_t count)
605{ 592{
@@ -1025,7 +1012,6 @@ static int i2c_hid_probe(struct i2c_client *client,
1025 1012
1026 hid->driver_data = client; 1013 hid->driver_data = client;
1027 hid->ll_driver = &i2c_hid_ll_driver; 1014 hid->ll_driver = &i2c_hid_ll_driver;
1028 hid->hid_output_raw_report = __i2c_hid_output_raw_report;
1029 hid->dev.parent = &client->dev; 1015 hid->dev.parent = &client->dev;
1030 ACPI_COMPANION_SET(&hid->dev, ACPI_COMPANION(&client->dev)); 1016 ACPI_COMPANION_SET(&hid->dev, ACPI_COMPANION(&client->dev));
1031 hid->bus = BUS_I2C; 1017 hid->bus = BUS_I2C;
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
index 60acee422fdc..7ed79be2686a 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -400,7 +400,6 @@ static int uhid_dev_create(struct uhid_device *uhid,
400 hid->uniq[63] = 0; 400 hid->uniq[63] = 0;
401 401
402 hid->ll_driver = &uhid_hid_driver; 402 hid->ll_driver = &uhid_hid_driver;
403 hid->hid_output_raw_report = uhid_hid_output_raw;
404 hid->bus = ev->u.create.bus; 403 hid->bus = ev->u.create.bus;
405 hid->vendor = ev->u.create.vendor; 404 hid->vendor = ev->u.create.vendor;
406 hid->product = ev->u.create.product; 405 hid->product = ev->u.create.product;
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 3bc7cad48fe0..7b88f4cb9902 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -950,17 +950,6 @@ static int usbhid_output_report(struct hid_device *hid, __u8 *buf, size_t count)
950 return ret; 950 return ret;
951} 951}
952 952
953static int usbhid_output_raw_report(struct hid_device *hid, __u8 *buf,
954 size_t count, unsigned char report_type)
955{
956 struct usbhid_device *usbhid = hid->driver_data;
957
958 if (usbhid->urbout && report_type != HID_FEATURE_REPORT)
959 return usbhid_output_report(hid, buf, count);
960
961 return usbhid_set_raw_report(hid, buf[0], buf, count, report_type);
962}
963
964static void usbhid_restart_queues(struct usbhid_device *usbhid) 953static void usbhid_restart_queues(struct usbhid_device *usbhid)
965{ 954{
966 if (usbhid->urbout && !test_bit(HID_OUT_RUNNING, &usbhid->iofl)) 955 if (usbhid->urbout && !test_bit(HID_OUT_RUNNING, &usbhid->iofl))
@@ -1294,7 +1283,6 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id *
1294 1283
1295 usb_set_intfdata(intf, hid); 1284 usb_set_intfdata(intf, hid);
1296 hid->ll_driver = &usb_hid_driver; 1285 hid->ll_driver = &usb_hid_driver;
1297 hid->hid_output_raw_report = usbhid_output_raw_report;
1298 hid->ff_init = hid_pidff_init; 1286 hid->ff_init = hid_pidff_init;
1299#ifdef CONFIG_USB_HIDDEV 1287#ifdef CONFIG_USB_HIDDEV
1300 hid->hiddev_connect = hiddev_connect; 1288 hid->hiddev_connect = hiddev_connect;
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 3fe444f4a36f..01a90b8d53bb 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -510,9 +510,6 @@ struct hid_device { /* device report descriptor */
510 struct hid_usage *, __s32); 510 struct hid_usage *, __s32);
511 void (*hiddev_report_event) (struct hid_device *, struct hid_report *); 511 void (*hiddev_report_event) (struct hid_device *, struct hid_report *);
512 512
513 /* handler for raw output data, used by hidraw */
514 int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t, unsigned char);
515
516 /* debugging support via debugfs */ 513 /* debugging support via debugfs */
517 unsigned short debug; 514 unsigned short debug;
518 struct dentry *debug_dir; 515 struct dentry *debug_dir;
@@ -1020,22 +1017,6 @@ static inline int hid_hw_output_report(struct hid_device *hdev, __u8 *buf,
1020} 1017}
1021 1018
1022/** 1019/**
1023 * hid_output_raw_report - send an output or a feature report to the device
1024 *
1025 * @hdev: hid device
1026 * @buf: raw data to transfer
1027 * @len: length of buf
1028 * @report_type: HID_FEATURE_REPORT or HID_OUTPUT_REPORT
1029 *
1030 * @return: count of data transfered, negative if error
1031 */
1032static inline int hid_output_raw_report(struct hid_device *hdev, __u8 *buf,
1033 size_t len, unsigned char report_type)
1034{
1035 return hdev->hid_output_raw_report(hdev, buf, len, report_type);
1036}
1037
1038/**
1039 * hid_hw_idle - send idle request to device 1020 * hid_hw_idle - send idle request to device
1040 * 1021 *
1041 * @hdev: hid device 1022 * @hdev: hid device
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index 98e4840935e2..514ddb5aef96 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -382,18 +382,6 @@ static int hidp_output_report(struct hid_device *hid, __u8 *data, size_t count)
382 data, count); 382 data, count);
383} 383}
384 384
385static int hidp_output_raw_report(struct hid_device *hid, unsigned char *data,
386 size_t count, unsigned char report_type)
387{
388 if (report_type == HID_OUTPUT_REPORT) {
389 return hidp_output_report(hid, data, count);
390 } else if (report_type != HID_FEATURE_REPORT) {
391 return -EINVAL;
392 }
393
394 return hidp_set_raw_report(hid, data[0], data, count, report_type);
395}
396
397static int hidp_raw_request(struct hid_device *hid, unsigned char reportnum, 385static int hidp_raw_request(struct hid_device *hid, unsigned char reportnum,
398 __u8 *buf, size_t len, unsigned char rtype, 386 __u8 *buf, size_t len, unsigned char rtype,
399 int reqtype) 387 int reqtype)
@@ -776,8 +764,6 @@ static int hidp_setup_hid(struct hidp_session *session,
776 hid->dev.parent = &session->conn->hcon->dev; 764 hid->dev.parent = &session->conn->hcon->dev;
777 hid->ll_driver = &hidp_hid_driver; 765 hid->ll_driver = &hidp_hid_driver;
778 766
779 hid->hid_output_raw_report = hidp_output_raw_report;
780
781 /* True if device is blacklisted in drivers/hid/hid-core.c */ 767 /* True if device is blacklisted in drivers/hid/hid-core.c */
782 if (hid_ignore(hid)) { 768 if (hid_ignore(hid)) {
783 hid_destroy_device(session->hid); 769 hid_destroy_device(session->hid);