Commit graph

574364 commits

Author SHA1 Message Date
Linux Build Service Account
de4f2234b6 Merge "msm: kgsl: Change sequencing for GPU hardware clock gating" 2016-08-26 14:48:42 -07:00
Linux Build Service Account
ac536b7576 Merge "msm: ipa3: add gateway info on wan_msg" 2016-08-26 14:48:41 -07:00
Linux Build Service Account
917e5e4c37 Merge "msm: misc: hdcp: add support for multi-part hdcp2p2 messages" 2016-08-26 14:48:41 -07:00
Linux Build Service Account
6ca1ce42e8 Merge "msm: ipa: handle information leak on ADD_FLT_RULE_INDEX ioctl" 2016-08-26 14:48:40 -07:00
Linux Build Service Account
6e8980477d Merge "diag: Add diag over glink support" 2016-08-26 14:48:39 -07:00
Linux Build Service Account
158d2d87fe Merge "qseecom: support whitelist memory for qseecom_send_modfd_cmd" 2016-08-26 14:48:38 -07:00
Linux Build Service Account
1c3f3dcc8a Merge "msm: mdss: Correct command mode MISR CRC reg offset and blockid" 2016-08-26 14:48:38 -07:00
Linux Build Service Account
f11f09118e Merge "usb: gadget: gsi: Handle EVT_HOST_READY event in STATE_INITIALIZED state" 2016-08-26 14:48:37 -07:00
Linux Build Service Account
c59ad8da42 Merge "clk: msm: mdss: update Dp PLL/Phy configuration" 2016-08-26 14:48:35 -07:00
Linux Build Service Account
e235cc7ed7 Merge "mdss: display-port: add support for audio programming" 2016-08-26 14:48:34 -07:00
Linux Build Service Account
eb5cb31c18 Merge "msm: ipa3: fix the dma_map_single issue" 2016-08-26 14:48:34 -07:00
Linux Build Service Account
605f313ca9 Merge "regulator: cpr3-mmss-regulator: update ref voltages for msmcobalt v2" 2016-08-26 14:48:33 -07:00
Linux Build Service Account
59f9c1af18 Merge "ARM: dts: msm: add hdcp support on msmcobalt v1" 2016-08-26 14:48:32 -07:00
Linux Build Service Account
cd7ec1bbe6 Merge "msm: kgsl: remove un-used GPU power states" 2016-08-26 14:48:31 -07:00
Linux Build Service Account
801c6f14c5 Merge "ARM: dts: msm: Add GPU DCVS plan for msmcobalt V2" 2016-08-26 14:48:30 -07:00
Linux Build Service Account
2f4167d0e1 Merge "clk: msm: clock: Add voter clocks for mmss_camss_jpeg0_clk" 2016-08-26 14:48:29 -07:00
Linux Build Service Account
2a358a675b Merge "msm: ipa3: Update registers configurations for IPAv3.5/3.5.1" 2016-08-26 14:48:28 -07:00
Linux Build Service Account
cd6b388dab Merge "scsi: ufs: fix race between hibern8 failure recovery and error handler" 2016-08-26 14:48:28 -07:00
Linux Build Service Account
ab9b466bb3 Merge "msm: ipa: fix a static analysis issue at IPA unit-tests" 2016-08-26 14:48:26 -07:00
Linux Build Service Account
21e5bf47c1 Merge "ASoC: msm: Add support for playback over slimbus2 rx port" 2016-08-26 14:48:24 -07:00
Linux Build Service Account
9539b29f37 Merge "msm: ipa3: Fix unclocked access to IPA SMEM register" 2016-08-26 14:48:23 -07:00
Linux Build Service Account
c6182a6521 Merge "defconfig: msm: enable SMCInvoke feature" 2016-08-26 14:48:22 -07:00
Linux Build Service Account
07dde62a73 Merge "msm: mink: Adding SMCInvoke Driver" 2016-08-26 14:48:22 -07:00
Linux Build Service Account
30f32fdd4e Merge "coresight: abort coresight tracing on kernel crash" 2016-08-26 14:48:21 -07:00
Linux Build Service Account
0366550001 Merge "soc: qcom: Clear PBL interrupt in case of error" 2016-08-26 14:48:20 -07:00
Linux Build Service Account
cf174274e9 Merge "qcom-charger: expand data structure smb_chg_param" 2016-08-26 14:48:19 -07:00
Linux Build Service Account
7ab2fa74f1 Merge "msm: mdss: fix pipe priority validation" 2016-08-26 14:48:18 -07:00
Linux Build Service Account
4220f26bb7 Merge "msm: mdss: Fix potential NULL pointer dereferences" 2016-08-26 14:48:17 -07:00
Linux Build Service Account
9269a96566 Merge "ARM: dts: msm: Update SS phy initialization sequence for msmcobalt" 2016-08-26 14:48:17 -07:00
Phani Kumar Uppalapati
68eef60c8f ASoC: wcd934x: Add DSD volume support
Add support for adjusting volume when DSD (Direct Stream
Digital) audio playback is in progress.

