qup_i2c: Use separate variables to store i2c gpios settings

In i2c bus recovery function GPIO settings for both
SCL and SDA are stored in one variable in this order
before writing recovery settings.
So, SCL setting is overwritten with SDA setting.
And when saved gpios settings write it back after
recovery, the setting for SDA is written both on SCL and SDA.
It means the setting of SCL is broken.

Use separate instances of variables to store GPIO settings
of SDA and SCL separately

CRs-Fixed: 447585
Change-Id: I7014a5b12d4c7ef41fd28c543834d45c619695a9
Signed-off-by: Alok Chauhan <alokc@codeaurora.org>
iommu: msm: Let IOMMUv1 use all possible page sizes

Allow the IOMMUv1 to use 16M, 1M, 64K or 4K iommu
pages when physical and virtual addresses are
appropriately aligned. This can reduce TLB misses
when large buffers are mapped.

Change-Id: Iffcaa04097fc3877962f3954d73a6ba448dca20b
Signed-off-by: Kevin Matlage <kmatlage@codeaurora.org>
msm: vidc: Add packetization for debug mode setting

Packetization for all the commands are done outside of
Venus hfi layer. Add support to do packetization for
debug mode setting to FW.

Change-Id: Ied187bd17e6f9e27efbf943d56e260abf2780f89
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
SoC: msm: Set soft step values to 0 to avoid noise

The abrupt steps in the curve are causing the noise. To avoid noise
smaller step size are recommended.

CRs-fixed: 439933
Change-Id: I34681af412e4f7ba8a99ce0f08f5ee1fa69186ff
Signed-off-by: Fred Oh <fred@codeaurora.org>
defconfig: msm8974: Enable early printk for msm8974

Enabling this option to get kernel logs earlier which is useful
in debugging early bootup failures.

Change-Id: Icbc960fa59e81b0a816ba96bd3f215ae92da1a0c
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
gpu: ion: make cached Iommu allocations multiples of PAGE_SIZE

In future changes to Ion, we will fault in the pages one at a time
using vm_insert_page for cached allocations. There appears to be a
limitation on vm_insert_page that the pages must be of size
PAGE_SIZE. Make sure that we only allocate pages of size PAGE_SIZE for
cached allocations.

Change-Id: I2243e73c4f50b90c9345c25b9e4bc30ccfa7e198
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
gpu: ion: make cached cp allocations multiples of PAGE_SIZE

New alignment requirements in Ion require all cached allocations to be
multiples of PAGE_SIZE. Update the cp heap to follow the new
requirements.

Change-Id: I88ddf55966ccba3a00da99559b1ff4a3b6e86ce5
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
msm: bam_dmux: wait for DL thread to shutdown in case of SSR

In case of Subsystem Restart, recent targets require that the downlink
processing thread be signaled to shutdown eariler and that the SSR
process wait for the DL thread completely shutdown otherwise an unclocked
register access could occur which might cause a kernel panic.

CRs-Fixed: 451694
Change-Id: I9216c6006bdc8941dd3c03bd6aff14cd732540bc
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
usb: gadget: mbim: Add union descriptor

Add union descriptor to mbim function to comply
with the latest version of mbim spec.

Change-Id: I681bd4ce5c0190edc34b59026c2ca7809a67c0b6
Signed-off-by: Anna Perel <aperel@codeaurora.org>
mmc: msm_sdcc: disable BKOPS feature

The BKOPS feature is supported for eMMC cards of version 4.41 and higher.
The BKOPS feature is one time programmable and once it was enabled on
a certain MMC card is cannot be disabled.

LA builds are often being used to verify phones that are targeted for
other HLOSes. Since not all the HLOSes implement the BKOPS features,
enabling this feature by default can cause instability when the phone
will be used by HLOSes other than LA.

Change-Id: I9f8bba4baea19e066f9c84e895c0194beac13591
Signed-off-by: Maya Erez <merez@codeaurora.org>
crypto: msm: Add bus bandwidth request vectors

Add bus bandwidth request vectors for qcedev and qcrypto
driver modules.

Change-Id: Iced7567acedb254a8d1f61305db03cb0ddc5566c
Signed-off-by: Mona Hossain <mhossain@codeaurora.org>
arm/dt: msm8226: Update the kernel memory information

Update the size and address of the memory hole to
be consistent with the memory map

Change-Id: I56c467b814dd7756de13b7b2906525129c1f4632
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
msm: clock-8226: Remove LPASS clocks

LPASS now controls its own clocks. Apps only needs to manage the clocks
required for LPASS PIL.

Change-Id: I79fd2a77ee36ea796e62a051b07823138b1e1a3b
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
msm: clock-8226: Update clock plan

Modify the freq tables for the venus and blsp clocks according to the new
clock plan.

Change-Id: Ia311256ae4e5248e06c01edcc17b3df3568d0740
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
msm: clock-8226: Driver controls oxili_axi_clk

The kgsl driver now controls the oxili_axi_clk, and no longer relies
on the clock driver to enable it at the appropriate times.

Change-Id: I28b796c1889c3c19f66c8ac7035038e38b142c3d
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
msm: clock-8226: Remove ocmemcx_ahb_clk

This clock is controlled by RPM and should not be touched by APPS.

Change-Id: I3b68d1b48ea20d38ca41ef684cac79027c292d9b
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
msm: acpuclock-cortex: Use maximum frequency on boot.

Since the HW is left in an unknown state at boot, first switch to a safe
pll source and rate. Then increase boot speed by switching to the
fastest rate.

Change-Id: Ibee70b28bf3e88601a50b4d0d1dd6238db7ef612
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
msm: smd: Add remote spinlock init check

For targets where other processors boot before the Apps processor, there
is a small risk that one of the processors will fail with the SMEM
remote spinlock locked.  In this case, the Apps will spin forever in SMD
init trying to acquire the spinlock.  Subsystem restart is not fully
functional until SMD has been initialized, so the Apps is not able to
recover.  It is important to note that this failure scenario should only
occur during development or due to a hardware failure.

Add a check to verify that the remote spinlock can be acquired during
SMD initialization.  If it cannot be acquired, then panic with a message
indicating which processor is not releasing the remote spinlock which
will help debug the root cause of the issue.

Change-Id: Idf4b453da5d84fd59f7787820ab0f2ab7bb6dba6
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
gpu: ion: remove stale variable

Tracking the number of user mappings should be done in the Ion
heaps. Remove the variable that was used to track this in core Ion.

Change-Id: I715280515e3010bd002314aefe0ec8cdb37c143d
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
ASoC: msm8974: Fix compilation error

Fix compilation error due to incorrect include path.

CRs-fixed: 456887
Change-Id: I31a1ab63d24fab6edaba44d1fcf5fc287e87b339
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>