1. 18 6月, 2012 2 次提交
    • D
      HID: uhid: add internal message buffer · ace3d861
      David Herrmann 提交于
      When receiving messages from the HID subsystem, we need to process them
      and store them in an internal buffer so user-space can read() on the char
      device to retrieve the messages.
      
      This adds a static buffer for 32 messages to each uhid device. Each
      message is dynamically allocated so the uhid_device structure does not get
      too big.
      
      uhid_queue() adds a message to the buffer. If the buffer is full, the
      message is discarded. uhid_queue_event() is an helper for messages without
      payload.
      
      This also adds a public header: uhid.h. It contains the declarations for
      the user-space API. It is built around "struct uhid_event" which contains
      a type field which specifies the event type and each event can then add a
      variable-length payload. For now, there is only a dummy event but later
      patches will add new event types and payloads.
      Signed-off-by: NDavid Herrmann <dh.herrmann@googlemail.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      ace3d861
    • D
      HID: uhid: introduce user-space I/O driver support for HID · 1ccd7a2a
      David Herrmann 提交于
      This adds a dummy driver that will support user-space I/O drivers for the
      HID subsystem. This allows to write transport-level drivers like USB-HID
      and Bluetooth-HID in user-space.
      
      Low-Energy Bluetooth needs this to feed HID data that is parsed in
      user-space back into the kernel.
      Signed-off-by: NDavid Herrmann <dh.herrmann@googlemail.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      1ccd7a2a