rtc: qpnp-rtc: Set alarm control register properly

RTC Alarm enable bit does not get conserved during
RTC probe function. This patch fixes that issue.

CRs-Fixed: 636652
Change-Id: I28203b8e301510d34d2e726c0bd25e78737f7524
Signed-off-by: Mohit Aggarwal <maggarwa@codeaurora.org>
USB: phy-msm-usb: Disable charger detection block on DISCONNECT

VBUS LOW (or DISCONNECT) may happen any time during charger detection
phase. If it happens before charger detection is complete then there
is a possibility of leaving IDP_SRC or VDP_SRC enabled which can
affect charger detection on next cable connect.

Change-Id: Ifde35112aeae294b1979255b9757d5e4fc62c8b0
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Signed-off-by: ChandanaKishori Chiluveru <cchilu@codeaurora.org>
USB: ci13xxx_msm: Clear LINK's SW_VBUS state in USBCMD on DISCONNECT

Most platforms typically rely on USB PHY for sess_vld signal inside
the Link Controller. In case VBUS is not fed to PHY, software can
configure LINK to rely on software controlled bit in USBCMD register
(USBCMD_SESS_VLD_CTRL) for sess_valid. LINK pulls DP HIGH when
running in peripheral mode and sess_valid signal is present.
On VBUS DISCONNET, software currently stops LINK without clearing
sess_valid bit. And it is noticed that USB LINK continues to pull
DP high even after stopping if USBCMD_SESS_VLD_CTRL is not cleared.
This results in charger compliance tests failing renegotiation tests
where CDP --> SDP transition is checked by removing and reapplying
VBUS within 100 msec. Failure happens as compliance tester finds
DP at way too high level (~2.8v) during primary detection stage.

CRs-fixed: 633479
Change-Id: I883867e39e4d1a306e5e63ec1da445a3aede1585
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Signed-off-by: ChandanaKishori Chiluveru <cchilu@codeaurora.org>
soc: qcom: smd: Validate read and write addresses

The address from which data has to be read and the address to which the
SMD data has to be written is calculated based on the head and tail
indices for that SMD FIFO. If the indices are corrupted, then the
calculated pointer may be outside of the FIFO and may even be outside of
the range of SMEM.

Validate the read and write addresses to be with in the limits of
receive and send FIFO limits respectively.

CRs-Fixed: 550527
Change-Id: Ie5578f6aee73ea2b1435fea7c2a0a6dda14bff82
Signed-off-by: Zaheerulla Meer <zmeer@codeaurora.org>
msm: vidc: rewrite v4l2 cluster construction

V4L2 framework has limitation of not supporting
same control in multiple clusters. Overcome this
limitation by grouping all controls into one
super cluster.

Change-Id: I974199e1388a1b33ae5e56edd4b0af712eb9babf
Signed-off-by: Arun Menon <avmenon@codeaurora.org>
msm: vidc: fix a race condition in cluster construction

At start of video session, when the super cluster is
constructed, it refers to a global static variable.
If we have multiple instances running simultaneously,
there exists a race condition, causing the instance
to register wrong cluster. Later on when a control
gets set in encoder, if the control is not found in
the cluster, we hit a BUG_ON, crashing the device.

Change-Id: Ib4ee64d684d903bb4f22310a1b34619728405649
Signed-off-by: Arun Menon <avmenon@codeaurora.org>
Merge "msm: vidc: rewrite v4l2 cluster construction"
Merge "msm: vidc: fix a race condition in cluster construction"
Merge "USB: phy-msm-usb: Disable charger detection block on DISCONNECT"
Merge "USB: ci13xxx_msm: Clear LINK's SW_VBUS state in USBCMD on DISCONNECT"
msm: camera: sensor: Update CCI WR comamnd buffer size to 11 bytes

I2C command length is of 11 bytes, it includes 10 bytes of data and
one byte of WR command. Use 11 bytes char array to create command.

Change-Id: Idf330fef6b8da79c6b7f5a2839d88a68e10a96f9
Signed-off-by: Rajesh Bondugula <rajeshb@codeaurora.org>
cfg80211: fix possible circular lock on reg_regdb_search()

When call_crda() is called we kick off a witch hunt search
for the same regulatory domain on our internal regulatory
database and that work gets kicked off on a workqueue, this
is done while the cfg80211_mutex is held. If that workqueue
kicks off it will first lock reg_regdb_search_mutex and
later cfg80211_mutex but to ensure two CPUs will not contend
against cfg80211_mutex the right thing to do is to have the
reg_regdb_search() wait until the cfg80211_mutex is let go.

Change-Id: Ibb44a5325876d77f1549d3938d56d8fbd051b9ba
CRs-Fixed: 655287
Signed-off-by: Santhosh Kumar Padma <skpadma@codeaurora.org>
Merge "msm: camera: sensor: Update CCI WR comamnd buffer size to 11 bytes"
rtc:alarm: remove alarm_shutdown hook in alarm driver

Putting alarm_shutdown into set_power_on_alarm is to set rtc alarm
time immediately after an alarm being set. It can avoid shutting
down unexpectedly before calling alarm_shutdown hook like removing
battery.Then power_on_alarm will be set to rtc twice when an alarm
is created and the device performs shutdown for a power off alarm.
The set process during shutting down is duplicated to the set
process when an alarm is created. So the alarm_shutdown hook become
unnecessary.

CRs-Fixed: 639119
Change-Id: Ie46bcf6f568f04650d94ba40ad6d4521d31a2f96
Signed-off-by: Xiaocheng Li <lix@codeaurora.org>
alarm : Fix the race conditions in alarm-dev.c

There will be race conditions between alarm set and alarm clear if
set_power_on_alarm is out of the lock.But set_power_on_alarm can't
be put into spin_lock. So add it into mutex_lock.

CRs-Fixed: 639115
Change-Id: I1db4836f67174b756c7f9d231f7a39cf0377d2c2
Signed-off-by: Xiaocheng Li <lix@codeaurora.org>
msm: camera: Fix crash in ispif release

There is a BUG_ON in ispif release function for
ispif base address. but in case of just open and close
of ispif subdevice leads to ispif base NULL.

BUG_ON is removed and proper error is added in ispif
release function to fix the issue.

Change-Id: I0cc12d52aff9db0d9bb8844473f9bd6547270e27
CRs-Fixed: 642603
Signed-off-by: Suresh Vankadara <svankada@codeaurora.org>
msm: mdss: Protect iommu attach/detach with mutex for mdp3

In case of command mode panels we get iommu attach/detach call
from different threads. Hence protect the iommu attach/detach
operations with a mutex.

Change-Id: If18ecc18ffea3f8a88f48b91251523e8df29eda7
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
Merge "msm: mdss: Protect iommu attach/detach with mutex for mdp3"
Merge "msm: camera: Fix crash in ispif release"
Merge "rtc:alarm: remove alarm_shutdown hook in alarm driver"