diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2014-02-05 16:33:18 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-02-17 08:05:56 -0500 |
commit | 2f0cd0300e8f73c1a02bd11a6185a5c8534f4b09 (patch) | |
tree | f7ea1b0f3c31b62d693fd85c9168af819bf406d9 /net/bluetooth/hidp | |
parent | 0e40d35637d68f654b66f4562c9a914be7d06bd1 (diff) |
HID: HIDp: remove hidp_hidinput_event
hidp uses its own ->hidinput_input_event() instead of the generic binding
in hid-input.
Moving the handling of LEDs towards hidp_hidinput_event() allows two things:
- remove hidinput_input_event definitively from struct hid_device
- hidraw user space programs can also set the LEDs
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'net/bluetooth/hidp')
-rw-r--r-- | net/bluetooth/hidp/core.c | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c index b062cee3f319..469e61b27dcf 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c | |||
@@ -223,51 +223,6 @@ static void hidp_input_report(struct hidp_session *session, struct sk_buff *skb) | |||
223 | input_sync(dev); | 223 | input_sync(dev); |
224 | } | 224 | } |
225 | 225 | ||
226 | static int hidp_send_report(struct hidp_session *session, struct hid_report *report) | ||
227 | { | ||
228 | unsigned char hdr; | ||
229 | u8 *buf; | ||
230 | int rsize, ret; | ||
231 | |||
232 | buf = hid_alloc_report_buf(report, GFP_ATOMIC); | ||
233 | if (!buf) | ||
234 | return -EIO; | ||
235 | |||
236 | hid_output_report(report, buf); | ||
237 | hdr = HIDP_TRANS_DATA | HIDP_DATA_RTYPE_OUPUT; | ||
238 | |||
239 | rsize = ((report->size - 1) >> 3) + 1 + (report->id > 0); | ||
240 | ret = hidp_send_intr_message(session, hdr, buf, rsize); | ||
241 | |||
242 | kfree(buf); | ||
243 | return ret; | ||
244 | } | ||
245 | |||
246 | static int hidp_hidinput_event(struct input_dev *dev, unsigned int type, | ||
247 | unsigned int code, int value) | ||
248 | { | ||
249 | struct hid_device *hid = input_get_drvdata(dev); | ||
250 | struct hidp_session *session = hid->driver_data; | ||
251 | struct hid_field *field; | ||
252 | int offset; | ||
253 | |||
254 | BT_DBG("session %p type %d code %d value %d", | ||
255 | session, type, code, value); | ||
256 | |||
257 | if (type != EV_LED) | ||
258 | return -1; | ||
259 | |||
260 | offset = hidinput_find_field(hid, type, code, &field); | ||
261 | if (offset == -1) { | ||
262 | hid_warn(dev, "event field not found\n"); | ||
263 | return -1; | ||
264 | } | ||
265 | |||
266 | hid_set_field(field, offset, value); | ||
267 | |||
268 | return hidp_send_report(session, field->report); | ||
269 | } | ||
270 | |||
271 | static int hidp_get_raw_report(struct hid_device *hid, | 226 | static int hidp_get_raw_report(struct hid_device *hid, |
272 | unsigned char report_number, | 227 | unsigned char report_number, |
273 | unsigned char *data, size_t count, | 228 | unsigned char *data, size_t count, |
@@ -817,7 +772,6 @@ static struct hid_ll_driver hidp_hid_driver = { | |||
817 | .close = hidp_close, | 772 | .close = hidp_close, |
818 | .raw_request = hidp_raw_request, | 773 | .raw_request = hidp_raw_request, |
819 | .output_report = hidp_output_report, | 774 | .output_report = hidp_output_report, |
820 | .hidinput_input_event = hidp_hidinput_event, | ||
821 | }; | 775 | }; |
822 | 776 | ||
823 | /* This function sets up the hid device. It does not add it | 777 | /* This function sets up the hid device. It does not add it |