Commit Graph

50372 Commits

Author SHA1 Message Date
Ajay Dudani
0b7283e0de USB: gadget: f_accessory: Add support for HID input devices
Signed-off-by: Mike Lockwood <lockwood@google.com>
Change-Id: I4f5722bfa26a0d73419c54709b2f1672491bf56a
2013-03-04 12:46:35 -08:00
Ajay Dudani
c0230fd35b Add ACCESSORY_SET_AUDIO_MODE control request and ioctl
The control request will be used by the host to enable/disable USB audio
and the ioctl will be used by userspace to read the audio mode

Signed-off-by: Mike Lockwood <lockwood@google.com>
Change-Id: I48082ce473eb6577b0bf613be9ec27f2f5c19384
2013-03-04 12:46:34 -08:00
agathon.jung
613e3b6f4c msm: mdm: Add shutdown ioctl and send poweroff request to the mdm
When the whole phone is being powered off, a poweroff request needs
to be sent to the external modem so that it can shutdown gracefully.
This request needs to be triggered from userspace before kernel drivers
start unloading so that other drivers needed to send the request are
still available. The shutdown ioctl is provided for this purpose.
The request is sent over system monitor.

Crs-Fixed: 401598
Signed-off-by: Joel King <joelking@codeaurora.org>
2013-03-04 12:46:28 -08:00
choongryeol.lee
0338875786 power: pm8921-charger: prevent recharging when batt is overheat
When battery is forced to stop charging by overheat, re-charging
should not be initiated even if re-charging condition is satisfied.

Change-Id: I0070039a186ccf3f12c0e79a8696a7aa3c61e538
2013-03-04 12:46:23 -08:00
jh.koo
cbff6e7a0c slimport: Modify to support slimport-to-VGA and slimport-to-DP dongles
Change-Id: I4bbe996351d50bfa2a4073987c97db37a4ed3484
2013-03-04 12:46:21 -08:00
Kinjal Bhavsar
70f7421a80 msm: display: Buffer sync point support
Add MSMFB_BUFFER_SYNC ioctl for the communication of
the acquired and released fence fd between kernel and hwc.

Wait for acquired fence before pan display.
Release the previous released fence after pan display

Change-Id: I6534aed574a025d948581e70465f06a86b46c868
Signed-off-by: Ken Zhang <kenz@codeaurora.org>
2013-03-04 12:46:14 -08:00
Jeff Boody
855ae3da46 msm: kgsl: Add support for Android's sync point framework
The Android sync point framework will replace the synchronization
previously implemented by genlock. This change implements the KGSL
component of the sync point framework by creating a fence that is
automatically signaled by KGSL when it's timestamp expires. The
fence FD is returned to the user driver so that another process
can wait for the sync point.

Change-Id: Ifee38dfde00e551f3524f7a37833938dcdb64905
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
2013-03-04 12:46:04 -08:00
Devin Kim
204ebe9035 af_netlink: force credentials passing [CVE-2012-3520]
Pablo Neira Ayuso discovered that avahi and
potentially NetworkManager accept spoofed Netlink messages because of a
kernel bug.  The kernel passes all-zero SCM_CREDENTIALS ancillary data
to the receiver if the sender did not provide such data, instead of not
including any such data at all or including the correct data from the
peer (as it is the case with AF_UNIX).

This bug was introduced in commit 16e5726269
(af_unix: dont send SCM_CREDENTIALS by default)

This patch forces passing credentials for netlink, as
before the regression.

Another fix would be to not add SCM_CREDENTIALS in
netlink messages if not provided by the sender, but it
might break some programs.

With help from Florian Weimer & Petr Matousek

This issue is designated as CVE-2012-3520

