USB: msm72k_otg: Handle clearing all otg interrupt status bits

Hardware is generating a 1MSIS interrupt during PHY reset while doing a
USB disconnect and is not being cleared. Handle such corner cases and
clear all otg interrupts.

CRs-Fixed: 384247
Signed-off-by: Rajkumar Raghupathy <raghup@codeaurora.org>
(cherry picked from commit 020d62d16e85e88db4371a5d842283003e61a8cd)

Change-Id: I1da53e8cf7a793fc866fb719cd887adc6bccb87c
Signed-off-by: Gopal Goberu <ggober@codeaurora.org>
USB: EHCI: Fix bug in updating root hub state during initialization

commit e879990 (USB: EHCI: remove usages of hcd->state) removed the
hcd->state usage in EHCI driver.  Instead rh_state field of ehci_hcd
struct should be used. But the current code is still using
hcd->state. This bug is introduced during 3.4 kernel porting.

If rh_state field is not updated to RUNNING from HALT state during
root hub initialization, interrupts are not handled by EHCI code in
ehci-hcd.c. This causes multiple interrupts getting triggered and
eventually leads to disabling of USB interrupt by kernel. Due to this,
enumeration of connected peripherals will fail.

CRs-Fixed: 385124
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
(cherry picked from commit 78aad5937188125073b7e91f86af803fc97dc86f)

Change-Id: I55ba9ee938d8ac3fa93770a0eb0a1fca3c7e9099
Signed-off-by: Ram Kumar Chakravarthy Chebathini <rcheba@codeaurora.org>
USB: msm72k_otg: Block notifying pmic about current drawn multiple times

In some cases, due to spurious interrupts, we may end up in notifying the
amps of current to be drawn to the PMIC multiple times.

Handle such cases by comparing the previously updated data to the PMIC with
the present data.

CRs-Fixed: 309178
Signed-off-by: Rajkumar Raghupathy <raghup@codeaurora.org>
(cherry picked from commit 67ff4ed3a15d43cf3e1e83d72a6eae247998c69b)

Change-Id: I550d0460088fd1dfb71e7b164db70937032ab1b0
Signed-off-by: Sivasri Kumar Vanka <sivasri@codeaurora.org>
USB: OTG: Vote against APP's idle PC in USB Host Mode

In USB Host mode, When the target is going to APP's
idle PC and coming out with any peripheral device
connected, target is crashing. Fix this issue by
not allowing Idle PC in USB Host Mode.

Signed-off-by: Murali Nalajala <mnalajal@codeaurora.org>
(cherry picked from commit 9d672c8f341fc2bbee2c6ee0108d7d8eedbe999f)

Change-Id: If590888fdc4dd52b4a3014c77f2d14ad7a30b4da
Signed-off-by: Gopal Goberu <ggober@codeaurora.org>
cfg80211: intersect the regulatory rules for a new country

When the driver hints that it has detected a change in country
make sure that we intersect the regulatory rules in the global
strucutres maintained by cfg80211.

Change-Id: Iaaf43280e9dd7be43b699748726f282e4475340f
CRs-Fixed: 582344
Signed-off-by: Mihir Shete <smihir@codeaurora.org>
defconfig: remove support for /dev/mem and /dev/kmem on perf builds

Keeping /dev/mem and /dev/kmem exposed to userspace allows userspace
to peek/poke to these areas and is a security risk. Remove support for
/dev/mem and /dev/kmem on perf builds.

Change-Id: Iad85b34039a67c5f8796adfd16543a94a1bc3054
CRs-Fixed: 530719
Signed-off-by: Sarang Joshi <spjoshi@codeaurora.org>
uio: msm_sharedmem: Add new device driver for sharedmemory access

Add new device driver to provide a standard interface for its
clients (like RemoteFS and RFSA) to be able to memory map their
respective allotted shared memory address in the client's address space.
The shared memory (a transport buffer) address is unique for each
individual client and is made available to the driver via device tree.

This driver uses the existing UIO framework to facilitate the clients
mmap requirements. Each individual client will be able to use a unique
UIO device for this purpose.

CRs-Fixed: 477427
Change-Id: If07b88086b5f1b87845962818094644575629fcf
Signed-off-by: Pratibhasagar V <pratibha@codeaurora.org>
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
ARM: dts: msm: Add new 'sharedmem' devices

Add new devices which need to maintain the shared memory
address for RemoteFS and RFSA

