usb: Add driver for Altus Metrum ChaosKey device (v2)
This is a hardware random number generator. The driver provides both a
/dev/chaoskeyX entry and hooks the entropy source up to the kernel
hwrng interface. More information about the device can be found at
http://chaoskey.org
The USB ID for ChaosKey was allocated from the OpenMoko USB vendor
space and is visible as 'USBtrng' here:
http://wiki.openmoko.org/wiki/USB_Product_IDs
v2: Respond to review from Oliver Neukum <oneukum@suse.de>
* Delete extensive debug infrastructure and replace it with calls to
dev_dbg.
* Allocate I/O buffer separately from device structure to obey
requirements for non-coherant architectures.
* Initialize mutexes before registering device to ensure that open
cannot be invoked before the device is ready to proceed.
* Return number of bytes read instead of -EINTR when partial read
operation is aborted due to a signal.
* Make sure device mutex is unlocked in read error paths.
* Add MAINTAINERS entry for the driver
Signed-off-by: Keith Packard <keithp@keithp.com>
Cc: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile
index 65b0402..45fd4ac 100644
--- a/drivers/usb/misc/Makefile
+++ b/drivers/usb/misc/Makefile
@@ -25,6 +25,7 @@
obj-$(CONFIG_USB_SEVSEG) += usbsevseg.o
obj-$(CONFIG_USB_YUREX) += yurex.o
obj-$(CONFIG_USB_HSIC_USB3503) += usb3503.o
+obj-$(CONFIG_USB_CHAOSKEY) += chaoskey.o
obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga/
obj-$(CONFIG_USB_LINK_LAYER_TEST) += lvstest.o