OSDN Git Service

sagit-ice-cold/kernel_xiaomi_msm8998.git
8 years agomsm: mdss: dsi: enable LPRX and CDRX only for logical data lane 0
Aravind Venkateswaran [Wed, 29 Jun 2016 19:33:42 +0000 (12:33 -0700)]
msm: mdss: dsi: enable LPRX and CDRX only for logical data lane 0

The low power receiver (LPRX) and contention detection receiver (CDRX)
need to be enabled only for the physical data lane corresponding to the
logical data lane 0. Modify the code to implement this while accounting
for any possible data lane swap configurations.

CRs-Fixed: 1035315
Change-Id: I0082109fc3c0a56af3f181ae0b063c56aa7095f2
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
8 years agoARM: dts: msm: Add node for QSEE IPC IRQ bridge for msmcobalt
Arun Kumar Neelakantam [Thu, 26 May 2016 10:48:42 +0000 (16:18 +0530)]
ARM: dts: msm: Add node for QSEE IPC IRQ bridge for msmcobalt

Add the device for bridging an Inter-Processor Communication(IPC)
interrupt from a remote subsystem directed towards Qualcomm Technologies,
Inc. Secure Execution Environment(QSEE).

CRs-Fixed: 1021749
Change-Id: Ib86b3f70a71f222f0ddc1ea49c75cd7d94c47546
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
8 years agoARM: dts: msm: add jdi landscape panel for msmcobalt
Ingrid Gallardo [Fri, 10 Jun 2016 21:57:50 +0000 (14:57 -0700)]
ARM: dts: msm: add jdi landscape panel for msmcobalt

Add required settings for command mode and video
mode jdi lanscape panels in msmcobalt CDP/MTP. Add
panels to the list of supported panels so they can
be selected at runtime from kernel command line.

Change-Id: Iae1361997653784c4248b0d2ed2a7deac3bc4d4b
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
8 years agoARM: dts: msm: configure display 5v panel supply GPIO for msmcobalt
Ingrid Gallardo [Wed, 22 Jun 2016 01:37:07 +0000 (18:37 -0700)]
ARM: dts: msm: configure display 5v panel supply GPIO for msmcobalt

Add support to configure the gpio51 that controls
the 5v supply required by multiple panels.

Change-Id: I45e190261330ffe2f742ae0c460fc53270e165c2
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
8 years agothermal: tsens: Enable TSENS controller health monitor
Siddartha Mohanadoss [Tue, 28 Jun 2016 23:51:08 +0000 (16:51 -0700)]
thermal: tsens: Enable TSENS controller health monitor

Temperature sensor (TSENS) driver health monitor periodically
sets a very low temperature threshold on the critical trip zone
and polls to check if the trip is set. This is done on a deferred
workqueue and helps provide indication on the health of the
TSENS controller.

Change-Id: I4b16db429fead5c731dec289f0360682c92775b8
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
8 years agoARM: dts: msm: Update TSENS sensors for msmhamster
Siddartha Mohanadoss [Tue, 28 Jun 2016 00:22:16 +0000 (17:22 -0700)]
ARM: dts: msm: Update TSENS sensors for msmhamster

Temperature sensor (TSENS) driver provides clients ability
to read on-die temperature sensors. Update the total
number of sensors supported for msmhamster on TSENS
controller 1 and corresponding sensor controller index.

Change-Id: I8c9ba4ed230c94d124f9c02e9e18a77cdb6befa5
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
8 years agothermal: tsens: Enable TSENS for msmhamster
Siddartha Mohanadoss [Tue, 28 Jun 2016 23:40:38 +0000 (16:40 -0700)]
thermal: tsens: Enable TSENS for msmhamster

Temperature sensor (TSENS) driver provides ability to
thermal clients to read from on-die temperature sensors.
msmhamster supports reading from 20 on-die temperature
sensors and clients can set temperature thresholds and
receive notification.

Change-Id: I57e98f2182d0c44e9c7cffec3528bb926a878fb8
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
8 years agoARM: dts: msm: Disable TSENS on RUMI and SIM platform
Siddartha Mohanadoss [Tue, 28 Jun 2016 23:32:40 +0000 (16:32 -0700)]
ARM: dts: msm: Disable TSENS on RUMI and SIM platform

Temperature sensor (TSENS) driver supports perodic monitoring
of the TSENS controller and can cause a false positive on
RUMI and SIM platform if the temperature values are
not valid. Therefore disable the driver on these platforms.

Change-Id: I9d38f6f1580eafef9de841418b9a9f022ef30b69
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
8 years agoASoC: msm: q6dspv2: add SLIMBUS6 RX routings for Slimbus 7/8
Banajit Goswami [Wed, 29 Jun 2016 22:31:24 +0000 (15:31 -0700)]
ASoC: msm: q6dspv2: add SLIMBUS6 RX routings for Slimbus 7/8

Slimbus TX 7 and 8 would need to be connected to Slimbus RX 6
for different use cases using loopback in AFE. Updated necessary
routings for supporting the loopback.

CRs-Fixed: 1036018
Change-Id: I46c797a6550884bf42a2d7763590047d2e750906
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
8 years agomsm: thermal: Add support to monitor only one tsens for MX restriction
Manaf Meethalavalappu Pallikunhi [Thu, 28 Jan 2016 17:39:30 +0000 (23:09 +0530)]
msm: thermal: Add support to monitor only one tsens for MX restriction

Currently VDD MX restriction feature monitors all tsens for low
temperature condition. Some targets which has higher MX restriction
thresholds shows frequent interrupts from multiple sensors causing
power impact.
Add support to monitor only one sensor for VDD MX restriction feature.
Add an optional device tree property "qcom,mx-restriction-sensor_id"
to specify sensor id for monitor. If not defined, monitor all tsens
for VDD MX restriction.

Change-Id: Ib709b00c27f43c2603ac8a08b75f2fbd5800983b
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
8 years agodefconfig: arm64: msm: Add defconfigs for QSEE IPC IRQ bridge
Arun Kumar Neelakantam [Fri, 1 Jul 2016 04:21:22 +0000 (09:51 +0530)]
defconfig: arm64: msm: Add defconfigs for QSEE IPC IRQ bridge

Enables the drivers for bridging an Inter-Processor Communication(IPC)
interrupt from a remote subsystem directed towards Qualcomm Technologies,
Inc. Secure Execution Environment(QSEE).

CRs-Fixed: 1021749
Change-Id: I7406d49369ccf3951f95f72136195a3630789453
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
8 years agoARM: dts: msm: Fix interrupt type for a few IRQs
Mitchel Humpherys [Tue, 17 May 2016 00:53:52 +0000 (17:53 -0700)]
ARM: dts: msm: Fix interrupt type for a few IRQs

The interrupt types for a few SMMU IRQs are incorrect.  Fix them.

CRs-Fixed: 1037068
Change-Id: Ic45e1ec592bf0503d456ad1029e32dfea5d63bf1
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
8 years agodefconfig: arm64: enable run queue stats driver for msm chipsets
Runmin Wang [Fri, 24 Jun 2016 04:08:10 +0000 (21:08 -0700)]
defconfig: arm64: enable run queue stats driver for msm chipsets

Enable the run queue stats driver to support IRQ balancer.

CRs-Fixed: 1033709
Change-Id: I38694774013625d514fc9812b4b28c36f4a2471e
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
8 years agodrivers: GICv3: remove isb() from IAR read function
Satya Durga Srinivasu Prabhala [Tue, 28 Jun 2016 00:29:31 +0000 (17:29 -0700)]
drivers: GICv3: remove isb() from IAR read function

