Complete Bluetooth overhaul

Change-Id: Ied45532a76e78aa57c5262065c82b1d39fc528de
Revert "Complete Bluetooth overhaul"

This reverts commit 4a30980e61b97d51da81f61b87d7061f393f976b.

Need to start clean

Change-Id: Ife670c3adcedeca810d100525c1a8f53bb685797
BT fixes for primoc
BT fixes for primoc
adding gpu drivers from CAF JB

Change-Id: Iffafcbbc3a9c304c07f79e69465482c7fbfa7a71
Merge "adding gpu drivers from CAF JB" into jellybean
7x30: Inital import of kingdom.
kingdom: Adjust pmem.
Remove ram console from defconfig

Change-Id: I95ca0b30ccce7dcd4e12b7397811dc2997e094eb
Merge "7x30: Inital import of kingdom." into jellybean
Merge "kingdom: Adjust pmem." into jellybean
fb: fix reserved usage for 4.2
video: msm: add mdp version to id string
Kingdom: Swap to bcmdhd.

Change-Id: I3e5b2373dda280bc1b3f643323734f80220d7420
Merge "Kingdom: Swap to bcmdhd." into jellybean
Remove Team BlueRidge's gerrit.sh

It is not necessary for Evervolv and Team BlueRidge doesn't have a repo with this name
Kingdom: Bluetooth fixes

Change-Id: I1d9ea531c001a995bc1422e1e6603f4f8d7d9ee2
Kingdom: Readjust pmem

Change-Id: I99c211ce051bd1888b675025d934fa6cc50fb9d5
HID: uhid: introduce user-space I/O driver support for HID

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: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
HID: uhid: add internal message buffer

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: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
HID: uhid: allow poll()'ing on uhid devices

As long as the internal buffer is not empty, we return POLLIN to
user-space.

uhid->head and uhid->tail are no atomics so the comparison may return
inexact results. However, this doesn't matter here as user-space would
need to poll() in two threads simultaneously to trigger this. And in this
case it doesn't matter if a cached result is returned or the exact new
result as user-space does not know which thread returns first from poll()
and the following read(). So it is safe to compare the values without
locking.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>