msm: vidc: Handle mgen2maxi interrupt in video driver

Handle interrupt generated by mgen2maxi h/w and
avoid unknown interrupts storm which results in
target reset issues.

Change-Id: Ida24cb2dde15c9cd4a4c1d9ca336b1a4b662c4d1
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
msm: ipc: Do not load any subsystem by default

Some users of IPC Router like IPC Router Security Configuration (IRSC)
open up a socket, perform some configuration/lookup operation quickly and
then close the socket. This causes the IPC Router to load a subsystem by
default and then unload it immediately. This behavior causes the subsystem
to lock up sometimes during the boot process.

Remove loading and unloading a subsystem by default during the socket
create and close operation.

CRs-Fixed: 480156
Change-Id: I9c1c01c18a538a462bcf65902e496bc773a03991
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
msm: ipc: Load default subsystem under appropriate scenario

Only client and service ports are used for communication with the remote
subsystems. Load the default subsystem only when the clients lookup their
services or when the local services get registered with the IPC Router.

CRs-Fixed: 480156
Change-Id: I18729bb849c656a826de4f67f9ffe159dd3cf5f6
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
usb: chipidea: udc: fix memory access of shared memory on armv5 machines

The udc uses an shared dma memory space between hard and software. This
memory layout is described in ci13xxx_qh and ci13xxx_td which are marked
with the attribute ((packed)).

The compiler currently does not know about the alignment of the memory
layout, and will create strb and ldrb operations.

The Datasheet of the synopsys core describes, that some operations on
the mapped memory need to be atomic double word operations. I.e. the
next pointer addressing in the qhead, as otherwise the hardware will
read wrong data and totally stuck.

This is also possible while working with the current active td queue,
and preparing the td->ptr.next in software while the hardware is still
working with the current active td which is supposed to be changed:

writeb(0xde, &td->ptr.next + 0x0); /* strb */
writeb(0xad, &td->ptr.next + 0x1); /* strb */

<----- hardware reads value of td->ptr.next and get stuck!

writeb(0xbe, &td->ptr.next + 0x2); /* strb */
writeb(0xef, &td->ptr.next + 0x3); /* strb */

This appeares on armv5 machines where the hardware does not support
unaligned 32bit operations.

This patch adds the attribute ((aligned(4))) to the structures to tell
the compiler to use 32bit operations. It also adds an wmb() for the
prepared TD data before it gets enqueued into the qhead.

CRs-Fixed: 494323
Change-Id: I3fc2e0f662076572d61f97ed708026be3cd3e59c
Cc: stable <stable@vger.kernel.org> # v3.5
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: a9c174302b1590ef3ead485d804a303c5f89174b
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
[pkondeti@codeaurora.org: resolved merge conflicts]
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
media: dvb: Fix error handling of SDMX API failures

When setting of key-ladder index fails, there's no need
to fail starting of the filter since it could only mean
that decryption might fail if encrypted packets are encountered.

In addition, if closing SDMX session fails, SDMX TZ application
might be removed anyhow, therefore we should clear reference
counting of SDMX session so that it is re-opened if requested
in the future.

Change-Id: I17e1ce62b72910e2086d948807af969725c6f18b
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Merge "diag: Fix diag crash due to memory corruption"
Merge "msm: ipc: Do not load any subsystem by default"
Conflicts:
	arch/arm/mach-msm/ipc_socket.c
Merge "msm: ipc: Load default subsystem under appropriate scenario"
msm: camera: Added the NULL pointer check

Added the NULL pointer check for isp_config
to avoid the crashes

Change-Id: I2df7eeb5c633b04c3aac5d985cf50c2ece7f1076
CRs-Fixed: 495652
Signed-off-by: manish gotefode <mgote@codeaurora.org>
tty: smux_ctl: Add new SMUX port Support

smux_ctl exposes only one control port to userspace. Enabling of dual
PDN support requires two SMUX ports.

Add new SMUX control port to enable dual PDN support.

CRs-Fixed: 497343
Change-Id: I2a1d48f1e5d2acd1f67d7673d325c4360b783cf4
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
rmnet_smux: Increase Rmnet device instance count

Rmnet supports only one device instance.

Increase Rmnet device instance count to enable dual PDN support.

CRs-Fixed: 497343
Change-Id: I1b3eacec4404ac72a524380a1fff39e6b257ade8
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
Merge "msm_fb: hdmi: Return proper clock get error code"
msm: camera: Return from DQBUF ioctl in case of error.

Incase the vb2_dqbuf call returns error, we are continuing
ahead and trying to access the fields of the vb2 buffer which
may not be initialized yet. Avoid this by checking the
return value of vb2_dqbuf and return immediately in case of
errors.

Change-Id: I33036fe9b3bd7ce2b28e9cd6e4cd5f293425be95
CRs-Fixed: 495635
Signed-off-by: Kiran Kumar H N <hurlisal@codeaurora.org>
devices-8960: Fix camera failure with newer tz firmware

Change-Id: I524ff7196d9f3ae268178826b986d5dcee1de88f
Merge "ALSA: PCM: volume API implementation"
Merge "ASoC: msm: Add PCM loopback volume control"
msm: rotator: Enable support for 2-pass fast YUV mode

Add support for 2-pass rotator operation for downscaling
and 90 degree rotation when rotator operates in fast YUV
mode. 2-pass is supported for 420 H2V2 formats.

Change-Id: Ib8ce802a5a8aabe10c88422e3b8d82708c5b05d4
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
msm: vidc: Get the current performance level

This change supports client to get the current
performance level of the video driver via
IOCTL_GET_PERF_LEVEL. The current performance
level indicate the number of MBs per second
is being processed by video hardware.

Change-Id: Ic6f5b2b14e0d77bf801c4f857f8a0e20339c199f
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
ARM: 7693/1: mm: clean-up in order to reduce to call kmap_high_get()

In kmap_atomic(), kmap_high_get() is invoked for checking already
mapped area. In __flush_dcache_page() and dma_cache_maint_page(),
we explicitly call kmap_high_get() before kmap_atomic()
when cache_is_vipt(), so kmap_high_get() can be invoked twice.
This is useless operation, so remove one.

v2: change cache_is_vipt() to cache_is_vipt_nonaliasing() in order to
be self-documented

Change-Id: I36e5a63fdae158d9e7562f564f7e593b351f6960
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Git-commit: dd0f67f4747797f36f0c6bab7fed6a1f2448476d
Git-repo: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
[Few merge conflict resolved]
Signed-off-by: Chintan Pandya <cpandya@codeaurora.org>

Conflicts:
	arch/arm/mm/dma-mapping.c
Merge "msm_serial_hs: Use RFR GPIO to communicate remote uart"
Conflicts:
	drivers/tty/serial/msm_serial_hs.c