As per the GICv3 requirement, ISB or other context synchronization
operation is needed only during System register writes.

CRs-Fixed: 1035275
Change-Id: Ifbe4d974a295b90a511aa10bde5797a1f71972fc
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
8 years agomsm: mdss: skip panel type node change during resolution switch
Veera Sundaram Sankaran [Thu, 16 Jun 2016 23:24:11 +0000 (16:24 -0700)]
msm: mdss: skip panel type node change during resolution switch

The panel type sysfs node indicates the type of panel that
is currently in use, either video or cmd mode. This is
updated after every dynamic switch. Currently, this node
is updated to an invalid value during dynamic resolution switch.
Skip the setting as the mode is not changed during resolution
switch.

Change-Id: Ic002ad587eeade068561c0e9f1d29aeb1689ada5
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: hdmi: fix clock parsing
Tatenda Chipeperekwa [Tue, 28 Jun 2016 18:32:10 +0000 (11:32 -0700)]
msm: mdss: hdmi: fix clock parsing

Fix the clock parsing logic to remove the hard coding
of clock names in the HDMI driver. Update the clock parsing
logic to rely on reading the clock configurations from the
device tree and update the HPD and CORE power modules
appropriately.

CRs-Fixed: 1032282
Change-Id: Ia7324f6443b3db5d55113a221dc0791bb5a38799
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
8 years agoARM: dts: msm: Add SPS node for msmfalcon
Rama Krishna Phani A [Fri, 24 Jun 2016 14:36:30 +0000 (20:06 +0530)]
ARM: dts: msm: Add SPS node for msmfalcon

Add SPS module to device tree. SPS (Smart Peripheral System)
enables the support of all BAMs in the system which provide DMA
functionality to various peripherals.

Change-Id: I4f71ba8115f009028ae4ddf6a7847d1885b4458c
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
8 years agomsm: mdss: force revalidate layers after resolution switch
Veera Sundaram Sankaran [Fri, 13 May 2016 20:57:24 +0000 (13:57 -0700)]
msm: mdss: force revalidate layers after resolution switch

Avoid skipping validation for all layers during ATOMIC_COMMIT
validate call after dynamic resolution switching. Though the
configs remain the same for few layers, revalidation is required
based on the new resolution as the src_split and other settings
might have changed.

Change-Id: I3f1f2e09c90e8ff1a6380e35ed9e980b5c2be46c
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: handle used_buf during overlay off with invalid switch state
Veera Sundaram Sankaran [Fri, 6 May 2016 02:03:54 +0000 (19:03 -0700)]
msm: mdss: handle used_buf during overlay off with invalid switch state

There might be cases where driver gets the resolution switch
request followed by suspend or adb shell stop. In such cases,
since the ctl parameters are already reconfigured, driver skips
the NULL kickoff during overlay off due to invalid switch state.
This leads to memory leak as the used_bufs are left intact. Fix
by moving the used_bufs to free_list, so that memory can be freed
later and also leaves the buffer list clean.

Change-Id: I80c6ad2dc85da0427ac7ba1c127f0aa044a81c09
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: add dynamic resolution switch support during handoff
Veera Sundaram Sankaran [Thu, 5 May 2016 19:03:23 +0000 (12:03 -0700)]
msm: mdss: add dynamic resolution switch support during handoff

Add support to handle dynamic resolution switch request during
cont-splash handoff, even before driver receives the first commit.
The cmd_panel_on is ideally called right before the first kickoff,
if the panel is not already on. Make explicit panel_cmd_on call during
reconfigure to match with the ctl_stop/ctl_start done during the
process of switching. This would make sure complete cleanup and
re-configuration of the ctl is done.

Change-Id: I98469b14284195caaf17a616137a0502e0e398cf
[veeras@codeaurora.org: Resolved conflicts in mdss_mdp.h]
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: match pixclock calculation for videomode and fb var
Veera Sundaram Sankaran [Fri, 29 Apr 2016 01:36:38 +0000 (18:36 -0700)]
msm: mdss: match pixclock calculation for videomode and fb var

When multiple panel timings are available and enumerating videomode
list, pixclock is calculated using htotal, vtotal and refresh rate.
But fb var struct is populated with actual pixclock value calculated
by DSI. This pixclock mismatch would cause issues, when usermode
does GET_VSCREENINFO/PUT_VSCREENINFO. Fix by using the same pixclock
calculation for both structures.

Change-Id: I42bfc40b5904ec80f20b296e3b4610ca3b2c5ee0
[veeras@codeaurora.org: Resolved conflicts in mdss_fb.c]
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: add capability to parse multiple panel roi alignment
Veera Sundaram Sankaran [Thu, 21 Apr 2016 21:41:44 +0000 (14:41 -0700)]
msm: mdss: add capability to parse multiple panel roi alignment

Add device tree parsing logic to parse multiple panel alignment roi for
different panel resolutions. Add alignment roi as part of the panel
timing struct, so that it would be updated whenever resolution switch
happens.

Change-Id: I14ee1a4947312c4c36927adcbffad847f9062fd6
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: add dynamic resolution switch support for DSC panels
Veera Sundaram Sankaran [Fri, 15 Apr 2016 18:57:24 +0000 (11:57 -0700)]
msm: mdss: add dynamic resolution switch support for DSC panels

Reconfigure the DSC parameters and DSI stream according to the
new resolution. Mandate the first frame after dynamic resolution
change for DSC panels to be full frame updates. Send PPS command
based on the device tree entry before or after the switch commands.
Fix device tree parsing of DSC parameters within the switch timing
node. Add sub-nodes in target specific device tree to configure
target specific timing and switch commands.

Change-Id: I6aa5f8f972b16645b219bf6274036b6e5dac6dda
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: validate current switch state before commit
Adrian Salido-Moreno [Wed, 2 Sep 2015 01:17:07 +0000 (18:17 -0700)]
msm: mdss: validate current switch state before commit

If mode switch is currently in progress, then proper state machine of
calls is expected. If these calls are not observed then it could lead
to issues during display commit, because of incomplete update.
Add checks for current mode switch state to prevent improper state
during commit.

Change-Id: I31dae6e15761fc745efd79edbe1070af992db904
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agomsm: mdss: handle blank while mode switch in progress
Adrian Salido-Moreno [Tue, 22 Sep 2015 23:06:09 +0000 (16:06 -0700)]
msm: mdss: handle blank while mode switch in progress

When display is getting blanked while mode switch in progress, we
cannot have additional kickoff trigger for cleanup as the state hasn't
been properly transitioned. Instead we can clear the state and destroy
control path to start clean on next update.

Change-Id: I34af01550d79e0d7d465f2c7f873508c296160dd
[veeras@codeaurora.org: Resolved conflicts in mdss_mdp_overlay.c]
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
8 years agoASoC: msm: qdsp6v2: DAP: Add check to validate param length
Ashish Jain [Fri, 1 Jul 2016 07:01:21 +0000 (12:31 +0530)]
ASoC: msm: qdsp6v2: DAP: Add check to validate param length

To avoid buffer overflow, validate input length used to
fetch visualizer data.

CRs-Fixed: 1033540
Change-Id: I445d1ba3bce47308bc31ae24a70d5ee358f22a2d
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
8 years agoASoC: msm: qdsp6v2: DAP: Allocate param buffer with correct size
Ashish Jain [Thu, 30 Jun 2016 12:58:37 +0000 (18:28 +0530)]
ASoC: msm: qdsp6v2: DAP: Allocate param buffer with correct size