Change-Id: Ica51d40911d16059e8af21c60794b35c68bb695d
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-08-26 11:59:14 -07:00
Phani Kumar Uppalapati
10b823cd45 ASoC: wcd934x: Add support for DSD audio playback
Add DAPM (Dynamic Audio Power Management) widgets and
routing to enable support for DSD (Direct Stream Digital)
audio playback on wcd934x codec.

Change-Id: I06e1b0134cea58adedbd9113a51529b2b73da835
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-08-26 11:59:05 -07:00
Vidyakumar Athota
1aa6e9851e ASoC: wcd934x: add ASRC mixing support
WCD934X supports mixing of integer sample rate clips with
fractional sample rate clips using ASRC(asynchronous sample
rate converter) block. Add support to use ASRC block in codec.

CRs-Fixed: 1054643
Change-Id: I3a04cc902c74b49e1d40c5a52acbf1f7c907c34e
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
2016-08-26 11:58:47 -07:00
Phani Kumar Uppalapati
2071a4cd7d ASoC: wcd934x: Add support for codec MCLK2 enablement
Add support to enable codec MCLK2 which is used for
44.1KHz and its multiples sample rate audio playback.

CRs-Fixed: 1054643
Change-Id: Id157439b2a46ac4fa54b4a768f9555cf390399b5
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-08-26 11:58:42 -07:00
Bhalchandra Gajare
6ed085d498 ASoC: wcd934x: Add support for voltage scaling
WCD934X audio codec supports static voltage scaling (SVS) mode, which
puts the codec into lowest power state. The codec has different power
states (SVS2, SVS and Nominal). Add support in codec driver to vote
for SVS when audio usecases are enabled and remove vote for SVS when
audio usecases are disabled. The codec driver only votes for SVS or
no SVS and the hardware internally manages to go into Nominal mode.

CRs-Fixed: 1049012
Change-Id: I6f66d3136e3c49da54f5919184bc113267105463
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-08-26 11:58:15 -07:00
Meng Wang
cacf1949cd ASoC: wcd934x: add MAD support for wcd934x codec
MAD (Microphone Activity Detection) hardware block in wcd934x audio
codec samples the microphone at configured intervals to sense
presence of valid audio signal. This is used for voice activation
use cases. Change adds widgets and routes to enable the MAD block.

CRs-Fixed: 1049012
Change-Id: I1ce4f3f215850fada6c25192a4351f3a9c76a370
Signed-off-by: Meng Wang <mwang@codeaurora.org>
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-08-26 11:57:57 -07:00
Mahesh Sivasubramanian
505878dcf7 soc: qcom: rpm-smd: Account for NOACK messages with system sleep
When a system is entering RPM assisted sleep, the NOACK messages are
not accounted in preventing such sleep modes as no driver is waiting
on it. In such scenarios, some active messages could still be in the
Apps RX buffer which reduces the number of outstanding sleep messages.

Fix by accounting for NOACK messages while flushing sleep set requests
and ensuring that they are read before sending any sleep set requests.

The original changes were reverted to address issues with SMD transport.
This change includes fixes from earlier squashed into a single commit.

Change-Id: I5570d7694424d0a602c446c0af098a64ffa681e4
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
2016-08-26 10:21:51 +05:30
Abhijeet Dharmapurikar
52bf80303d qcom_charger: smb-lib: support faking battery capacity
On debug setups where the battery is not present, we need a way
to fake battery capacity instead of reporting some incorrect
/non-existent value. Provide means for the userspace to setup
a fake battery capacity.

Change-Id: Iff3ee1009d9c3215433cc267f016ef9cf2a9bff2
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2016-08-25 15:55:39 -07:00
Abhijeet Dharmapurikar
79c88a3bdb qpnp-fg-gen3: export the battery float voltage
Implement VOLTAGE_MAX_DESIGN to expose the battery float voltage. This
property will reflect the values read from battery profile and will
will be used for setting the max voltage on charging chips.

Change-Id: I4b9028f8930ac2f3de6c043fa145494f37322160
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2016-08-25 14:23:37 -07:00
Abhijeet Dharmapurikar
67d71eb938 qcom-charger: smb-lib: correct the usb suspend votable name
Currently the name of the votable that suspends usb is INPUT_SUSPEND.
However, the PMI has two inputs - USB and DC. The dc suspending votable
is correctly named DC_SUSPEND. So rename the INPUT_SUSPEND to an
appropriate name - USB_SUSPEND.

