During SSR, all channels are removed and ports are disconnected since
slimbus HW is not functional. Return success to clients for such
calls so that client can mark channel/port state constistent with HW
Change-Id: I9b18f8e7ffe233090c9612d0811a7d36645d0329
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
Add appropriate entries to support HDMI
on msm8996 Fluid.
Change-Id: I2000744eb0cb3d6d5c402d17a05f55ff55c43707
Signed-off-by: Bruce Levy <blevy@codeaurora.org>
Runtime-pm autosuspend delay is set to 1 second. This
long period is used to avoid thrashing due to long time
it takes for bus-pm voting. The period is reduced to a
quarter to optimize power. This number is tested for
trade-off between power and performance.
Change-Id: I973495e23852f1caefb981b1d8f26da5f09ca7bc
Signed-off-by: Gilad Avidov <gavidov@codeaurora.org>
After subsystem restart is completed, driver will try to restore the
internal clock state to state before subsystem restart. In some cases,
it is possible that the internal clock state is not restored properly.
This causes the internal clock to be off when it is expected to be
turned on. Fix this issue by making sure the clock states are restored
correctly post subsystem restart.
CRs-fixed: 948899
Change-Id: I0084287b2d3b62c7498bae423952e64dd0d6e0f4
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Set up the execution environment before PCIe link training to
provide better adaptability to various hosts.
Change-Id: I72721d3b88a7e5b1a0a1f408da2228391559468e
Signed-off-by: Yan He <yanhe@codeaurora.org>
The PCIe clients will utilize the original MSI address instead of
mapped local address when active config is enabled. The change here
provides the original address to the clients.
Change-Id: I0d35fa9508d7c3ec2e97bd7d61754974e798bf8a
Signed-off-by: Yan He <yanhe@codeaurora.org>
Enable count of WSA startup/shutdown is not handled.
Add counter to handle the startup and shutdown properly.
Change-Id: I8c46fdd900c51d3e8d766b824f17996919779ba9
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Explicitly vote for the regulator for WLAN antenna switch in order to
enable WLAN antenna sharing capacity in MSM8996.
Change-Id: Ibe06f33477f05ec860829f6a2de6fc23558bf4b8
Signed-off-by: Yue Ma <yuem@codeaurora.org>
Add a PM8994 LDO 18 regulator device which can be used to manage
the HW_EN2 pin control enable configuration for LDO 18 at
runtime. When this regulator is enabled, LDO 18 output is
enabled whenever HW_EN2 (i.e. PM8994 GPIO 11) is driven high.
When this regulator is disabled, the state of GPIO 11 is ignored.
This regulator can be used to support WLAN antenna sharing where
the WLAN chip is connected to GPIO 11 and drives it high whenever
RX or TX is active.
Also update the voltage constraint range to allow values from
2.7 V to 2.9 V.
Change-Id: I7afab38356e6619580539ed05b5130553491b100
Signed-off-by: David Collins <collinsd@codeaurora.org>
CSI PHY setting is updated for maximum timing margin to
support high data rate up to 2.5Gbps/lane.
Change-Id: I165a5bc4467da83dda26deb56af16cbe64902515
Signed-off-by: Xu Han <hanxu@codeaurora.org>
Limits management can force clock throttling which results in incorrect
busy percentage calculation. We need to account for that in DCVS.
Change-Id: Iaa17a7f7d661ab9966597f7710374d5b2e00d514
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
Currently lsm client data is deallocated when q6lsm_open() fails
which can cause memory corruption if lsm client data is accessed
after freed. Fix this issue by deallocating the client data only
in msm_lsm_close().
Change-Id: If048c26a0ffd8a346a28622183cbf2ba1e7e5ff3
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
When SIP ALG is disabled, SIP packet should not be parsed by
SIP ALG module. Make change to Check nf_ct_disable_sip_alg flag
before parsing the SIP packet to bypass SIP ALG processing
when SIP ALG is disabled.
Change-Id: I863c93f418b694bc0e9101c31d2da12e761091a6
Signed-off-by: Ravinder Konka <rkonka@codeaurora.org>
ADV7533 chip is used as DBA (Display Bridge Abstraction)
in MDSS driver. So adding the dba property to panel dt files.
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Change-Id: Ideda14930a9025b105880021440fd84baf3343c3
ADV7533 is a DSI to HDMI bridge chip, it does not need any backlight
control to be defined. So removing this property from panel dt files.
Change-Id: I3ca7290ce324d9385da8b13d9c141de0730d8535
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Configure csi0 camera to use cci master 1 to reflect
hardware on 8996 mojave automotive plaftorm.
Change-Id: I38d2a8499e6f1916aad7dfbc36d03e36a8fbd47b
Signed-off-by: Terence Ho <terenceh@codeaurora.org>
Disallow use of the 400 mV VDD_GFX CPR retention corner since it
has been found that 400 mV is not a sufficiently high retention
voltage across all parts. Additionally, no power benefits have
been found when using the retention state during graphics
hardware operation. Also, there is a minor performance penalty
when the retention corner is allowed as software reconfigures
the VDD_GFX supply to the retention voltage during GPU power
collapse and resume before transitioning to an active voltage.
Change-Id: I374d7620373d7fea17818009bec3d171a6072cdc
Signed-off-by: David Collins <collinsd@codeaurora.org>
Update cbcr_set_flags method to add support for controlling the
MEM_PERPIH_OFF bit for branch clocks.
Change-Id: I87451b02cb9000dc850fdfaa52a5a9f9fd2893a1
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
During subsystem restart, if a transmit operation is waiting for a remote
receive intent acknowledgment, signal the waiter that the receive intent
request will not be acknowledged. Also check the transport and channel
state before waiting for the acknowledgment. This will prevent the
transmit operation from blocking indefinitely under error scenario.
CRs-Fixed: 952184
Change-Id: I29b8215841f7dcca52137f451665eaf339a6f78e
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
During subsystem restart, it is possible that while the underlying bus
is down, the irq driver has already performed its cleanup. In such case,
when CPE driver requests to cleanup its own irq, the irq driver attempts
to hold an lock that is already freed. Fix this issue by performing the
CPE driver irq cleanup after bus is up rather than when bus is down.
CRs-fixed: 948899
Change-Id: I2772e89bbdc855baa9fcf7a34a9c16f2f5c05c32
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Liping Zhang spotted a race between tcp_nuke_addr and tcp_close
that can cause a crash. If a userspace process calls tcp_close
on a socket at the same time that tcp_nuke_addr is closing it,
and tcp_close wins the race to call lock_sock, it will call
sock_orphan before releasing the lock. sock_orphan sets the
SOCK_DEAD flag on the socket and proceeds to close it, eventually
calling inet_csk_destroy_sock. When tcp_nuke_addr gets the socket
lock, it calls tcp_done. But if tcp_done sees the SOCK_DEAD flag,
it calls inet_csk_destroy_sock as well, resulting in a double
free.
Fix this by checking for SOCK_DEAD again after lock_sock
succeeds. Eric had already pointed out that this could be a
problem in b/23663111, so there was already a TODO in the code
for this.
Change-Id: I0c87c3fd0598384d957b69734366bd4e2fd7e8d7
Git-commit: 61469ddc534f255c709349a1a611216ecd07e13d
Git-repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
tcp_nuke addr only grabs the bottom half socket lock, but not the
userspace socket lock. This allows a userspace program to call
close() while the socket is running, which causes a NULL pointer
dereference in inet_put_port.
Bug: 23663111
Bug: 24072792
Change-Id: Iecb63af68c2db4764c74785153d1c9054f76b94f
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
Git-commit: 74d66ee756afcc3269e4c1341f793c52be629af9
Git-repo: https://android.googlesource.com/kernel/common/
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Stream id mask need more than 8 bit,
thus increase bit width for error reporting.
Change-Id: I308a9d3df6024768b07ec49562f3241707566e2a
Signed-off-by: Peter Liu <pingchie@codeaurora.org>
- currently gain is added for only number of channels and clip
channel count is send to dsp.
- but it is possible that channel mask that driver has is different
than what dsp discovers after decoding the codec config data
- volume will not be applied to channels that differ between driver
and dsp and device volume will not apply on these channels
- change is to control multi-channel volume using master gain
Change-Id: Icd8ca4e935d9095dd9ef8b65eff34629326fb563
Signed-off-by: vivek mehta <mvivek@codeaurora.org>
Move list init for no wait que before apr registration.
If apr registration fails asm free client will free
the no wait que.
Change-Id: I4707dbf4771a1ec313898adb2284c06ef1fb5b3a
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
Fix incorrect comparison that prevented RDI2 from being enabled.
Change-Id: I4f18a290237f074b6a095d33dcd8429f90c8a1d5
Signed-off-by: Terence Ho <terenceh@codeaurora.org>
Debug data read was not handling the buffer overflow case when
the data to write is greater than PAGE_SIZE. This resulted in
calling the hardware for new data multiple times.
Returning success when buffer overflowed will cause the sequence
traverse function to call again with a new buffer with increased
size. This process will go on until the buffer size is big enough
to hold the data. But limits data read function couldn't distinguish
if the call is a retry or a new call and will initiate a new data
fetch from hardware and re-populate with new data.
Modify debug read interface to immediately return success when
overflow happens. The debug read function now can distinguish between
a sequence retry call by retaining the data buffer in a static if
overflow happens. When called again, debug read now will avoid
calling the hardware for new data and instead will populate the new
sequence buffer with the previously fetched data.
Change-Id: Icc0eb035047ab734d2eb5366cade4ec187747379
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
The primary interrupt handler disables the lmh interrupt. But
this is already taken care by IRQF_ONESHOT flag. Remove
the primary interrupt handler and disable the interrupt in the
interrupt thread function.
Change-Id: I6c607e0cdef09ffe4f758f9498ee6241d099ee26
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
Update the snprintf() error handling in the
available_level_get() function to look for proper error
return value and take appropriate action.
Change-Id: Ifbe6450693a282105d9fddd02a756ae53d8cd892
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
Update the lmh hardware driver to get the polling interval
value from the lmh interface driver, instead of using a local
static variable.
LMH interface driver already exposes debug interface to
configure the interval value.
Change-Id: Ie7d91519f197930ca513b30a671d8f6917d636b0
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
IPA RX HPS command queue resources need to be distributed
among the different resource groups (e.g. Uplink group).
The configuration is the maximum and minimum number of
resources that can be used by each group.
Change-Id: I02cf831b6ea6da812b67624fbb48bb829e4684d3
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
Make the various timeout values HZ agnostic by using the proper
macros and values instead.
Change-Id: I708cd491f593782f0172cd7d2cca058cd41044a5
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
We might fail in alloc_iova if we run out
of virtual addresses in pool. Currently,
if we fail in alloc_iova we are not checking
for return value and directly going ahead
and mapping invalid IOVA address. Fix this
by explicitly checking for return value
from alloc_iova.
Change-Id: I7681d13b75f47a86f0b0b6cbf4b8405a7528ff66
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
The cnss crypto add support for wlan host driver for security
Protocol and cipher key generation where cnss memory pre-alloc
feature enable wlan driver to use pre allocated memory
for its internal usage and release it to back to pre-allocated pool.
Decouple cnss crypto from cnss memory pre-alloc and add kernel
config flag for this crypto module compilation and update
the defocnfig of required targets.
CRs-Fixed: 949992
Change-Id: If34819fd76076ba522a9a42ac41fdae1f541f5c8
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
When files pages are very low, it is better to clear off
zcache pages, since the freed memory can be used to sustain
an application in foreground. Moreover when file pages
are too low, we don't gain much by holding a few zcache
pages.
Change-Id: I88dd295d24b7de18fb3bc0788e0baeb6bfdb2f6d
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
zero pages need not be compressed and stored unnecessarily.
Rather insert a special handle to the radix tree to identify
a zero page.
Change-Id: Ic92321c4753401a90d69a6e8c61b5119168c9df7
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Add radix_tree_gang_lookup_index to get the radix tree
indices along with the pointers. This will be helpful,
for e.g. if a radix_tree_delete has to be performed
depending on one of the result values.
Change-Id: Iab83d027968462aa30da5341fa3f60134b6c1137
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
zcache allocations happen during reclaim of pages,
and waking up kswapd at this time hinders system
performance. During tests it was seen that without
this patch, there were a lot of kswapd wakeups and
was resulting in bad launches.
Change-Id: Ic0f0240b8fdad6b3fe142b2bdc0366cfd870635e
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
zcache_pool_pages is supposed to store the total
pages in all the pools used by zcache. But at
present zcache_pool_pages is assigned pages of any
particular pool on a load, store or any operation
which modifies the pool size. And this is more
important for external clients which depend on zcache
pool size, like the lowmemorykiller.
Change-Id: Ifdaab8646c40f1fec71dfa5903658fbdc6b3cce5
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
When file pages drops down, at a point zcache pages
can be more than the file pages, and even further when
we have to reclaim the maximum number of file pages
possible to launch an application, we need a way to
reclaim even the zcache pages at least to an extend
which makes it match with the number of file pages.
This can help in better foreground headroom.
Change-Id: I481bfb9961ed5cee47ebeae08eb910bb269b644c
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
zcache store ops cannot sleep since it is called from
an atomic context. Pass the right flags to alloc functions.
Change-Id: I9c7956e895fb7909932315aa3d85845127aa02e1
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Implemented zbud_ops->evict, so that compressed zpages can be evicted from
zbud memory pool in the case that the compressed pool is full.
zbud already managered the compressed pool based on LRU. The evict was
implemented just by dropping the compressed file page data directly, if
the data is required again then no more disk reading can be saved.
Signed-off-by: Bob Liu <bob.liu@oracle.com>
Patch-mainline: linux-mm @ 2013-08-06 11:36:16
[vinmenon@codeaurora.org: trivial merge conflict fixes]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Change-Id: Ia66652475e490f0233547511e80abf7587054e65
zcache is a backend for cleancache that takes file pages that are in the
process of being reclaimed and attempts to compress them and store them
in a RAM-based memory pool. This can result in a significant I/O reduction
if system is full with file pages and, in the case where decompressing
from RAM is faster than reading from the disk, can also improve workload
performance.
Signed-off-by: Bob Liu <bob.liu@oracle.com>
Patch-mainline: linux-mm @ 2013-08-06 11:36:14
[vinmenon@codeaurora.org: trivial merge conflict fixes, checkpatch fixes]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
Change-Id: Id05bcc1946eee22b94a83adeb0134a3f6e357ef8
Currently worker thread in cpe service is created twice.
The second thread handler overwrites the first one. The first
thread is not freed when the service is cleaned up. The fix
prevents creation of the redundant thread.
CRs-Fixed: 949165
Change-Id: Idd76b76d4f7f25d2592ca7c336dbee77b6efc7eb
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
This driver creates network device of type CAN
and processes tx and rx frames that it sends and
receives over SPI.
Change-Id: I903927d5bb0025c2ad3e9f1dd7cb51de547fc360
Signed-off-by: Alex Yakavenka <ayakav@codeaurora.org>
The current maximum length of an IPC Logging log context name is 20
characters. Some clients are now using names longer than this.
Increase the maximum length to 32. This change increases the IPC Logging
version to 3.
Change-Id: I9daecb8a7c6c3aea427efd1c75e307456e9c6c21
Signed-off-by: Steven Cahail <scahail@codeaurora.org>
Support using the cached write pointer for a BAM-to-Sys mode BAM
pipe when check if the desc FIFO of that pipe is full.
Change-Id: Ie480ecca9eff76388c504665b496e01bbf3e009f
Signed-off-by: Yan He <yanhe@codeaurora.org>
Slave synchronization is needed to sync frame shape consisting
of different ports with different sample rates. Change sets
the slave synchronization based on the frame shape.
Change-Id: Iae726555b3c158394662c590d1ebc781ff7f54f5
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>