Size of param buffer should be big enough to hold param length
of data and param payload.

CRs-Fixed: 1033525
Change-Id: I6fa58f87a7c7df5f0485ea5b368ea090eb8bedb4
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
8 years agomd: dm-req-crypt: Separate qcrypto from ICE path
Andrey Markovytch [Sun, 3 Jul 2016 12:53:24 +0000 (15:53 +0300)]
md: dm-req-crypt: Separate qcrypto from ICE path

During the ICE based FDE path, qcrypto functions been called,
which is invalid. So update dm-req-crypt driver to separate
ICE from qcrypto path.

Change-Id: I1ff3121471baa761624e0ce39ee96dd0b8497454
Signed-off-by: AnilKumar Chimata <anilc@codeaurora.org>
Signed-off-by: Andrey Markovytch <andreym@codeaurora.org>
8 years agomsm: vidc: Fix use of unininitialized variables.
Abdulla Anam [Wed, 30 Mar 2016 12:50:10 +0000 (18:20 +0530)]
msm: vidc: Fix use of unininitialized variables.

Fix use of uninitialized variables. Add checks for out of bound
array access.

CRs-Fixed: 997966
Change-Id: I66973d7dcc0988dba36da4b3c0e01484847a7a7e
Signed-off-by: Abdulla Anam <abdullahanam@codeaurora.org>
8 years agobluetooth: Add support for clocks
Sungjun Park [Wed, 15 Jun 2016 21:40:56 +0000 (14:40 -0700)]
bluetooth: Add support for clocks

On some platforms, clock needs to be controlled by Bluetooth
driver. Add support for that by obtaining it through a device
tree property and use it for voting when required.

Change-Id: I42a16f6dc8d5c11963713ae489ca6d8c9bf927e5
Signed-off-by: Sungjun Park <sjpark@codeaurora.org>
8 years agodrivers: soc: Add buffer overflow check for svc send request
Josh Kirsch [Mon, 2 May 2016 21:55:04 +0000 (14:55 -0700)]
drivers: soc: Add buffer overflow check for svc send request

Add buffer overflow check in voice_svc_send_req.

CRs-fixed: 1010081
Change-Id: I4ae703334b0cf04f327b392bc9cd6febd4ad32f2
Signed-off-by: Josh Kirsch <jkirsch@codeaurora.org>
8 years agomsm: ipa: Fix queuing the inactive timer work on perf cluster
Sridhar Ancha [Wed, 22 Jun 2016 09:46:52 +0000 (15:16 +0530)]
msm: ipa: Fix queuing the inactive timer work on perf cluster

Using schedule_delayed_work will cause work queues to be scheduled
on the CPU where the timer expires. This can make work to be scheduled
on perf cluster resulting in power issues. Make changes to use
queue_delayed_work on an unbound workqueue so that the work gets
scheduled based on the load and mostly it gets scheduled in power
cluster.

Change-Id: I13605eea5fb3e7eeece1d8c81334981ea7de9cb9
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
8 years agosoc: qcom: memory_dump_v2: use kmemleak_not_leak for mem dump's app table
Lingutla Chandrasekhar [Mon, 1 Jun 2015 11:46:25 +0000 (17:16 +0530)]
soc: qcom: memory_dump_v2: use kmemleak_not_leak for mem dump's app table

Table (of type msm_dump_table) is virtual address for app's base
table of memdump, which is converted to physical address and
holds it in the memdump.table_phys. This memory is not intended
to be freed. When kmemleak scans, it can't deduce that the reference
we are holding is via physical address and not virtual address.
Hence, kmemleak will treat this as a leak as it can't find
a reference to this variable. Suppress this by using
kmemleak_not_leak API.

Change-Id: I5236c940688829a3b5f255c5ee9fcf309cf8ebb7
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
8 years agoARM: dts: msm: Update the clock names for MSMfalcon
Taniya Das [Mon, 4 Jul 2016 04:14:20 +0000 (09:44 +0530)]
ARM: dts: msm: Update the clock names for MSMfalcon

Add the clock controller files for GCC/GPU/MMSS and modify the clock
macro names for blsp clock MSMfalcon.

Change-Id: Iaed16dbb3415a77f427ad7318017487acb7891a3
Signed-off-by: Taniya Das <tdas@codeaurora.org>
8 years agoclock: qcom: Add the clocks supported on MSMFalcon
Taniya Das [Tue, 28 Jun 2016 10:34:04 +0000 (16:04 +0530)]
clock: qcom: Add the clocks supported on MSMFalcon

Add all the clocks which are supported on msmfalcon and would be used
by the clients for all clock operations for GCC, MMSS, GPU clock
controllers.

Change-Id: Ie328cb0516644d8a3d66fd0c054575a5cff637dc
Signed-off-by: Taniya Das <tdas@codeaurora.org>
8 years agousb: gadget: f_gsi: Use 16KB buffer with each TRB for MBIM DL
Mayank Rana [Fri, 24 Jun 2016 22:32:07 +0000 (15:32 -0700)]
usb: gadget: f_gsi: Use 16KB buffer with each TRB for MBIM DL

There is limitation when IPA is performing de/aggregation with MBIM
in scatter-gather mode. Hence instead of 2KB buffer use 16KB buffer
(i.e. size of aggregated frame) with each TRB for MBIM DL case.

CRs-Fixed: 1032467
Change-Id: I4f73d30711b5606c2ac88ce9d05a8483d64b665d
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
8 years agoARM: dts: msm: Remove redundant interrupt type flag for msmcobalt
David Dai [Mon, 27 Jun 2016 23:46:52 +0000 (16:46 -0700)]
ARM: dts: msm: Remove redundant interrupt type flag for msmcobalt

Use existing IRQ flags definitions since devfreq_spdm driver no longer
overrides interrupt type. Interrupt-edge property is no longer used
as an indicator of interrupt type.

Change-Id: Iddf6b1b8a85100bbb3b6ff2d2dda88880b6e64f2
Signed-off-by: David Dai <daidavid1@codeaurora.org>
8 years agoARM: msmcortex_defconfig: Enable USB audio driver
Hemant Kumar [Fri, 17 Jun 2016 02:14:12 +0000 (19:14 -0700)]
ARM: msmcortex_defconfig: Enable USB audio driver

Enables support for USB audio and USB MIDI devices
connected via the USB bus.

Change-Id: I3fa2168b905b5242894ba985b8c615bfbb10492a
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
8 years agoscsi: ufs-qcom: fix bug with read/modify write of UFS_CFG1
Subhash Jadavani [Fri, 24 Jun 2016 20:08:34 +0000 (13:08 -0700)]
scsi: ufs-qcom: fix bug with read/modify write of UFS_CFG1

ufs_qcom_print_hw_debug_reg_all() function is having a bug
where it might incorrectly modify undesired bits in UFS_CFG1 register,
this change fixes it.

Change-Id: I2605beeb41f3c319877f48e35723f597f7dfb9da
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
8 years agomsm: mdss: Fix fence handling for CWB
Jeykumar Sankaran [Thu, 9 Jun 2016 21:58:43 +0000 (14:58 -0700)]
msm: mdss: Fix fence handling for CWB

Creates a work queue for concurrent writeback to wait and signal
the CWB retire fence on WB done interrupt.

Change-Id: I169e3df1a68616be93377defdc30e3c326aff79f
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
8 years agomsm: kgsl: Discard negative CRC throttling cycle readings
Oleg Perelet [Tue, 28 Jun 2016 22:22:30 +0000 (15:22 -0700)]
msm: kgsl: Discard negative CRC throttling cycle readings