Change-Id: Ia5ea1b139f5e9d560dc6492aa9fc13ffeeda83ca
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2016-08-25 14:22:52 -07:00
Skylar Chang
ebc2a18351 msm: ipa: WA to get PA of sgt_tbl from wlan
with SMMU enable, the API page_to_phys() is
failed to get PA of the sg_page tbl. The WA
is to have wlan-driver directly send the PA
to ipa-driver.

Change-Id: I7750102222d519969da0d597a6591aa728abb27a
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2016-08-25 14:02:19 -07:00
Archana Sathyakumar
27672f152d ARM: dts: msm: Update power attributes for msmcobalt
Update power attributes for cpu and cluster's low power modes based on
the measurements on the device.

Breakeven points for v1 hardware:

Power Cluster -

Min us  Max us  Mode selected
83      1810    c1
1810            c3

Note: C2d is disabled in v1

L2 - Power Cluster

Min us Max us Mode selected
99     975    d1
976    3398   d2d
3399   9182   d2e
9183          d4

Perf Cluster

Min us Max us Mode selected
86     1704   c1
1704          c3

Note: C2d is disabled in v1

L2 - Perf Cluster

Min us Max us Mode selected
99     905    d1
906    3380   d2d
3381   9418   d2e
9419          d4

CCI

Min us Max us Mode selected
16744         e3

Change-Id: Iaf9930c0589e193c8a366ff44808d75c6d6b360b
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
2016-08-25 14:16:15 -06:00
George Shen
4b478ca851 msm: kgsl: remove un-used GPU power states
DEEP-NAP and SLEEP states are not used in targets of previous
two generations. They are neither saving GPU power, nor saving
system power. Remove to reduce maintenance overhead.

CRs-Fixed: 1053516
Change-Id: If2fc2701548f90bb7ea9559a87752e13a7b0f736
Signed-off-by: George Shen <sqiao@codeaurora.org>
2016-08-25 11:58:29 -07:00
Prashanth Bhatta
cd48ca9c04 ARM: dts: Change minimum voltage for LDO25
For WLAN hardware to enter low power mode, LDO25 voltage needs to
be at 3.1V. Change the regulator node to add this change.
Also for icnss driver votes for LDO7, LDO17 and LDO25, use pin
control regulator votes.

CRs-fixed: 1059101
Change-Id: I894631f6085410bd9961a0e00ca5eb2cd7d0c5bd
Signed-off-by: Prashanth Bhatta <bhattap@codeaurora.org>
2016-08-25 11:56:42 -07:00
David Collins
b26949fe61 ARM: dts: msm: update VDD_GFX CPR target quotients for msmcobalt v2
Hardware characterization has shown that ROs 10 and 12 should be
used along with RO 13 on MSMCOBALT v2 for the highest VDD_GFX CPR
corner (Turbo L1).  Specify their target quotient values.

Change-Id: Id2084fd8913468372ad78ecf0d41427171f87bab
CRs-Fixed: 1054539
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-08-25 11:38:05 -07:00
Jonathan Wicks
d1552b763a ARM: dts: msm: Update GPU SMMU settings for cobalt
Updating the GPU SMMU settings to match the settings
used during pre-sil testing.

Change-Id: I70e0b87c3575f5778726ae2855d68bf0e560206a
Signed-off-by: Jonathan Wicks <jwicks@codeaurora.org>
2016-08-25 09:27:46 -06:00
Sahitya Tummala
53688837e0 host: sdhci: fix current caps when there is no host->vmmc
When the regulators are not managed by SDHCI host driver (i.e.,
when host->vmmc and host->vmmcq are absent), get the regulator
current capabilities through a new host op get_current_limit().

Change-Id: I097349ad4d2e8ffbafbeb5fe65910894fe909bd6
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
2016-08-25 07:12:12 -07:00
Taniya Das
c6d8725f07 clk: qcom: Add support for clk_set_flags for branch and dummy clock
Add support to allow setting various flags on the branch clock
pertaining to PERIPH, RETAIN_PERIPH, RETAIN_MEM set and clear by clients
which require this support.

Change-Id: I59ddc1b3b677bd0d7fa838afc9a6cbfc10f98409
Signed-off-by: Taniya Das <tdas@codeaurora.org>
2016-08-25 12:39:12 +05:30
Taniya Das
f7e6b7a1bc clk: qcom: Add support for dummy reset controller
The consumers of the dummy clock provider would require support for dummy
resets, which would make a dummy assert/deassert reset signals. The dummy
reset controller registers for 0-100 reset signals.

The consumers node would have the reset phandle and reset specific pairs
and the reset signal names.

test_node {
	....
	resets = <&clock_gcc GCC_PHY_BCR>;
	reset-names = "phy_reset";
};

