HID: add user-space I/O driver support for HID from android-3.0 tree

This driver (apparently upstreamed and then backported to the
android-3.0 branch) is needed for Bluetooth HID support with the new BT
userland stack introduced in Android 4.2.  (Thanks to XDA user Deegan87
for noticing that BT HID support broke.)

This patch combines the following commits from the android-3.0 branch:

4409981 HID: uhid: introduce user-space I/O driver support for HID
ef5006b HID: uhid: add internal message buffer
191b032 HID: uhid: allow poll()'ing on uhid devices
b8dd3d9 HID: uhid: implement read() on uhid devices
d3444a8 HID: uhid: implement write() on uhid devices
6b1a4c7 HID: uhid: add UHID_CREATE and UHID_DESTROY events
e0ad830 HID: uhid: allow feeding input data into uhid devices
6645460 HID: uhid: forward hid report-descriptor to hid core
245fd8c HID: uhid: add UHID_START and UHID_STOP events
e458139 HID: uhid: forward open/close events to user-space
bd46634 HID: uhid: forward output request to user-space
715ee7c HID: uhid: forward raw output reports to user-space
c12e46f HID: uhid: implement feature requests
bd76675 HID: uhid: add documentation
db58898 HID: uhid: silence gcc warning
d4bad8b HID: uhid: Fix sending events with invalid data
encore_cm10.1_defconfig: enable CONFIG_UHID

Required for Bluetooth HID profile support with Android 4.2/CM10.1.
Revert "MMC: increased write data timeout for SD cards to 500ms"

To be superseded by an upstream fix.

This reverts commit 6aabcb60199e3326cf48b2cb046e3d072d1b1f2b.
mmc: use really long write timeout to deal with crappy cards

Several people have noticed that crappy SD cards take much longer to
complete multiple block writes than the 300ms that Linux specifies.
Try to work around this by using a three second write timeout instead.

This is a generalized version of a patch from Chase Maupin
<Chase.Maupin@ti.com>, whose patch description said:

* With certain SD cards timeouts like the following have been seen
  due to an improper calculation of the dto value:
    mmcblk0: error -110 transferring data, sector 4126233, nr 8,
    card status 0xc00
* By removing the dto calculation and setting the timeout value
  to the maximum specified by the SD card specification part A2
  section 2.2.15 these timeouts can be avoided.
* This change has been used by beagleboard users as well as the
  Texas Instruments SDK without a negative impact.
* There are multiple discussion threads about this but the most
  relevant ones are:
    * http://talk.maemo.org/showthread.php?p=1000707#post1000707
    * http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42213.html
* Original proposal for this fix was done by Sukumar Ghoral of
  Texas Instruments
* Tested using a Texas Instruments AM335x EVM

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Chris Ball <cjb@laptop.org>