arm/dt: msm8974: Disable configuration data force update

Factory will program default configuration data, so disable
the force update feature which is present.  With this change,
updates will only happen when the major version ID matches
and the minor numbers are larger than in the existing version.

Change-Id: Ibbc58cc51e119e8f90aa3c86a9781180a98268eb
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
usb: gadget: purge pending responses upon rmnet suspend

Purge pending responses packets in case host suspend the bus as this
packets will not be requested by the host after resume.

Change-Id: I745b3a3611c1d4e2648364b5c3a78a8e6e3d9ea3
CRs-Fixed: 445433
Signed-off-by: Ido Shayevitz <idos@codeaurora.org>
arm/dt: 8974-liquid: Use async_irq to receive wake-up events in LPM

Enable support for async_irq which is used by HSIC controller to notify
wakeup events e.g. remote wakeup interrupt via a separate interrupt line.
This is required to support HSIC remote wakeup when PHY is suspended.

CRs-Fixed: 452718
Change-Id: Ie8fcfc66a6a70603dd2342701be88686eb8c3c62
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
power: qpnp-charger: add dc charging support

Add support for DC charging path for qpnp-chargers.

CRs-Fixed: 443429
Change-Id: I94c21232804640f1de593e8bdb013bd115d3577e
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
msm: smd_tty: correct wakelock cleanup

The read available wakelock for a port is not correctly cleaned up in
smd_tty_close for the case where the underlying SMD transport open call
(smd_named_open_on_edge) failed.  If the port was reopened after this
failure, then the global wakelock list would be corrupted and could result
in watchdog crashes.

Fix this problem by changing the conditions under which the read available
wakelock is cleaned up in smd_tty_close so that all cases are handled
properly.

CRs-Fixed: 452589
Change-Id: Ia1cef0c94ce1ed36087ef618b8dcc2426d313fdb
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
ASoC: wcd9320: Add wcd9320 codec hardware v2 support

The wcd9320 hardware v2 has different chip ID along with several
different registers' default value compare to v1.  Add this new codec
hardware support.

Change-Id: I326fb066b37a1dec6c9efc224f6f362eef9fa323
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
iommu: msm: Do not idle the IOMMU in fault handler

It is not neccessary to idle the IOMMU in the page fault handler.
The page fault handler is only writing to the CBn_FSR register
which has been declared safe to write to without idling the IOMMU core.

Change-Id: If15448acd1b752c26fbbcc18e8c1903213717885
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
iommu: msm: Set correct rate on clocks

Set correct rate on clocks before turning the clocks on or
they will not turn on and unclocked access will occur.

Change-Id: I2c551306afc57706eb5b96442f3d0509a2451280
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
power: pm8921-bms: Fix CC conversion precision

In a previous patch, the precision of the coulomb counter conversion
was reduced. Fix this by converting the CC value to picovolt-hours
before dividing by r_sense uohm to convert back to microvolt-hours.

Change-Id: I2cb4f99ea3636159dfefd2747b24e6ac3bbb7a04
Signed-off-by: Xiaozhe Shi <xiaozhes@codeaurora.org>
msm: camera2: Fix for buffer manager driver

There can be more than one buffer get from VB2 buffer.
Add list to the driver. All get buffer add to list and
search for buffer done.

Change-Id: I364241e2b03b8386ba68606337776c3ec2478558
Signed-off-by: Jignesh Mehta <jigneshm@codeaurora.org>
msm: vidc: Allow client to request sps/pps per IDR frame

Expose SET_SPS_PPS_FOR_IDR to allow client request sps/pps per IDR
frame.

Change-Id: I977e08473ed54b073f81c20c154a0d4ffff2c06f
Signed-off-by: Srinu Gorle <sgorle@codeaurora.org>
msm: display: video_info_code metadata setting

video_info_code is used for HDMI mode setting, setting
via metadata ioctl to get rid of reserved field usage

Change-Id: I6ea6550dc4342fae163218a39faf7ad9647eeae4
Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
msm: acpuclock-8974: Support "speed bin 1" parts

Some parts are have been binned and fused as belonging to speed bin
bin 1. Until specific frequency and voltage recommendations are
available for this new bin, allow the parts to boot with speed bin 0
tables, which are more conservative.

Change-Id: I2d5d4171b8740c6fa14bc9a2fac3b15d87e248ec
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
wcnss: Remove WCNSS register dump in bite handler

WCNSS bite handler logs a number of registers for debug purpose; however
accessing these WCNSS registers in this state could cause a timeout and
bite at Apps. In this case, there is no way Apps can guarantee that
necessary subsystems to access these registers within WCNSS are up. So
remove this register dump.

CRs-Fixed: 451487
Change-Id: I29d27f5dfa3afb1ce01c674b18b1d3e48d2bb715
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
ASoC: wcd9310: Use vddio switch during mbhc insertion detection

The MicBias voltage is varied dynamically during detection
which can cause issue if same CFILT is shared by headset and
handset. Switch to VDDIO on fourth measurement and deroute the
override to different micbias to address this.

Change-Id: I9772474058a481b33e1d6389b488679f85422eab
Signed-off-by: Simmi Pateriya <simmip@codeaurora.org>
EHCI: HSIC: fix driver removal function for msm_hsic_host

Upon driver removal function we need to disable the device pm runtime
in order to, first, undo all the logic done in probe and second, to keep
balanced disable depth counter in case of platform driver unbind.

However the removal function can be called also in consequences of
platform_device_del(), in this case the platform device was already
disabled and removed so if we call pm_runtime_disable() again we
decrease the disable_depth for the second time causing for unbalanced
counter.

Therefore we use an if statement to check if the device was already
removed or not.

CRs-Fixed: 445674
Change-Id: I5ff6b20d0f8e811a5c673903ca340f7bcc2e2d78
Signed-off-by: Ido Shayevitz <idos@codeaurora.org>
mmc: Add support to handle Urgent data transfer request

Urgent request notification stops currently running transaction
on bus.
In order to decrease a latency of a prioritized requests (aka Urgent
request), we might want to stop the transmission of a running "low
priority" request in order to handle the Urgent request. The urgency of
the request is decided by the block layer I/O scheduler. When the block
layer notifies the MMC layer of an urgent request and if the MMC layer is
blocked on current request to complete, it will be woken up.

The decision on whether to stop an ongoing transfer is taken according to
several parameters, one of them being the number of bytes already
transferred for ongoing transfer by host controller so far.

To calculate how many bytes were successfully programmed before stop,
CORRECTLY_PRG_SECTORS_NUM[245:242] parsed from EXT_CSD register. The
remainder of stopped request (and next prepared request in case it
exists) re-inserted back to the I/O scheduler to be handled after the
completion of the urgent request.

In case it is decided not to stop the ongoing transfer, MMC context will
wait for normal completion of the ongoing transfer, then already prepared
next request (if it exists) will be re-inserted back into block layer and
the urgent request fetched.

URGENT_REQUEST handling has following dependencies:
1. Host controller driver should support mmc_host op named "stop_request"
2. Block I/O scheduler should support re-insert API
3. eMMC card should support HPI (High Priority Interrupt) command

If any of the above dependencies are not met then urgent request mechanism
will not become operational.

Change-Id: Ic3fa1ca9463cc8991aefee940d8bfddf76c111d3
Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
Merge "iommu: msm: Do not idle the IOMMU in fault handler"
Merge "power: pm8921-bms: Fix CC conversion precision"
Merge "ASoC: wcd9320: Add wcd9320 codec hardware v2 support"