Ignore negative CRC throttle cycle readings in corner cases.

Change-Id: Ic237bd0558a4769dc89bfb7e70a287165f842b92
CRs-Fixed: 973565
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
8 years agoARM: dts: msm: remove remaining stub regulators from msmcobalt
Nicholas Troast [Mon, 6 Jun 2016 21:24:41 +0000 (14:24 -0700)]
ARM: dts: msm: remove remaining stub regulators from msmcobalt

S10A and S13A regulators are not needed since APC voltage rails are
controlled by CPRh.

All of the PM8005 regulators have been defined properly as SPMI
regulators in msm-pm8005.dtsi

CRs-Fixed: 1025447
Change-Id: I2a93ffe3b5ce17a09ce836ef00f40c38678b9796
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
8 years agoARM: dts: msm: Remove clk reference from virt fab for msmcobalt
David Dai [Thu, 5 May 2016 00:01:07 +0000 (17:01 -0700)]
ARM: dts: msm: Remove clk reference from virt fab for msmcobalt

Remove bimc_clk references from GNOC as there is no resource associated
with GNOC.

Change-Id: Id038f13305c765336c85444f1064d38a0a61c9a2
Signed-off-by: David Dai <daidavid1@codeaurora.org>
8 years agodefconfig: msmcortex: Enable devfreq_spdm
David Dai [Mon, 20 Jun 2016 20:50:59 +0000 (13:50 -0700)]
defconfig: msmcortex: Enable devfreq_spdm

Enable SPDM governer and SCM call through Hypervisor support.

CRs-Fixed: 1025515
Change-Id: I911f84a44229b84491ea5b78e1ed2d8181b2c804
Signed-off-by: David Dai <daidavid1@codeaurora.org>
8 years agomd: dm-req-crypt: fixed error propagation when ICE is used
Andrey Markovytch [Wed, 29 Jun 2016 09:27:24 +0000 (12:27 +0300)]
md: dm-req-crypt: fixed error propagation when ICE is used

When ICE is used and there was an error during endio, the error was
not propagated properly to upper layers, fixed.

Change-Id: I5c428e4a02f7012f95e3a32486920e69b93ea3fc
Signed-off-by: Andrey Markovytch <andreym@codeaurora.org>
8 years agoarm: topology: fix the topology reset path during init
Srinivas Ramana [Tue, 28 Jun 2016 06:32:28 +0000 (12:02 +0530)]
arm: topology: fix the topology reset path during init

init_cpu_topology has a bug where
1. It's referring to out of bounds array.
2. It's not actually resetting topology for each cpu.

Fix this by iterating for each cpu for resetting topology.

Change-Id: I4df03fb4fbe9cb636f135de982e35173b1900ec2
Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
8 years agoarm: qcom: Add support for msmfalcon chipset
Srinivas Ramana [Wed, 1 Jun 2016 06:58:08 +0000 (12:28 +0530)]
arm: qcom: Add support for msmfalcon chipset

Add support in Kconfig for msmfalcon chipset 32-bit platform.

Change-Id: I5509787b16e7837c674203a3a900159f449b14a6
Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
8 years agomsmfalcon: add board files for 32-bit boot
Srinivas Ramana [Wed, 1 Jun 2016 06:55:58 +0000 (12:25 +0530)]
msmfalcon: add board files for 32-bit boot

Add board file to support msmfalcon 32-bit boot.

Change-Id: I4a7c9fd54983e58e5fdd73ae080702018a813cd7
Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
8 years agospcom: increase timeout for TX-Done notification
Amir Samuelov [Thu, 30 Jun 2016 08:14:17 +0000 (11:14 +0300)]
spcom: increase timeout for TX-Done notification

Normally, it takes few msec for SPSS to responde with ACK for TX data.
However, due to SPSS HW issue, the SPSS might disable interrupts
for a very long time, and not ACK for the data.

Change-Id: I88a0b7a0637fb62d62ac760e9a8a946a5888d406
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
8 years agodefconfig: msmcortex: Enable CONFIG_MSM_ADSP_LOADER
Shiv Maliyappanahalli [Thu, 30 Jun 2016 18:39:57 +0000 (11:39 -0700)]
defconfig: msmcortex: Enable CONFIG_MSM_ADSP_LOADER

Enable CONFIG_MSM_ADSP_LOADER in order to enable
ADSP PIL loading during bootup.

Change-Id: I0d8a15283ec43bdf0818c4d9cbe92ac4474cb833
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
8 years agobase: sync: increase size of sync_timeline name
Fred Fettinger [Fri, 11 Jan 2013 20:20:40 +0000 (14:20 -0600)]
base: sync: increase size of sync_timeline name

This makes it possible for drivers to use a longer, more descriptive
name for a sync_timeline, which improves the readability of the
sync dump in debugfs.

Change-Id: Ifb83aebf6fd820ebb26aca2ff230ac1116e65ce9
Git-commit: cb63e61b80ec905f01cbe1c21081aa0d1fef082d
Git-repo: https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git
Signed-off-by: Fred Fettinger <fred.fettinger@motorola.com>
Signed-off-by: Harsh Vardhan Dwivedi <hdwivedi@codeaurora.org>
Signed-off-by: Omprakash Dhyade <odhyade@codeaurora.org>
8 years agoRevert "arm64: defconfig: msm: enable MODULE_SIG for msm chipsets"
Kyle Yan [Tue, 28 Jun 2016 23:35:12 +0000 (16:35 -0700)]
Revert "arm64: defconfig: msm: enable MODULE_SIG for msm chipsets"