Change-Id: Id4f36301d407ef5c8218c5ef9f66d299766cdf57
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Petr Matousek <pmatouse@redhat.com>
Cc: Florian Weimer <fweimer@redhat.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-03-04 12:46:00 -08:00
kyungtae.oh
5a934bae83 power: cleanup the messages of wireless charger
Change-Id: Ie86b46cb9f30fd2e795a144123eec0282ac6e664
2013-03-04 12:45:59 -08:00
Devin Kim
be65d0bafa android_vibrator: warmup delay for vibration sensitivity
add warmup delay before vibrator off

Change-Id: Ie6dd325cc6c6b0f6d4501414442472cd40beb4df
Signed-off-by: Iliyan Malchev <malchev@google.com>
2013-03-04 12:45:54 -08:00
Ajay Dudani
e8cbb4da04 EHCI: HSIC: Pass interrupt threshold value as platform data
Interrupt threshold value is the maximum rate at which HSIC
controller will issue interrupts to processor. Increasing
this value results in fewer interrupts which may save power
as processor has to handle fewer interrupts. Side effect of
increasing this value is higher data latency. For fusion3,
set the ITC(interrupt threshold control) to 5 and default
for other targets. Also, allow ehci stack to set ITC value
per controller basis.

CRs-Fixed: 374661
Change-Id: I0e6bc210679ef211c2850ffbe1dfc80da2f65bf0
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2013-03-04 12:45:50 -08:00
Devin Kim
217b182a49 switch: fsa8008: control uart console
Add the function to control uart console

Change-Id: I932a4c4e5017ded30400b0f7dafbdb365713482b
2013-03-04 12:45:46 -08:00
Ajay Dudani
d064955d29 sync: change wait timeout to mirror poll semantics
Change-Id: Ib38e6d339d41885a33027752690d65a52b6897f6
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2013-03-04 12:45:41 -08:00
Ajay Dudani
863f04856c sync: add reference counting to timelines
If a timeline is destroyed while fences still hold pts on it, the reworked
fence release handler can cause the timeline to be freed before all it's points
are freed.

Change-Id: I1cd8ddb638eded7db9db446ff6b37f3dd165d6c4
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2013-03-04 12:45:40 -08:00
Ajay Dudani
29b442f3ce sync: add internal refcounting to fences
If a fence is released while a timeline that one of it's pts is on is being
signaled, it is possible for that fence to be deleted before it is signaled.
This patch adds a refcount for internal references such as signaled pt
processing.

Change-Id: Ie8605e6fd2ac026c207220a03d84e1c1078ec719
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2013-03-04 12:45:39 -08:00
choongryeol.lee
a81a841921 power: pm8921-charger: use SoC % value for charging stop and resume
Current pm8921 charger code doesn't consider the SoC % to determine
end of charging and recharging state. This can cause weird UI display
on SoC % and charging state.
For example, charging is completed when SoC % is not reached 100% or
charging is not completed even if SoC % is already 100%.
So this patch change how to determine end of charging and recharging.

Change-Id: Ice658488744d71117fedb64e0fa0eb7ad34c6573
2013-03-04 12:45:35 -08:00
jh.koo
6ff2586036 slimport: Add slimport detection function
It will be used for charger detection codes. slimport is also used
as charger like as usb charger

Change-Id: Idd40dd88b8a5f035dfb207dd787d7fd3f4ae713b
2013-03-04 12:45:23 -08:00
Jongrak Kwon
6ea1f6f413 mako: touch: error checking for firmware update
Corrected not working touch problem when the firmware update was failed or
LCD was turned on or off during firmware update.

Change-Id: Ib61c3d9927d670eb4091253efc71499b88b51b9f
2013-03-04 12:45:19 -08:00
Jongrak Kwon
282302c825 mako: touch: add sys node for charger status update
Will be used to enable noise mitigation bit in firmware
to reduce noise when TA/USA/Wireless charger is connected.

Change-Id: Ia4174271758ca2dbd013b80ddcabffea2e2cae82
Signed-off-by: Iliyan Malchev <malchev@google.com>
2013-03-04 12:45:18 -08:00
Devin Kim
4d9eedfb17 switch: fsa8008: fix to detect earjack during deep sleep
When resuming device, If there is changed the detect state,
then update the detect state.

