hookup camera
msm_camio_disable: fix double-disable of CAMIO_VFE_CLK
pm8058_rtc: enable rtc write
tenderloin: enable BT_HOST_WAKE irq pin on boot
tenderloin: support overclock to 1.8Ghz
tenderloin: debounce the keys
tenderloin: fix USB OTG host enable
tenderloin: restart/shutdown uses Palm bootloader
tenderloin: defconfig: disable MSM_HOTPLUG
tenderloin: add proper delay to allow panel/etc to power-on

Without this (added) delay, intermittent issues related to display
may occur. In particular:
  mdp4_lcdc_wait4dmap 402  TIMEOUT_
  mdp_enable_irq: MDP IRQ term-0x1 is already set, mask=101 irq=1
was observed intermittently during resume. Also, frequently coexisting
with the above timeout issue was persistent (until possibly cleared
by a future suspend/resume) display corruption where the leftmost
(if in landscape with home button to right) 6 or so column of pixels
will be swapped with the rightmost column of 6 or so pixels.
cpufreq: sync core min/max frequency
backport of CONFIG_LINK_CPU_GOVERNORS implementation by @elbermu.

generic userpace oc only changes the min/max freq of core 0.
make sure all frequency changes apply to the other cores as well.
audio: bring back icodec rx idlelock hold hack
holds a idlelock while icodec rx (audio_out) is active to ensure no q6 watchdogs bites happen in suspend.
this allows us to reenable power collapse for core 0.
HID: wiimote: Add Nintendo Wii Remote driver stub

Add stub driver for the Nintendo Wii Remote. The wii remote uses
the HID protocol to communicate with the host over bluetooth. Hence,
add dependency for HIDP and place driver in hid subsystem.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
HID: wiimote: Register wiimote hid driver stub

The wiimote uses a fake HID protocol. Hence, we need to prevent
HIDINPUT and HIDDEV from parsing wiimote data and instead parse
raw hid events.
Add VID/PID to hid-core so the special driver is loaded on new
wiimotes.

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

Allocate wiimote device structure with all wiimote related data
when registering new wiimote devices.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
HID: wiimote: Register input device in wiimote hid driver

Register input device so the wiimote can report input events on
it. We do not use HIDINPUT because the wiimote does not provide any
descriptor table which might be used by HIDINPUT. So we avoid
having HIDINPUT parse the wiimote descriptor and create unrelated
or unknown event flags. Instead we register our own input device
that we have full control of.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
HID: wiimote: Synchronize wiimote input and hid event handling

The wiimote first starts HID hardware and then registers the input
device. We need to synchronize the startup so no event handler will
start parsing events when the wiimote device is not ready, yet.

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

The wiimote driver needs to send raw output reports to the wiimote
device. Otherwise we could not manage the peripherals of the wiimote
or perform memory operations on the wiimote.
We cannot use hidinput_input_event of the lowlevel hid driver, since
this does not accept raw input. Therefore, we need to use the same
function that hidraw uses to send output. Side effect is, the raw
output function is not buffered and can sleep.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
HID: wiimote: Add output queue for wiimote driver

The raw hid output function that is supported by bluetooth low-level
hid driver does not provide an output queue and also may sleep. The
wiimote driver, though, may need to send data in atomic context so
this patch adds a buffered output queue for the wiimote driver.

We use the shared workqueue to send our buffer to the hid device.
There is always only one active worker which flushes the whole output
queue to the device. If our queue is full, every further
output is discarded.

Special care is needed in the deinitialization routine. When
wiimote_hid_remove is called, HID input is already disabled, but HID
output may still be used from our worker and is then discarded by the
lower HID layers. Therefore, we can safely disable the input layer since it
is the only layer that still sends input events.
Future sysfs attributes must be freed before unregistering input to
avoid the sysfs handlers to send input events to a non-existing input
layer.

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

Create array of all event handlers and call each handler when we
receive the related event.

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