This reverts commit 931a5101dfa4 ("arm64: defconfig: msm: enable
MODULE_SIG for msm chipsets").

Compilation of Android/DLKMs failing with below error:

Signing kernel module:  bus_timeout_mod.ko
Can't open perl script "./kernel/msm-4.4/scripts/sign-file": \
                                       No such file or directory
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1

CRs-Fixed: 1035494
Change-Id: Iddc618a2467b8ba72a8466c2678b3195ef8fa1c7
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
8 years agosoc: qcom: msm_bus: Remove panic for no aggregation scheme
David Dai [Tue, 28 Jun 2016 02:16:24 +0000 (19:16 -0700)]
soc: qcom: msm_bus: Remove panic for no aggregation scheme

Remove default panic error when no aggregation scheme is selected,
this is to support virtual fabrics that have no clocks or bandwidth
to aggregate.

Change-Id: I4fd8977845dd123890afc5076cd55499992e488e
Signed-off-by: David Dai <daidavid1@codeaurora.org>
8 years agoiommu: dma-mapping-fast: Remove unused #define
Mitchel Humpherys [Tue, 28 Jun 2016 18:55:00 +0000 (11:55 -0700)]
iommu: dma-mapping-fast: Remove unused #define

There's a stray #define left over from initial development of the fast
map feature.  Rip it out.

CRs-Fixed: 1035430
Change-Id: Iae0649dc3fe878f948ad872803317eb4bf7ec1c6
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
8 years agodev_freq: devfreq_spdm: make cci_clk optional indicator
David Dai [Wed, 25 May 2016 21:37:00 +0000 (14:37 -0700)]
dev_freq: devfreq_spdm: make cci_clk optional indicator

Enable dev_freq SPDM support in order to increase BIMC
vote based on bus rejection rate. Make cci_clk an optional
property as it's not always a relevant indicator of cpu performance.

CRs-Fixed: 1025515
Change-Id: I713cc396c8d563735981547e0dc18a63f6f15180
Signed-off-by: David Dai <daidavid1@codeaurora.org>
8 years agomm: ksm: avoid trageted reclaim of ksm pages
Vinayak Menon [Thu, 25 Feb 2016 13:40:19 +0000 (19:10 +0530)]
mm: ksm: avoid trageted reclaim of ksm pages

Per Process Reclaim tries to avoid reclaiming of
shared pages by passing the target VMA. For anon and
file pages this works, but not for KSM. This is because
vma_address(page) will not return the intended value
resulting in crashes like this

[From 3.10 kernel]
kernel BUG at kernel/mm/rmap.c:534!
(vma_address+0x28/0x2c) from [<c01eff94>] (try_to_unmap_ksm+0x4c/0x170)
(try_to_unmap_ksm+0x4c/0x170) from [<c01e4834>] (try_to_unmap+0x34/0xa4)
(try_to_unmap+0x34/0xa4) from [<c01c8e64>] (shrink_page_list+0x3f0/0xa34)
(shrink_page_list+0x3f0/0xa34) from [<c01c9688>] (reclaim_pages_from_list)
(reclaim_pages_from_list+0xb0/0x100) from [<c0240ed0>] (reclaim_pte_range)
(reclaim_pte_range+0xf0/0x164) from [<c01e79a4>] (walk_page_range+0x1d0)
(walk_page_range+0x1d0/0x260) from [<c0241ccc>] (reclaim_task_anon+0xb0)
(reclaim_task_anon+0xb0/0x114) from [<c01f8d98>] (swap_fn+0x220/0x460)
(swap_fn+0x220/0x460) from [<c0133a38>] (process_one_work+0x294/0x430)
(process_one_work+0x294/0x430) from [<c0134720>] (worker_thread)
(worker_thread+0x224/0x358) from [<c01390d4>] (kthread+0xa0/0xac)
(kthread+0xa0/0xac) from [<c0105f38>] (ret_from_fork+0x14/0x3c)

CRs-Fixed: 984947
Change-Id: I5208fb68372f7af72868e39399bf545fb7b774f3
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
8 years agomm: process_reclaim: use unbounded cpu workqueue
Shiraz Hashim [Thu, 11 Jun 2015 05:11:54 +0000 (10:41 +0530)]
mm: process_reclaim: use unbounded cpu workqueue

It is observed that in some cases process reclaim work
doesn't get chance to run due to presence of RT scheduled
on the same CPU. This is leading to user space freeze and
a live-lock situation where RT itself is looping for a
page to be present in swap cache while process reclaim
work is unable to schedule and do the same.

Schedule process reclaim work on unbounded cpu workqueue
so that the work has opportunity to be scheduled on to
other cpu.

Change-Id: I6852f7e8d0a344ab5631b188627263f11414f27e
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
8 years agomm: process_reclaim: do not iterate over stale task structs
Vinayak Menon [Thu, 21 May 2015 11:42:37 +0000 (17:12 +0530)]
mm: process_reclaim: do not iterate over stale task structs

swap_fn iterates through the threads of selected tasks after
a rcu_read_unlock which is wrong. But we can't extend the
rcu_read_lock since it will result in severe performance
issues. So better avoid iterating over the threads. Just
lock the group leader and use it further.

Change-Id: I36269b1b6619315f33f6f3b49ec73571a66796f2
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
8 years agomm: process_reclaim: fix reclaim skip on low efficiency
Vinayak Menon [Fri, 8 May 2015 13:06:52 +0000 (18:36 +0530)]
mm: process_reclaim: fix reclaim skip on low efficiency

The logic used to skip reclaim on low efficiency results
in process reclaim not triggering at all. Fix it by
properly handling the skip_reclaim atomic variable.

Change-Id: I119097bb9b1baf8f3e8d4afa0a6dc2c30c0de6e7
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
8 years agomm: process reclaim: vmpressure based process reclaim
Vinayak Menon [Fri, 20 Mar 2015 08:45:39 +0000 (14:15 +0530)]
mm: process reclaim: vmpressure based process reclaim

With this patch, anon pages of inactive tasks can be reclaimed,
depending on memory pressure. Memory pressure is detected
using vmpressure events. 'N' best tasks in terms of anon
size is selected and pages proportional to their tasksize
is reclaimed. The total number of pages reclaimed at each
run of the swap work, can be tuned from userspace, the
default being SWAP_CLUSTER_MAX * 32.

The patch also adds tracepoints to debug and tune the
feature.

echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim
to enable the feature.

echo <pages> > /sys/module/process_reclaim/parameters/per_swap_size,
to set the number of pages reclaimed in each scan.

/sys/module/process_reclaim/parameters/reclaim_avg_efficiency, provides
the average efficiency (scan to reclaim ratio) of the algorithm.

/sys/module/process_reclaim/parameters/swap_eff_win, to set the window
period (in unit of number of times reclaim is triggered) to detect
low efficiency runs.

/sys/module/process_reclaim/parameters/swap_opt_eff, to set the optimal
efficiency threshold for low efficiency detection.

Change-Id: I895986f10c997d1715761eaaadc4bbbee60db9d2
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
8 years agomd: Enable discard option for dm-req-crypt based devices
Dinesh K Garg [Tue, 27 Oct 2015 21:57:26 +0000 (14:57 -0700)]
md: Enable discard option for dm-req-crypt based devices

dm-req-crypt based devices are capable of supporting discard option.
DM layer by default does not enable discard option for DM devices.
Since underlying device supports discard option, mapped target should
also allow it.

Change-Id: Ia540a814c3dcd91f573d1f25d637107a48309a58
Signed-off-by: Dinesh K Garg <dineshg@codeaurora.org>
8 years agoASoC: msm: qdsp6v2: Fix Tx mute issue over BT-SCO
Karthik Reddy Katta [Tue, 21 Jun 2016 08:52:35 +0000 (14:22 +0530)]
ASoC: msm: qdsp6v2: Fix Tx mute issue over BT-SCO

Backend DAIs are not enabled for low-latency-record
bt-sco. Update mixer control array of MultiMedia5
mixer to enable backend DAIs.

CRs-Fixed: 1029460
Change-Id: I8e01302baf2d78afca930ef1f251906a971a8234
Signed-off-by: Karthik Reddy Katta <a_katta@codeaurora.org>
8 years agosoc: qcom: qsee_ipc_irq_bridge: Add initial driver version
Arun Kumar Neelakantam [Mon, 28 Dec 2015 12:41:46 +0000 (18:11 +0530)]
soc: qcom: qsee_ipc_irq_bridge: Add initial driver version

This driver handles the Inter-Processor Communication(IPC) Interrupt(IRQ)
from remote subsystems directed towards Qualcomm Technologies, Inc. Secure
Execution Environment(QSEE) and notifies the QSEE listeners waiting in
the userspace.

CRs-Fixed: 1021749
Change-Id: Id0cab5773099e2f6267f8a5bd4fd5aeb3324e68b
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
8 years agoARM: dts: msm: Correct the TLMM IRQs for UART instances
Girish Mahadevan [Thu, 26 May 2016 21:18:15 +0000 (15:18 -0600)]
ARM: dts: msm: Correct the TLMM IRQs for UART instances

The TLMM IRQ numbers were set incorrectly. This can prevent the UART
peer devices from waking up the core from sleep.

Change-Id: I11e725ac31f78f838ac9b8e1e08c384d11ea14a6
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
8 years agomsm: kgsl: Add gcc_gpu_iref_clk to list of GPU clocks
Oleg Perelet [Tue, 7 Jun 2016 19:30:14 +0000 (12:30 -0700)]
msm: kgsl: Add gcc_gpu_iref_clk to list of GPU clocks

GPU will vote off gcc_gpu_iref_clk when going to low power modes.

CRs-Fixed: 1024948
Change-Id: I13b7a70f1fa748f2f4cdfb485dda2f7857e0b3d2
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
8 years agomsm: vidc: ensure venus is in power on before scaling clocks
Abdulla Anam [Thu, 9 Jun 2016 08:18:01 +0000 (13:48 +0530)]
msm: vidc: ensure venus is in power on before scaling clocks

It is to be ensured that venus is in power on state before scaling
clocks. When venus goes to power collapse, a resume can happen
either when driver writes some command to the command queue or any
response comes from firmware. So when client requests a particular
perf_level, venus is not resumed and scale clocks is called.

CRs-Fixed: 1000809

Change-Id: I2ac46c481065ada2b62a5eb248fbdf18f2b1a91f
Signed-off-by: Abdulla Anam <abdullahanam@codeaurora.org>
8 years agomsm: vidc: Communicate session error to client if aborted.
Abdulla Anam [Wed, 4 May 2016 21:16:29 +0000 (02:46 +0530)]
msm: vidc: Communicate session error to client if aborted.

msm_comm_kill_session is called in driver only in situations where
the driver state goes bad. session_abort is called on firmware
which may be honored. But still the session_error needs to be
communicated to the client or else client will operate oblivious
about the bad video driver state.

Change-Id: Iafb90cde31a985bf5377fdcdd1a9653a965c5600
Signed-off-by: Abdulla Anam <abdullahanam@codeaurora.org>
8 years agoARM: mm: Update the kernel log messages
Susheel Khiani [Tue, 8 Sep 2015 07:04:11 +0000 (12:34 +0530)]
ARM: mm: Update the kernel log messages

After reclaiming vmalloc and adjusting lowmem, the two
regions are no longer contiguous. Update the messages
printed during bootup to list all regions corresponding
to low memory and vmalloc respectively.

Change-Id: Ib3e25b530b3dfbd1f9796cdc580fb79da484e850
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
8 years agoARM: mm: Adjust the low memory boundary
Susheel Khiani [Fri, 4 Sep 2015 14:12:18 +0000 (19:42 +0530)]
ARM: mm: Adjust the low memory boundary

The unused virtual address space in low memory is given to
vmalloc for use. This reduces the low memory space and
increases vmalloc space. Adjust the vmalloc_min in order
to increase the low memory.

Change-Id: I0dbef5b6e5ec3d19f5f93f06ed03a4cf1215dc4d
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
8 years agomsm: thermal: Maintain state in the mitigation device monitor
Manaf Meethalavalappu Pallikunhi [Wed, 3 Feb 2016 10:53:58 +0000 (16:23 +0530)]
msm: thermal: Maintain state in the mitigation device monitor

If KTM get a trip threshold trigger notification and if the
temperature stays the same as the recent trip threshold, KTM will
re-activate the recently triggered threshold, resulting in back to
back interrupts. To avoid this add support in KTM to maintain the
recently triggered threshold state and then re-active the threshold
based on the last threshold trip.
This state is updated for mitigation features like VDD MX retention,
CX phase control, VDD restriction, OCR monitor and external clients
like CPR low temperature monitor etc.

CRs-Fixed: 969112 972634
Change-Id: I44c0a93e1507a9f0b8a65e5c2ce5a98962bb335b
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
8 years agomsm: kgsl: Fix calculation error for deep nap timer value.
Oleg Perelet [Mon, 27 Jun 2016 16:41:19 +0000 (09:41 -0700)]
msm: kgsl: Fix calculation error for deep nap timer value.

Deep nap timer value was not calculated right when read from dts file.

CRs-Fixed: 973565
Change-Id: I11a70c61d408921edd89b1417b209c5c5a3ddf24
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
8 years agoclk: qcom: Add gfx3d ping-pong PLL frequency switching
Stephen Boyd [Tue, 1 Dec 2015 01:31:41 +0000 (17:31 -0800)]
clk: qcom: Add gfx3d ping-pong PLL frequency switching

The GPU clocks on msm8996 have three dedicated PLLs, MMPLL2,
MMPLL8, and MMPLL9. We leave MMPLL9 at the maximum speed (624
MHz), and we use MMPLL2 and MMPLL8 for the other frequencies. To
make switching frequencies faster, we ping-pong between MMPLL2
and MMPLL8 when we're switching between frequencies that aren't
the maximum. Implement custom rcg clk ops for this type of
frequency switching.

Change-Id: Ia71dfc9947f858b485e7c7ea254d6f52de0e7f7d
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Taniya Das <tdas@codeaurora.org>
8 years agoclk: qcom: gdsc: Add support for votable gdscs
Rajendra Nayak [Tue, 1 Dec 2015 16:12:13 +0000 (21:42 +0530)]
clk: qcom: gdsc: Add support for votable gdscs

Some gdscs might be controlled via voting registers and might not
really disable when the kernel intends to disable them (due to other
votes keeping them enabled)
Mark these gdscs with a flag for we do not check/wait on a disable
status for these gdscs within the kernel disable callback.

Also at boot, if these GDSCs are found to be ON, we make sure we
vote for them before we inform the genpd framework about their
status. If genpd gets no users, it then disables (removes the vote)
them as part of genpd_poweroff_unused()

Change-Id: Idd26e1460aea84834cccac15a86adf35681e511e
Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Taniya Das <tdas@codeaurora.org>
8 years agoclk: qcom: gdsc: Add support for gdscs with gds hw controller
Rajendra Nayak [Tue, 1 Dec 2015 16:12:12 +0000 (21:42 +0530)]
clk: qcom: gdsc: Add support for gdscs with gds hw controller

Some gdsc power domains can have a gds_hw_controller block inside
to help ensure all slave devices within the power domain are idle
before the gdsc is actually switched off.
This is mainly useful in power domains which host a MMU, in which
case its necessary to make sure there are no outstanding MMU operations
or pending bus transactions before the power domain is turned off.

In gdscs with gds_hw_controller block, its necessary to check the
gds_hw_ctrl status bits instead of the ones in gdscr, to determine
the state of the powerdomain.

While at it, also move away from using jiffies and use ktime APIs
instead for busy looping on status bits.

Change-Id: I9e435ba071a9d1aa67bddc5d2c7cd7b66fb86c58
Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Taniya Das <tdas@codeaurora.org>
8 years agodevm: add helper devm_add_action_or_reset()
Sudip Mukherjee [Wed, 23 Dec 2015 12:27:19 +0000 (17:57 +0530)]
devm: add helper devm_add_action_or_reset()

Add a helper function devm_add_action_or_reset() which will internally
call devm_add_action(). But if devm_add_action() fails then it will
execute the action mentioned and return the error code.

Change-Id: I70562e95e0ef672db7dc9bd9f24d9a3b356bf89c
(cherry picked from commit a3499e9bf0fe ("devm: add helper
devm_add_action_or_reset()")
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
8 years agodrivers: GICv3: Enable logging of interrupts that triggered wakeup
Runmin Wang [Thu, 23 Jun 2016 18:13:24 +0000 (11:13 -0700)]
drivers: GICv3: Enable logging of interrupts that triggered wakeup

This change enables logging of irq number and name which triggered
wake up of the system from deep sleep. This helps in debugging the
spurious wakeups due to interrupts from various subsystems.

CRs-Fixed: 1033023
Change-Id: Ieeec5959475740e2b0cc75871c1f7e10e1098fa4
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
8 years agoirqchip: add snapshot of msm_show_resume_irq
Abhimanyu Kapur [Mon, 30 Mar 2015 18:54:54 +0000 (11:54 -0700)]
irqchip: add snapshot of msm_show_resume_irq

This is a snapshot of drivers/irqchip/msm_show_resume_irq.c as of
msm-3.18 commit <e17a72ad7344065> ("Merge "ARM: dts: mdm: Adjust
memory region peripheral1_mem for MDM9640"").

CRs-Fixed: 1033023
Change-Id: Ia928cf5e23eebc7a0f80638f4be81beec7ed2878
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
8 years agomsm: camera: isp: Add drop reporting in RESUMING state
Harsh Shah [Thu, 21 Apr 2016 17:56:18 +0000 (10:56 -0700)]
msm: camera: isp: Add drop reporting in RESUMING state

In RESUMING state, WM is stopped causing skip in diverted buffers.
Add drop reporting for these frames, so that modules down stream can
be notified in case of reg_update miss.

CRs-Fixed: 1012335
Change-Id: I67d700c5c844fd6be3bf6ded756fb93e0ebfb537
Signed-off-by: Harsh Shah <harshs@codeaurora.org>
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
8 years agomsm: vidc: Destroy mutexes used by vidc driver
Praneeth Paladugu [Thu, 12 May 2016 18:20:01 +0000 (11:20 -0700)]
msm: vidc: Destroy mutexes used by vidc driver

Currently vidc driver is not destroying the mutexes that it
used. This can cause mutex resources leak. This changes fixes
the same.

Change-Id: I293ad3c4c5ed46c692ae066e7188efe41e5dc482
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
8 years agoASoC: msm: qdsp6v2: fix non-gapless transition failure
Satya Krishna Pindiproli [Thu, 23 Jun 2016 08:20:03 +0000 (13:50 +0530)]
ASoC: msm: qdsp6v2: fix non-gapless transition failure

During non-gapless transition, there is an indefinite wait in
drain until either eos_ack or cmd_interrupt is set. This results
in playback getting stuck and occurs because cmd_interrupt is
not set in TRIGGER_STOP as gapless_transition is set to 1 during
partial drain of earlier stream.

Fix the issue by setting gapless_transition to 0 when gapless
fails which ensures that cmd_interrupt is set in TRIGGER_STOP.

CRs-Fixed: 1027991
Change-Id: I47d2d45df8686f25e8170a84fcaf68e143f6e4f6
Signed-off-by: Satya Krishna Pindiproli <satyak@codeaurora.org>
8 years agoARM: dts: msm: Update thermal sensor for GPU in MSMCobalt
Ram Chandrasekar [Fri, 24 Jun 2016 22:46:31 +0000 (16:46 -0600)]
ARM: dts: msm: Update thermal sensor for GPU in MSMCobalt

Temperature sensor 13 tracks the GPU temperature closely. Update the
sensor alias for gpu to point to tsens 13 in MSMCobalt.

CRs-Fixed: 1034178
Change-Id: I8a644440eca0bc8996e777b76670f2aead601732
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
8 years agoARM: dts: msm: add HDMI support for 8996 mtp
Xiaojun Sang [Fri, 24 Jun 2016 05:49:05 +0000 (13:49 +0800)]
ARM: dts: msm: add HDMI support for 8996 mtp

add HDMI node for 8996 mtp to enable audio over HDMI.

CRs-Fixed: 1028336
Change-Id: I1aade4b197b1705ac116db66168f73253b6ea04d
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
8 years agoASoC: msm: add support for packed 24 bit
Manish Dewangan [Thu, 5 May 2016 06:57:40 +0000 (12:27 +0530)]
ASoC: msm: add support for packed 24 bit

Changes to support packed 24 bit (SNDRV_PCM_FORMAT_S24_3LE).

CRs-Fixed: 1011048
Change-Id: I5c49091d6bbff98ed8665446fffdba08446073cd
Signed-off-by: Manish Dewangan <manish@codeaurora.org>
8 years agoASoC: wcd9335: add support for packed 24 bit
Manish Dewangan [Thu, 5 May 2016 06:56:15 +0000 (12:26 +0530)]
ASoC: wcd9335: add support for packed 24 bit

Changes to support packed 24 bit (SNDRV_PCM_FORMAT_S24_3LE).

CRs-Fixed: 1011048
Change-Id: If81f3053629dc4f80a08392f392c7be735ad33c2
Signed-off-by: Manish Dewangan <manish@codeaurora.org>
8 years agoASoC: msm: qdspv2: add support for MULTI_CHANNEL_PCM_V3 command
Manish Dewangan [Fri, 22 Apr 2016 07:14:39 +0000 (12:44 +0530)]
ASoC: msm: qdspv2: add support for MULTI_CHANNEL_PCM_V3 command

Driver changes to use ASM_MEDIA_FMT_MULTI_CHANNEL_PCM_V3 command.
This command supports playback/record of both 32 bit
(24 bit data in 32 bit word) and 24 bit packed. Update platform
drivers to use this for SNDRV_PCM_FORMAT_S24_LE record and playback.

CRs-Fixed: 1011048
Change-Id: I6f98bf3402a737bc21daff33b13b137850a690ea
Signed-off-by: Manish Dewangan <manish@codeaurora.org>
8 years agomsm: ipa3: Do not use APPS pipes for IPA kernel-test
Ghanim Fodi [Sun, 26 Jun 2016 12:23:48 +0000 (15:23 +0300)]
msm: ipa3: Do not use APPS pipes for IPA kernel-test

IPA Endpoint 16 is the one assigned to APPS for WAN data.
This pipe is connected when modem is up. Kernel-tests
framework should not use it for testing purposes as this
pipe is already allocated for APPS. Update the code
to use another IPA Endpoint.

Change-Id: Ia0ed2ad9041353def1b3055d394281bca2893f88
CRs-fixed: 1034319
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
8 years agoARM: dts: msm: Change LAB precharge time to 500us for PMI8994
Fenglin Wu [Mon, 20 Jun 2016 02:55:12 +0000 (10:55 +0800)]
ARM: dts: msm: Change LAB precharge time to 500us for PMI8994

Set LAB's precharge time to max 500us to optimize the precharge
behavior.

CRs-Fixed: 1028321
Change-Id: I13eaca8f50080457b95f4c88f9987df6ba0f05c5
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
8 years agomsm: ipa: change default low watermark for rx buffers
Skylar Chang [Mon, 27 Jun 2016 21:10:12 +0000 (14:10 -0700)]
msm: ipa: change default low watermark for rx buffers

Change the threshold for resubmitting RX buffers to IPA in case
of allocation errors to a bigger number than 0.
In some corner cases a packet from IPA to AP might be larger than
the side of 1 buffer, which can result in IPA stall if threshold
is 0.

CRs-Fixed: 1027726
Change-Id: Ic841de25597c2cd4ce007823f9b9727e858a73cb
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
8 years agoarm: dma-mapping: return NULL on remap error
Vinayak Menon [Fri, 24 Jun 2016 09:16:49 +0000 (14:46 +0530)]
arm: dma-mapping: return NULL on remap error

Currently arm_dma_remap returns the offset value when it fails
because of reasons like unavailability of vmalloc space. This
is wrong as the caller expects NULL on failure, and can result
in kernel panic on dereferencing the returned pointer.

Change-Id: Ic851efecd1b5ff1c5e3105f28f392307857e63e3
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
8 years agolpm-levels: Fix cpu idle trace and stats event
Archana Sathyakumar [Fri, 24 Jun 2016 22:19:37 +0000 (16:19 -0600)]
lpm-levels: Fix cpu idle trace and stats event

In the event that the cpu needs to be rescheduled for another task
before it enters psci sleep, the stats and trace exit events are
considered without the enter events. Fix this issue by moving enter
events before the cpu gets scheduled.

Change-Id: I8e477c434d218960b48aab4e61cacf99476b607f
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
8 years agoBluetooth: Replace %p with %pK
Dibyendu Roy [Tue, 21 Jun 2016 08:04:28 +0000 (13:34 +0530)]
Bluetooth: Replace %p with %pK

The %pK restrictions are used to eliminate exposing kernel addresses.
When kptr_restrict is set to "0" there are no restrictions. When
kptr_restrict is set to "1", kernel pointers printed using the %pK
format specifier will be replaced with 0's unless the user has
CAP_SYSLOG. When kptr_restrict is set to "2", kernel pointers printed
using %pK will be replaced with 0's regardless of privileges.

Change-Id: Iacd8f7b7cdafed3a111507d3da899be9261ff09f
Signed-off-by: Dibyendu Roy <dibyen@codeaurora.org>
8 years agoqcom-charger: qpnp-smb2: Remove unnecessary watchdog interrupts
Harry Yang [Fri, 24 Jun 2016 00:37:21 +0000 (17:37 -0700)]
qcom-charger: qpnp-smb2: Remove unnecessary watchdog interrupts

Watchdog interrupts bark and snarl get triggered frequently, causing
flood messages when enabled in debug_mask. However, neither irq is
essentially being used in charger driver.

Remove both interrupts by setting their irq handlers to NULL, and
skipping irq registration in case of NULL handlers.

CRs-Fixed: 1033724
Change-Id: I9414f3238d1568ec29973a7ec74054c779a7a196
Signed-off-by: Harry Yang <harryy@codeaurora.org>
8 years agoregulator: rpm-smd-regulator: implement set_load
Nicholas Troast [Fri, 3 Jun 2016 00:39:48 +0000 (17:39 -0700)]
regulator: rpm-smd-regulator: implement set_load

A recent change to regulator framework replaced the
regulator_set_optimum_mode API with regulator_set_load.

The regulator_set_load API does the following for regulators which have
not implemented set_load().

- determines the most optimal mode for the given load by calling
  get_optimum_mode()
- gets the current mode by calling get_mode()
- calls set_mode() if the modes are different and expects the mode to be
  committed to the hardware

The rpm-smd-regulator's get_optimum_mode() remembers the load and uses that
for the upcoming get_mode() call. This causes the framework to never call
the set_mode API, thereby causing rpm-smd-regulator to never send the load
to the RPM.

The set_load op was introduced for hardware which does not support the
set_mode op. This is convenient since the RPM sets the mode according to
the aggregated load requirements. In addition the RPM also supports forcing
certain modes which fits well with the set_mode op.

Implement the set_load op to send the aggregated load vote to RPM, and
repurpose the set_mode op to send the aggregated mode vote to RPM.
Remove the get_optimum_mode op since it is no longer required with this
change.

Repurposing of set_mode should not impact consumers since it has the same
effect as before. Instead of sending a load vote which would cause the RPM
to select the desired mode the mode will be sent directly.

Furthermore, the hpm-min-load device tree property is no longer required
since the mode is no longer set based on the hpm-min-load threshold.
Remove it.

Change-Id: I75cf0b4cfc7a6aec3e6d79da9172ce37ec9d91c1
CRs-Fixed: 1023326
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
8 years agodefconfig: arm64: msmcortex: Enable RPM stats/logs
Mahesh Sivasubramanian [Thu, 26 May 2016 20:46:34 +0000 (14:46 -0600)]
defconfig: arm64: msmcortex: Enable RPM stats/logs

RPM stat/logs provide stats about system sleep modes.

Change-Id: I10dc1bdb2fcfe216cdcf147eab936c2f92b5217a
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
8 years agodefconfig: arm64: msm: Enable RPM stats/logs
Mahesh Sivasubramanian [Thu, 26 May 2016 20:46:34 +0000 (14:46 -0600)]
defconfig: arm64: msm: Enable RPM stats/logs

RPM stat/logs provide stats about system sleep modes.

Change-Id: Idf7b30586d5e3c34929b348628f90e5d88f2a9ff
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
8 years agolpm_levels: Avoid race by preventing hotplug during lpm probe
Anil Kumar Mamidala [Tue, 19 Apr 2016 07:46:38 +0000 (13:16 +0530)]
lpm_levels: Avoid race by preventing hotplug during lpm probe

When cluster enters a low power mode, the mode entered is stored
in last_level. During LPM driver probe last_level is initialized
to default level, if a core in that cluster is online.

If all the cores in the cluster are hotplugged after initializing
the last_level and before the per cluster data structures are
initialized, cluster enters low power mode but does not update
last_level as the data structures are not available. In this case
when a core in this cluster is coming online and last_level indicates
default level, assumes cluster did not enter any low power mode,
the update of flags to reflect the cores as active for this cluster
does not happen. This makes driver to select system level low power
mode as if this cluster is in low power mode eventhough it is out
of low power mode.

To avoid this race, prevent cores hotplug during lpm probe.

Change-Id: I1d0c51c52e54ab30239b2fca11040f134315fe61
Signed-off-by: Anil Kumar Mamidala <amami@codeaurora.org>
8 years agomsm: vidc: Add missing qmenu entries for MPEG ctrls
Arun Menon [Sat, 9 May 2015 23:09:05 +0000 (16:09 -0700)]
msm: vidc: Add missing qmenu entries for MPEG ctrls

V4l2 control framework mandates a qmenu entry for each control item.
Validate_new() function accesses the qmenu entry for control item,
and any missing qmenu entries causes a crash within this function.
This patch fixes those crashes.

CRs-Fixed: 1031156
Change-Id: Ie507b1de9ce08221678a730146164d6e970aac8a
Signed-off-by: Arun Menon <avmenon@codeaurora.org>
Signed-off-by: Amit Shekhar <ashekhar@codeaurora.org>
8 years agomisc: qcom: qdsp6v2: Return flush errors to user space
Ben Romberger [Tue, 26 Jan 2016 01:05:14 +0000 (17:05 -0800)]
misc: qcom: qdsp6v2: Return flush errors to user space

Return errors from the flush function including
the caller of the flush ioctl.

CRs-fixed: 1027784
Change-Id: I7ec578b42f50b6ce2f2738193c622c8a2f01ecd8
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
8 years agoASoC: msm: qdsp6v2: Support host pcm feature based on new VSIDs
Helen Zeng [Thu, 16 Jul 2015 22:52:13 +0000 (15:52 -0700)]
ASoC: msm: qdsp6v2: Support host pcm feature based on new VSIDs

With single voice architecture, two new VSIDs are created to
support multimode voice call. Update host pcm driver to support
new VSIDs.

Change-Id: I42e33db7f3dca47c30b7dc5af59848eb6beef330
Signed-off-by: Helen Zeng <xiaoyunz@codeaurora.org>
8 years agomsm: kgsl: Create sysfs entry to control GPU clock throttling.
Oleg Perelet [Wed, 18 May 2016 22:38:55 +0000 (15:38 -0700)]
msm: kgsl: Create sysfs entry to control GPU clock throttling.

Create sysfs entry to control GPU clock throttling. When 0 is
written - all sources of clock throlling - ie LM, BCL, IDLE
are disabled.

CRs-Fixed: 973565
Change-Id: Iad588eb94861bd6b223715cc05354e3c39db9b24
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>