Change-Id: I9f5fa06e3c82a51768d9e805127526a84f0df65f
2013-03-04 12:45:14 -08:00
Devin Kim
7e45a10da4 backlight: lm3530: add the backlight map in platform data
Add the backlight map into platform data for calibrating
by the board specific values

Change-Id: Ib997a8cbf738b2700305028f47178f31420f9e85
2013-03-04 12:45:13 -08:00
David Herrmann
4bc92c0070 HID: uhid: implement feature requests
HID standard allows sending a feature request to the device which is
answered by an HID report. uhid implements this by sending a UHID_FEATURE
event to user-space which then must answer with UHID_FEATURE_ANSWER. If it
doesn't do this in a timely manner, the request is discarded silently.

We serialize the feature requests, that is, there is always only a single
active feature-request sent to user-space, other requests have to wait.
HIDP and USB-HID do it the same way.

Because we discard feature-requests silently, we must make sure to match
a response to the corresponding request. We use sequence-IDs for this so
user-space must copy the ID from the request into the answer.
Feature-answers are ignored if they do not contain the same ID as the
currently pending feature request.

Internally, we must make sure that feature-requests are synchronized with
UHID_DESTROY and close() events. We must not dead-lock when closing the
HID device, either, so we have to use separate locks.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:08 -08:00
David Herrmann
5b0581f6e2 HID: uhid: forward raw output reports to user-space
Some drivers that use non-standard HID features require raw output reports
sent to the device. We now forward these requests directly to user-space
so the transport-level driver can correctly send it to the device or
handle it correspondingly.

