Skip to content

Commit

Permalink
Merge branch 'hidraw' into for-linus
Browse files Browse the repository at this point in the history
  • Loading branch information
Jiri Kosina committed Oct 14, 2007
2 parents bb6c8d8 + 709d27c commit d057fd4
Show file tree
Hide file tree
Showing 7 changed files with 565 additions and 2 deletions.
19 changes: 19 additions & 0 deletions drivers/hid/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,25 @@ config HID_DEBUG

If unsure, say N

config HIDRAW
bool "/dev/hidraw raw HID device support"
depends on HID
---help---
Say Y here if you want to support HID devices (from the USB
specification standpoint) that aren't strictly user interface
devices, like monitor controls and Uninterruptable Power Supplies.

This module supports these devices separately using a separate
event interface on /dev/hidraw.

There is also a /dev/hiddev configuration option in the USB HID
configuration menu. In comparison to hiddev, this device does not process
the hid events at all (no parsing, no lookups). This lets applications
to work on raw hid events when they want to, and avoid using transport-specific
userspace libhid/libusb libraries.

If unsure, say Y.

source "drivers/hid/usbhid/Kconfig"

endif # HID_SUPPORT
2 changes: 2 additions & 0 deletions drivers/hid/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
hid-objs := hid-core.o hid-input.o

obj-$(CONFIG_HID) += hid.o

hid-$(CONFIG_HID_DEBUG) += hid-debug.o
hid-$(CONFIG_HIDRAW) += hidraw.o

obj-$(CONFIG_USB_HID) += usbhid/
obj-$(CONFIG_USB_MOUSE) += usbhid/
Expand Down
16 changes: 16 additions & 0 deletions drivers/hid/hid-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <linux/hid.h>
#include <linux/hiddev.h>
#include <linux/hid-debug.h>
#include <linux/hidraw.h>

/*
* Version Information
Expand Down Expand Up @@ -979,6 +980,8 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i

if ((hid->claimed & HID_CLAIMED_HIDDEV) && hid->hiddev_report_event)
hid->hiddev_report_event(hid, report);
if (hid->claimed & HID_CLAIMED_HIDRAW)
hidraw_report_event(hid, data, size);

for (n = 0; n < report->maxfield; n++)
hid_input_field(hid, report->field[n], data, interrupt);
Expand All @@ -990,5 +993,18 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i
}
EXPORT_SYMBOL_GPL(hid_input_report);

static int __init hid_init(void)
{
return hidraw_init();
}

static void __exit hid_exit(void)
{
hidraw_exit();
}

module_init(hid_init);
module_exit(hid_exit);

MODULE_LICENSE(DRIVER_LICENSE);

Loading

0 comments on commit d057fd4

Please sign in to comment.