CRs-Fixed: 477427
Change-Id: Id5f3ea2a827d5a30b06d872d7a72468f1fd7718f
Signed-off-by: Pratibhasagar V <pratibha@codeaurora.org>
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
defconfig: Enable msm_sharedmem UIO driver

Enable msm_sharedmem UIO driver on targets which use RemoteFS
(over QMI) and RFSA.

CRs-Fixed: 477427
Change-Id: I63d95aa0fcbbdc17d64fb7749ed50c3890551dce
Signed-off-by: Pratibhasagar V <pratibha@codeaurora.org>
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
radio: iris: Avoid inconsistent free

There is memory leak chance if we exit
from function early. Ensure to use free before
exiting from function.

Change-Id: I17dbecffc5713d95c66ecec0bffb5ed3c8660fe8
CRs-Fixed: 540334
Signed-off-by: Ayaz Ahmad <aahmad@codeaurora.org>
radio: tavarua: Added NULL checks for input arguments.

Added NULL checks for input arguments.

Change-Id: Ie39c2b3254c95925723735423c81b99da59ee6ad
CRs-fixed: 548405
Signed-off-by: Satish Kodishala <skodisha@codeaurora.org>
radio: iris: Prevent probable overflow

casting a unsigned int into an integer, integer to
unsigned int may cause buffer overflow.

Change-Id: I54be4d4c5470616a59a772c587fe6d5f32575c32
CRs-Fixed: 539008
Signed-off-by: Ayaz Ahmad <aahmad@codeaurora.org>
csdio: Remove the driver

The driver is a legacy driver that is not used any longer
and its implementation is neither correct nor compiles.

Change-Id: I9862c0f93ccad6079a616f6997987d4e187a137c
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
radio: iris: Use kernel API to copy data from user space

Use copy_from_user kernel api to copy any data from user space
to kernel space.

Change-Id: Ia3b7bb0f98180bd8792c1c18e930cb5609b8dc82
CRs-Fixed: 540320
Signed-off-by: Ayaz Ahmad <aahmad@codeaurora.org>
msm_serial_hs: Programming Auto RFR Ctrl bit

1.)Disable the auto RFR before forcibly making the RFR
line HIGH from the driver to avoid the controller
changing it's state with out driver's knowledge and
enable the auto RFR instead of making the RFR line
forcibly LOW.So that controller will make it LOW
based on the rx FIFO condition

2.)Due to unexpected data received from the client during
clock off sequence, the clock off sequence is going
into wrong state and eventually leads to uart hardware
mess up
This patch doesn't allow any data from the client during
clock off sequence is in progress

CRs-Fixed: 546216
Change-Id: I10ce82124163e8cf9a0603302d4f128ca255214d
Signed-off-by: Dilip Kota <c_dkota@codeaurora.org>
Signed-off-by: Dilip Kota <c_dkota@codeaurora.org>
msm: kgsl: Protect against a potential overflow in kgsl_sg_alloc

Avoid allocating a scatterlist so large that it overflows the size
passed to the memory allocators.

CRs-fixed: 564448
Change-Id: Ic0dedbad2ab421ddec8f3be38d61c9bdf9ae5bd4
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
msm: kgsl: avoid zero length scatterlist allocation

During sglist allocation we calculate sglen as
per below

sglen_alloc = PAGE_ALIGN(size) >> PAGE_SHIFT;

sglen_alloc can be zero if size falls within the
last page. For example, when size = 0xFFFF_FF7B,
PAGE_ALIGN(0xFFFF_FF7B) will be 0, considering
0x1000 (4kb) PAGE_SIZE. if kzalloc() with
zero size, it will return ZERO_SIZE_PTR which is
not NULL and we always do NULL check. Dereferencing
ZERO_SIZE_PTR will lead to a distinct access fault.

Signed-off-by: Gaurav Gagrani <ggagrani@codeaurora.org>

Change-Id: Ibcc6198438c13b5111be0faa736328db92511597
CRs-Fixed: 563106
Signed-off-by: Prakash Kamliya <pkamliya@codeaurora.org>
radio: iris: Avoid memory leak and NULL pointer dereferencing

 - Avoid memory leak by freeing allocated memory
 - Do not derefer NULL pointer

CRs-Fixed: 537955
Signed-off-by: Ayaz Ahmad <aahmad@codeaurora.org>
Change-Id: I7624d73e5c25233e9d03c67e4204c611b9a8fff6