There is no way to signal back whether the transmission was successful,
moreover, there might be lots of messages coming out from the driver
flushing the output-queue. However, there is currently no driver that
causes this so we are safe. If some drivers need to transmit lots of data
this way, we need a method to synchronize this and can implement another
UHID_OUTPUT_SYNC event.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:08 -08:00
David Herrmann
2cff1bf905 HID: uhid: forward output request to user-space
If the hid-driver wants to send standardized data to the device it uses a
linux input_event. We forward this to the user-space transport-level
driver so they can perform the requested action on the device.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:07 -08:00
David Herrmann
d42565627f HID: uhid: forward open/close events to user-space
HID core notifies us with *_open/*_close callbacks when there is an actual
user of our device. We forward these to user-space so they can react on
this. This allows user-space to skip I/O unless they receive an OPEN
event. When they receive a CLOSE event they can stop I/O again to save
energy.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:07 -08:00
David Herrmann
49dca004e2 HID: uhid: add UHID_START and UHID_STOP events
We send UHID_START and UHID_STOP events to user-space when the HID core
starts/stops the device. This notifies user-space about driver readiness
and data-I/O can start now.

This directly forwards the callbacks from hid-core to user-space.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:06 -08:00
David Herrmann
2d040ffbd0 HID: uhid: allow feeding input data into uhid devices
This adds a new event type UHID_INPUT which allows user-space to feed raw
HID reports into the HID subsystem. We copy the data into kernel memory
and directly feed it into the HID core.

There is no error handling of the events couldn't be parsed so user-space
should consider all events successfull unless read() returns an error.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:05 -08:00
David Herrmann
4cde483c27 HID: uhid: add UHID_CREATE and UHID_DESTROY events
UHID_CREATE and UHID_DESTROY are used to create and destroy a device on an
open uhid char-device. Internally, we allocate and register an HID device
with the HID core and immediately start the device. From now on events may
be received or sent to the device.

The UHID_CREATE event has a payload similar to the data used by
Bluetooth-HIDP when creating a new connection.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-03-04 12:45:04 -08:00
David Herrmann
dfab99ef47 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>
2013-03-04 12:45:02 -08:00
Ajay Dudani
5f7f224e7b msm: hsic: Retry port RESUME if unable to send SOFs within 3ms
Due to h/w bug in hsic controller, interrupts are disabled during
resume signalling (~20ms), commit: e404049ae, which may result in
below issues
1. Delayed MDP interrupts causing display stutters
2. Since default workqueue disables preemption for 20ms, the kernel
   scheduler schedules out the worker thread for long time. It results
   in MDM crash due to delayed response
To avoid busy loop, port resume is performed without disabling the
interrupts. Due to this if resume time constraint is not met then
don't start SOF and retry RESUME after some time. This delay (w/o SOF)
lets the device to enter SUSPEND state (after issuing remote wakeup)
and followed by RESUME after sometime. Also, Move the resume code to
hsic controller driver to avoid changes to ehci upstream code.

CRs-Fixed: 383752
Change-Id: Ic4768587bbb9a00d8cf495065ec9e14c46a5c1d4
Signed-off-by: Vamsi Krishna <vskrishn@codeaurora.org>
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2013-03-04 12:44:58 -08:00
Devin Kim
66e19b7a38 EHCI: HSIC: Use counter for timeout in ulpi_read()
ulpi_read() relies on jiffies to calculate the timeout
for read operation on phy register. Calling ulpi_read()
with interrupts disabled, freezes jiffies on local processor.
In case of phy lockup this results in infinite loop leading
to watchdog reset. Use loop counter for timeout instead of
jiffies for read operation to avoid watchdog reset.

CRs-Fixed: 388234
Change-Id: I1d46052b087c42b9f422b6f7eb691498fa104718
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-03-04 12:44:52 -08:00
samin.ryu
32680eaa3a leds: pm8xxx: change adjust brightness routine
add pwm_adjust_brightness field for current control.

Change-Id: If0ba79324fcf50334f88f006a8ff30b59b7d4982
2013-03-04 12:44:46 -08:00
Ajay Dudani
7196637a6e gpu: ion: Add compatibility with future changes
Several changes are pending to be pulled in which are
not compatible with our changes. Specifically, a new
field to the allocation ioctl is added and the ioctl
numbers for cache flushing need to be changed.
Add these changes now until full changes can be pulled
in the future.

Change-Id: I9540495e25c7b6c414a6e3719f66f2cd9f78c585
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
2013-03-04 12:44:45 -08:00
choongryeol.lee
4e4f4dabfd power: pm8921: consideration of ibat max overwrite
The thermal mitigation and battery temp control can overwrite
the ibat max value each other. So this patch remove the possibility
of overwrite ibat max value by mitigation and battery temp control.

Change-Id: Ib0f7bf2b8bd2e474d1d9c76bd5100b05310cb048
2013-03-04 12:44:44 -08:00
choongryeol.lee
58a482fbef power: battery: add argument to set_health_state()
Add argument to set_health_state() for notification
of current change to charger driver.

Change-Id: I4ae2875c5b2c29689d11f8dbe5be20e5667453d4
2013-03-04 12:44:43 -08:00
Devin Kim
152964bd36 android_vibrator: clean up codes and handle errors
Change-Id: I86e8d7a77a1f0a2b03bcb1b434fb68cb1d7b6e1a
2013-03-04 12:44:40 -08:00
Iliyan Malchev
e05110dbd7 msm_ion.h: switch to using legacy_ion.h
Signed-off-by: Iliyan Malchev <malchev@google.com>
2013-03-04 12:44:38 -08:00
Iliyan Malchev
0cc2262f23 legacy_ion.h: a backwards-compatibility copy of ion.h
cloned from include/linux/ion.h at:

commit b6b0b65325e6f5eb5fcfd88d270f710d947f7962
Author: Brian Muramatsu <btmura@google.com>
Date:   Mon Jul 30 22:54:08 2012 -0700

    Add heap_mask to ion_allocation_data

Signed-off-by: Iliyan Malchev <malchev@google.com>
2013-03-04 12:44:37 -08:00
kibum.lee
e897ca1223 usb: msm_otg: fix for TA detection bug
This patch solves the problem of recognize usb link when the TA is slow to
connect.

Change-Id: I9ebd118a53175a272117a75b5a5a1554da9c3d8b
Signed-off-by: Iliyan Malchev <malchev@google.com>
2013-03-04 12:44:35 -08:00
Iliyan Malchev
47bb9eb414 Revert "msm: tty: update receive room just before writing data to the ldisc"
This reverts commit 913565a83d74fe1da0914e8c355345bc616131c4.
2013-03-04 12:44:26 -08:00
kyungtae.oh
f8de54b40d mako: power: use wireless charger api instead of power supply api
This is expected to prevent missing wireless charger state.
The bms needs to know if anything is connected to the wireless charging.

Change-Id: Ie97130cc515d19ab17b67267d9aca7588c1fff72
2013-03-04 12:44:23 -08:00
Devin Kim
5d51c40a8d power: battery: add battery temperature control
The battery temperature should be controlled for safty.
So this patch indroduce battery temperature control.

Change-Id: Ia00e7ce5bf697591be2da94f9a7c2960738642d5
2013-03-04 12:44:22 -08:00
Devin Kim
7024f83d08 pm8xxx-adc: add the functions to set tuning parameters
We need to tune the board specific adcmap parameters
So need functions to set specific parameters.

void pm8xxx_set_adcmap_btm_threshold(void *pts, int size)
void pm8xxx_set_adcmap_pa_therm(void *pts, int size)
void pm8xxx_set_adcmap_ntcg_104ef_104fb(void *pts, int size)

Change-Id: Ie78c11f5fb998ecc456defa3c8e3e7a3e0b9b45f
2013-03-04 12:44:20 -08:00
Naseer Ahmed
8b1bd63cfb msm: mdp: Fix reserved field usage
An earlier commit(ec5b2f)increased the number of reserved fields
in the kernel standard fb.h header changing the struct size.
This caused issues with userland applications using the corresponding
bionic header. This patch revert the earlier increas in size
and makes corresponding adjustments to the reserved field usage.
A follow up patch will remove usage of reserved fields entirely.
2013-03-04 12:44:09 -08:00
Devin Kim
1681b2682b mako: set the led max brightness from 100 to 10
Change-Id: I41025f0b884be2a7226ca5a30731002723344415
2013-03-04 12:44:06 -08:00
samin.ryu
21e0694a39 leds: pm8xxx: add pwm control sysfs files
PWM(frequency) is controlled by userspace

Change-Id: I6a3194de0b843841cdf56941dbcc43fcdc3a4f42
2013-03-04 12:44:05 -08:00
Ajay Dudani
51edcc2511 power: pm8921-charger: enable battery alarm
During UVLO events the charger hardware may lock up
if it is in hardware clock switching mode.

To fix this add a battery alarm with a lower threshold
that disables hardware clock switching.

When the system is awake the resume callback ensures
that the charger is running off of the 19.2 MhZ clock
which does not allow the charger to lock up. Therefore
if the battery alarm wakes up the device before hitting
UVLO the charger hardware will not be in hardware clock
switching mode.

CRs-Fixed: 374607
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>

Change-Id: I1bb20b2e7ff1a11f032b12b4abd4804ed130fe4a
2013-03-04 12:43:59 -08:00
Jaeseong GIM
93c86c992b mako: debug: porting lge crash handler
Change-Id: I913d372131a25bb9c0d90680f5e96cebb8883055
Signed-off-by: Iliyan Malchev <malchev@google.com>
2013-03-04 12:43:39 -08:00
Brian Muramatsu
fb84f15d19 Add heap_mask to ion_allocation_data 2013-03-04 12:43:36 -08:00
wongab.jeon
3e8639b3ad mako: nfc: add new nfc broadcom driver
Change-Id: I3b06a3c77c8d935798fcbdb627a7fca983503d08
2013-03-04 12:43:35 -08:00