Set as-instr to use printf intsead of echo

as-instr was hardcoded to use /bin/echo with the -e option.
Non-GNU systems like MacOSX would fail and cause compiler errors.

Since BSD echo does not have the -e option (escape backslashes)
prinf was used instead would should be more friendly cross-platform

Specifically with the new OSX toolchain it caused the following
error:
  Error: selected processor does not support ARM mode `smc #0'

This was caused by $(call as-instr,.arch_extension sec,+sec) failing
since it was using echo -e.

See: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html

  "It is not possible to use echo portably across all POSIX systems
   unless both -n (as the first argument) and escape sequences are
   omitted.

  The printf utility can be used portably to emulate any of the
  traditional behaviors of the echo utility as follows (assuming
  that IFS has its standard value or is unset)

  New applications are encouraged to use printf instead of echo."

Change-Id: I558ec343e9bb8d449e1af710d329b4dc76743a05
tspdrv: Add timed interface

For simpler compatibility with the standard Android vibration code
omap_hsi: Support radio firmwares with the retry channel

These were introduced in LGE OMAP4 devices a few months ago as a workaround
for a connectivity issue, and need to be recognized to avoid triggering
processing its information as regular packets. Should fix radio on the CX2
and more recent euro cosmo basebands
defconfig: enable zRAM and KSM
bd_address: Return bdaddr in patchram's format

This allows brcm_patchram_plus to properly set the BT address
from sysfs, in userspace
lge: prm44xx: Fix rebooting into fastboot
u2: cmdline: add android standard boot pause argument
Add permission checking for binder IPC.
Do not apply permission checks to private files.
Fix security_binder_transfer_binder hook.

Drop the owning task argument to security_binder_transfer_binder
since ref->node->proc can be NULL (dead owner?).
Revise the SELinux checking to apply a single transfer check between
the source and destination tasks.  Owning task is no longer relevant.
Drop the receive permission definition as it is no longer used.

This makes the transfer permission similar to the call permission; it is only
useful if you want to allow a binder IPC between two tasks (call permission)
but deny passing of binder references between them (transfer permission).
netfilter: xt_qtaguid: remove AID_* dependency for access control

qtaguid limits what can be done with /ctrl and /stats based on group
membership.
This changes removes AID_NET_BW_STATS and AID_NET_BW_ACCT, and picks
up the groups from the gid of the matching proc entry files.

Signed-off-by: JP Abgrall <jpa@google.com>
Change-Id: I42e477adde78a12ed5eb58fbc0b277cdaadb6f94
netfilter: xt_qtaguid: extend iface stat to report protocols

In the past the iface_stat_fmt would only show global bytes/packets
for the skb-based numbers.
For stall detection in userspace, distinguishing tcp vs other protocols
makes it easier.
Now we report
  ifname total_skb_rx_bytes total_skb_rx_packets total_skb_tx_bytes
  total_skb_tx_packets {rx,tx}_{tcp,udp,ohter}_{bytes,packets}

Bug: 6818637
Signed-off-by: JP Abgrall <jpa@google.com>
netfilter: xt_qtaguid: Allow tracking loopback

In the past it would always ignore interfaces with loopback addresses.
Now we just treat them like any other.
This also helps with writing tests that check for the presence
of the qtaguid module.

Signed-off-by: JP Abgrall <jpa@google.com>
netfilter: qtaguid: rate limit some of the printks

Some of the printks are in the packet handling path.
We now ratelimit the very unlikely errors to avoid
kmsg spamming.

Signed-off-by: JP Abgrall <jpa@google.com>
panel-hx8389: Allow reading the kcal RGB values
tspdrv: Add a sysfs control for timed vibrator strength
apds9190: Fix gcc 4.7-induced failure

The int init function wasn't actually returning an int, and while the
default assumption for that case was OK with older compilers, it
failed hard with 4.7 resulting in random behavior
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>