During migrate_tasks, we have to drop the dead_rq lock in
order to preserve locking order when acquiring task->pi_lock.
This may allow the task to migrate off of dead_rq. Therefore,
don't attempt to migrate such a task again from dead_rq.
Change-Id: Id31b58e231d3dcd7d32e0dc7f264595d60a7c408
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
When display driver looks for a pipe, it checks for
the number of rectangles that the pipe allows.
This number only needs to be obtained from the base
pipe and there is no need to check for this number
on each of the rectangles of the base pipe.
Current code, gets this number for the base pipe
and for each of its rectangles while iterating the
list of pointers; main problem is that in the
loop through the rectangles, the pointer to the
'pipe' has been already increased at the end of the
'for' loop; which causes that the check to see if
the iterations need to continue is done against the
next element of the list; this is mainly a problem
for the last element of the list, since the pointer
would be something beyond the boundaries of the list.
Change-Id: Ie4ac72e460643606f718d5809e65cda70932fb84
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
During atomic commit - validate failures, the newly allocated
pipes and pipes taken from the destroy list are cleaned up.
Currently pipe ndx is checked which can lead to cleaning up
the already in use multirect instead of the rect allocated
in the current validate. Add checks to include checking based
on multirect to avoid such cases.
Change-Id: I7f8fb6630314cdc523490e28d90dd3776bdfeada
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
To improve accuracy update RRADC USBIN current
scaling factor for V/A from 0.5 to 0.53.
Change-Id: Ia13bd8702f337f71dae5d612f6efe55ee8c2a317
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
The clock driver by default returns immediately if a set_rate()
request is made for a clock with a frequency that matches the
SW frequency state. This is an optimization to avoid performing
unnecessary clock configuration updates.
Due to a HW limitation of the multimedia block on MSM COBALT,
the clock sources or RCGs can end up running at XO frequency
after a multimedia power collapse. In order to avoid this,
have the multimedia clients call set_rate() prior to enabling
their clocks. In addition, add the CLKFLAG_NO_RATE_CACHE flag
to the multimedia clocks to remove the above mentioned set_rate()
optimization and re-configure the clock source for every rate
request, regardless of what rate the RCG is already configured to.
CRs-Fixed: 1088709
Change-Id: I21e1c029e6b245cfa26a187b35bb1f6845302484
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
This reverts commit c93b93ee87 ("ARM: dts: msm: disable L1 and
L1ss for PCIe on msmcobalt").
Re-enable a necessary power saving feature for PCIe and its
client.
Change-Id: I231f518b701a988ab4a4f475e7e3c6f17d58187b
Signed-off-by: Tony Truong <truong@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Enabling L1 / L1SS for 11ad device causes PCIe
link down or PCIe NOC read/write timeouts.
To prevent that, disable L1 for 11ad devices after
PCIe enumeration and resume.
Change-Id: I5061c95855d462879c2f5237ded80131de4d215d
Signed-off-by: Maya Erez <merez@codeaurora.org>
DSI clocks are requested from mdp and dsi for
different use cases. The master clocks(DSI0 clocks)
are refcounted to avoid toggling during slave
clock ON/OFF sequence. Same applies to split controller
clocks if broadcast mode is enabled. Now, mdp client
can remove the dsi client's vote in below case:
- MDP requested clocks in ECG state
- clk_ctrl has removed both votes from ctrl-0
using dsi client handler.
- DSI turns ON clock for ctrl-1
- clk_ctrl turns on clk for ctrl-0 using dsi
client handler.
- clk_ctrl increase the ctrl-1 refcount to 1
- clk_ctrl turns on clk for ctrl-1
- MDP request to turn OFF the clk for ctrl-1
- clk_ctrl turns on clk for ctrl-0 using dsi
client handler
- clk_ctrl increase the ctrl-1 refcount to 2
- clk_ctrl turns off clk for ctrl-1
- clk_ctrl turns off clk(twice) for ctrl-0
using dsi client handler.
This race condition leads to dsi0 clocks off event when
interface is using clocks. This change start tracking
extra vote based on calling client id.
Change-Id: I4812330453dedacd16dad1d920a2bacc3f67042b
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Allow the mitigation clamp current values for the leds to be
configured through the device tree.
CRs-Fixed: 1060212
Change-Id: I23bf67fba7cef2735db436899a9d5b3306e5a77f
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Currently multiple regulator devices can be specified for LED
switch device though a switch device may just require one supply.
Also, before the switch device is enabled, voltage request is
sent to set the maximum voltage. This is not needed with the
regulators like BoB being used as supply for the switch device.
Just enabling the regulator is enough during switch operation.
Modify the way the regulator is obtained and controlled for
switch operation.
Since BoB regulator is configured by the bootloader properly
for flash operation, remove them from the supply list of LED
switch devices on pmicobalt and pm2falcon.
While at it, fix the way device tree properties are read from
flash/torch, switch devices.
CRs-Fixed: 1083246
Change-Id: I8eb5f305f89bc18ad4b735bd89cbf259f0e1ea11
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Add support to query max_current for each switch node through
sysfs. This will be useful to know the maximum current that
the flash switch device can draw at that time.
Change-Id: Ie83e71eafff5c49c81f56f92aa719662814997ed
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Recovery handler is uninitialized during ctl stop process.
A fifo error occur during stop process leads to panic
which is false alarm. These errors do need panic because
controller is going to stop/start and invokes the
panel power off/power on. This patch removes the panic
from the cases where recovery handler is uninitialized.
Change-Id: I422d53d008223a9b0520f499e629f681bb6afa05
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
The number of total glink tx buffers are running out
while exercising audio concurrency usecases. Increase
the max tx count to accommodate additional buffer needs.
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
Change-Id: Iab64336f8efde2778c16156c6bfcf566c4c892d3
Following the introduction of the top-tasks approach towards frequency
guidance, the documentation on frequency guidance needs to be updated.
Update the same with new and accurate information.
Change-Id: If7deee97c09666b7d9513f79c0e278c430acfdfd
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
For performance reasons there are clients who would like to move
from stage 1 bypass to stage 1 enabled without having to stop their
device.
Currently clients need to stop their device because they have to
create the required stage 1 mappings before re-enabling the device.
Add the new DOMAIN_ATTR_EARLY_MAP domain attribute to allow clients
to create stage 1 mappings after attaching but before enabling
stage 1 translations.
If the clients set the DOMAIN_ATTR_EARLY_MAP domain attribute to 1
before attaching then then once they attach the SMMU driver won't
enable stage 1 translations. This gives the client the opportunity to
create the required early mappings (for example using iommu_map).
When the client has finished creating the necessary early mappings
the client can then set the DOMAIN_ATTR_EARLY_MAP domain attribute
to 0, this will in turn enable stage 1 translations.
Change-Id: I9e95c5d2130f1d371e201eac69dec140cc773b1f
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Collect ramdump from MSA memory space when Modem SSR happens.
WLAN FW runs on modem and stores some data on APPS MSA memory
space. In order to collect full data of FW during Modem SSR,
ICNSS platform listens for Modem SSR notification and collects
MSA ramdump.
CRs-Fixed: 1088608
Change-Id: I9c014261f5e25b3ec4585747d324ea2cb6ab18fb
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
Add Audio and QCA slimbus instance entries.
Entries are disabled by default. Need to enable
along with slave instances.
Change-Id: I372e9e38a567e0cf83a226f29510fdf570decd43
Signed-off-by: Dilip Kota <dkota@codeaurora.org>
Add support to provide QGIC MSI for each client
that requests for it when they share the same
root complex.
Change-Id: Ia7e33fae35b3c5083ff5834344c21d6c8288b53d
Signed-off-by: Tony Truong <truong@codeaurora.org>
The new diag client requires additional memory from hlos.
This patch caters to diag memory requirement.
CRs-Fixed: 1079523
Change-Id: Ief14bb96bfdc1998b7b9423755daae8d93964672
Signed-off-by: Manoj Prabhu B <bmanoj@codeaurora.org>
Forcing a certain current limit is not supported in the current
driver, but well needed in when pd is active.
In this change, ICL_OVERRIDE/APSD and USB mode are updated, so
that PD can alter current limit by simply voting the ICL
setting.
Change-Id: I8d3ec938d433fe9bdbb8c091873c07e75c49d632
Signed-off-by: Harry Yang <harryy@codeaurora.org>
WLED in pmicobalt supports AUTO_GM configuration in CTRL_VLOOP_COMP_GM
register. Add two properties to enable auto-gm and set auto-gm threshold.
Meanwhile, move "qcom,loop-ea-gm" property outside of AMOLED constraint
because WLED in LCD mode also support it.
CRs-Fixed: 1081738
Change-Id: Iee99e9d1b999c84ece075d2f17e9cdf6aef9a2ac
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
WLED module in pmicobalt has different VREF_CONTROL settings with current
WLED module which is existing in pmi8994/pmi8952, including min voltage,
max voltage, step size and default voltage. Add support for it.
CRs-Fixed: 1081738
Change-Id: Ibaa555cec8cfd296125af3e6277df5331f5c438b
Signed-off-by: Fenglin Wu <fenglinw@codeaurora.org>
Do not dump PCIe PHY and PARF register space when there is
a linkdown. By the time PCIe receives the linkdown interrupt,
the reset for PCIe PHY has already happened, so these registers
do not have any meaningful value.
Change-Id: I8f66ab9375fd42573a895d5d872a3d2e1782adee
Signed-off-by: Tony Truong <truong@codeaurora.org>
Clients of PCIe determine the size and transfer speed of
incoming IP packets. In order to ensure ordering of all
packets, each client requires different PCIe write halt
sizes. Thus, make this PCIe setting configurable.
Change-Id: I208c8c83a8f5ee8efadf01175f60d70fb4bf48cf
Signed-off-by: Tony Truong <truong@codeaurora.org>
xHC gets powered down when host mode is stopped. xHCI power
management is intended for ACPI based power management which
is defined for PC architecture. Hence there is no need to
clear run/stop bit and save the runtime register states upon
port suspend.
Change-Id: I9d0b31021e7c47084cd92c8c70e17cff3d057655
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Sink may issue attention event faster then it can be processed by
source. Create a list of attention events and process them one by
one in the order on workqueue to avoid missing any attention event
from sink.
Change-Id: I36fd45efe1aa9437d5551002fc75a5f37d9cef79
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
When clients make call to release buffers, driver is calling
buffer requirements to HW. Sometimes this can cause incorrect
state operation which can result buf_req failure. Hence avoid
this call.
CRs-Fixed: 1087935
Change-Id: I12873a92ed0b7157032c25946cce27349f2c2a1f
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
HDCP authentication requires valid keys on the source device.
If keys are not present, authentication can never be successful.
Check if the device is provisioned with hdcp keys, if so, proceed
with the hdcp authentication on HDMI/DisplayPort cable connection
otherwise avoid authentication as it may result in unnecessary
re-authentication loop.
Change-Id: I391ee35fa20cfade89773ecb565b220cc6249b8d
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>