Change-Id: I242d2f36a6b4af53c658dbaa7a0f32e46cd3af33
Signed-off-by: Taniya Das <tdas@codeaurora.org>
2016-08-25 12:35:34 +05:30
Vinayak Menon
47b41f43ee mm: zbud: fix the locking scenarios with zcache
With zcache using zbud, strange locking scenarios are
observed. The first problem seen is:

Core 2 waiting on mapping->tree_lock which is taken by core 6
do_raw_spin_lock

raw_spin_lock_irq
atomic_cmpxchg
page_freeze_refs
__remove_mapping
shrink_page_list

Core 6 after taking mapping->tree_lock is waiting on zbud pool lock
which is held by core 5
zbud_alloc
zcache_store_page
__cleancache_put_page
cleancache_put_page
__delete_from_page_cache
spin_unlock_irq
__remove_mapping
shrink_page_list
shrink_inactive_list

Core 5 after taking zbud pool lock from zbud_free received an IRQ, and
after IRQ exit, softirqs were scheduled and end_page_writeback tried to
lock on mapping->tree_lock which is already held by Core 6. Deadlock.
do_raw_spin_lock
raw_spin_lock_irqsave
test_clear_page_writeba
end_page_writeback
ext4_finish_bio
ext4_end_bio
bio_endio
blk_update_request
end_clone_bio
bio_endio
blk_update_request
blk_update_bidi_request
blk_end_bidi_request
blk_end_request
mmc_blk_cmdq_complete_r
mmc_cmdq_softirq_done
blk_done_softirq
static_key_count
static_key_false
trace_softirq_exit
__do_softirq()
tick_irq_exit
irq_exit()
set_irq_regs
__handle_domain_irq
gic_handle_irq
el1_irq
exception
__list_del_entry
list_del
zbud_free
zcache_load_page
__cleancache_get_page(?

This shows that allowing softirqs while holding zbud pool lock
can result in deadlocks. To fix this, 'commit 6a1fdaa36272
("mm: zbud: prevent softirq during zbud alloc, free and reclaim")'
decided to take spin_lock_bh during zbud_free, zbud_alloc and
zbud_reclaim. But this resulted in another deadlock.

spin_bug()
do_raw_spin_lock()
_raw_spin_lock_irqsave()
test_clear_page_writeback()
end_page_writeback()
ext4_finish_bio()
ext4_end_bio()
bio_endio()
blk_update_request()
end_clone_bio()
bio_endio()
blk_update_request()
blk_update_bidi_request()
blk_end_request()
mmc_blk_cmdq_complete_rq()
mmc_cmdq_softirq_done()
blk_done_softirq()
__do_softirq()
do_softirq()
__local_bh_enable_ip()
_raw_spin_unlock_bh()
zbud_alloc()
zcache_store_page()
__cleancache_put_page()
__delete_from_page_cache()
__remove_mapping()
shrink_page_list()

Here, the spin_unlock_bh resulted in explicit invocation of do_sofirq,
which resulted in the acquisition of mapping->tree_lock which was already
taken by __remove_mapping.

The new fix considers the following facts.
1) zcache_store_page is always be called from __delete_from_page_cache
with mapping->tree_lock held and interrupts disabled. Thus zbud_alloc
which is called only from zcache_store_page is always called with
interrupts disabled.
2) zbud_free and zbud_reclaim_page can be called from zcache with or
without interrupts disabled. So an interrupt while holding zbud pool
lock can result in do_softirq and acquisition of mapping->tree_lock.

(1) implies zbud_alloc need not explicitly disable bh. But disable
interrupts to make sure zbud_alloc is safe with zcache, irrespective
of future changes. This will fix the second scenario.
(2) implies zbud_free and zbud_reclaim_page should use spin_lock_irqsave,
so that interrupts will not be triggered and inturn softirqs.
spin_lock_bh can't be used because a spin_unlock_bh can triger a softirq
even in interrupt context. This will fix the first scenario.

Change-Id: Ibc810525dddf97614db41643642fec7472bd6a2c
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
2016-08-25 11:49:45 +05:30
Riley Andrews
1943b682a3 cpuset: Make cpusets restore on hotplug
This deliberately changes the behavior of the per-cpuset
cpus file to not be effected by hotplug. When a cpu is offlined,
it will be removed from the cpuset/cpus file. When a cpu is onlined,
if the cpuset originally requested that that cpu was part of the cpuset, that
cpu will be restored to the cpuset. The cpus files still
have to be hierachical, but the ranges no longer have to be out of
the currently online cpus, just the physically present cpus.

Change-Id: I3efbae24a1f6384be1e603fb56f0d3baef61d924
[ohaugan@codeaurora.org: Port to 4.4]
Git-commit: f180bcac788464a0baf3d79d76dd86d6972ea413
Git-repo: https://android.googlesource.com/kernel/common/msm.git
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
2016-08-24 16:03:23 -07:00