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>
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>
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>
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>
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>
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>
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>
IPA-driver should request for
aggre2_noc_clk via bus driver.
Change-Id: I2f44b44a27ae93c6dd46cc6829d68ea1117ba237
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Wlan need to pass the VA to let the IPA-driver
decide when to suspend the WDI pipe in SMMU
enabled scenario.
Change-Id: I00ae7f088c7411c8a6420f5e7ab12276d65fd269
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Using first fit algorithm to select the remote rx intent from the
list is not optimal way.
Optimize the selection of intent from list using the best fit algorithm.
CRs-Fixed: 1058750
Change-Id: I7b2a70188975b75a0fbcd2a6cb26f28cc0258532
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
Add support for getting additional mappings
from dtsi in order to create a mapping on
IPA wlan SMMU context bank.
Change-Id: I92922e494c745ea4c6bf4f473515dea4eccbd62e
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Add diag over glink support to communicate to WDSP.
Change-Id: I60cce19bd82030990a1267b81ed28c25ac8601ec
Signed-off-by: Sreelakshmi Gownipalli <sgownipa@codeaurora.org>
IPA-driver should request for aggre2_noc_clk
via bus driver, add entry in dtsi.
Change-Id: I98726deff99b373344fe75f8bdcb11fcad83e621
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
The lineptr interrupt is expected to be triggered and have the
ability to be updated instantly whenever the panel is fetching
data. Previously, enabling lineptr was tied to kickoff and disabling
to pp_done work. Add capability to change the lineptr value instantly,
when auto-refresh is enabled and avoid disabling lineptr during that time.
Once enabled, lineptr can only be disabled when 0 is written to the node
while auto-refresh is enabled.
Change-Id: I9a1a478c857efd988984a0efb0a2b6475030c7ec
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
IPA might have Information leak and device crash due to
kernel heap overread in IPA driver when processing
WAN_IOC_ADD_FLT_RULE_INDEX ioctl. The fix is to add
check on max number of filter rules send to modem.
Change-Id: I454e04d05cfcb7af8fc4bd2b4a1bade55c4684d0
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
qseecom_send_modfd_cmd converts ION buffer's virtual address to
scatter gather(SG) list and then sends them to TA by populating
SG list into message buffer. As the physical memory address in
SG list is used directly by TA, this allows a malicious TA to
access/corrupt arbitrary physical memory and may lead to the
process gaining kernel/root privileges. Thus, make changes to
have the QSEEComm driver passing a list of whitelist buffers
that is allowed to be mapped by TA, and the QSEE kernel, in turn,
should add checks to the register_shared_buffer syscall to make
sure the shared buffers an application is mapping falls within
one of these whitelist buffers.
CRs-fixed: 1021945
Change-Id: I776ead0030cad167afcf41ab985db7151a42d126
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
Adjust phy-qcom-ufs-qmp-v3 settings based on post silicon validation.
Change-Id: Ide0ca4714679bb576a8069bdd7720507074ccc47
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
'commit 5b42bd749e8c ("usb: gadget: gsi: Optimize TRB's buffer allocation
functionality")' removed handling of EVT_HOST_READY event with state
STATE_INITIALIZED to optimized USB GSI state machine. This handling is
required for specifically when RNDIS interface is being enabled through
device manager, otherwise RNDIS interface doesn't get private IP address
back. Fix this issue by adding back handling of EVT_HOST_READY event with
state STATE_INITIALIZED.
CRs-Fixed: 1050838
Change-Id: I7010005b37b4709f54de58d52a56cb7f5e88bd08
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
header change for CNE to pass gateway
info to IPA
Change-Id: I0f0a84a12c3ba514f7309b16c73f5b8ed631626d
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Fix a static analysis issue at IPA driver,
IPA unit-tests I/S. Do not dereference a pointer even
if it can potentially be NULL.
CRs-Fixed: 1055710
Change-Id: Ie7eff49f136fe429ef10c6067ce7d8aae2694d3a
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
Focaltech's CTP FT6436 is able to behave like a proximity sensor.
Enable the driver support this new feature.
Also cleared the chekpatch warning on 3.18 kernel.
Change-Id: I7a6ec3a387536c512637b0bd8dab95e7cceca212
Signed-off-by: Mao Li <maol@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
Signed-off-by: Abinaya P <abinayap@codeaurora.org>
Update the Display-Port PHY and PLL configuration
with the recommended settings. Remove the
support for 9.72Ghz VCO frequency. Update the divider
settings to support the new frequency plan.
Update the Phy Aux settings and voltage/pre-emphasis
settings according to recommended configuration.
Change-Id: Ic4d206da3dc6b45214e7601e7556cfb0bef81a7d
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
Add compatibility checks for the new LM configs sent by dest
scalar with the DSC slice width/height during validation. Without
this check, the DSC config check would fail at a later point during
ctl start.
Change-Id: I55e483be5629cfe26cca3b740d206845a1caa903
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
msmcobalt has a different command mode MISR CRC register offset. Correct
the offset for the MISR control and signature registers, and correct the
block_id by lookup the INTF number from CTL.
CRs-Fixed: 1049910
Change-Id: If4fb44d217ed84067a0732334523ddb1e435e4e7
Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
With the SMMU attached, need to provide
netdev name when calling dma_map_single
instead of passing NULL to prevent DMA
allocation errors.
Change-Id: Ic126739d20ff6cd148b2f424746555419fcfca70
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
GFX retention mode does not save GFX rail power. The feature
increased MX rail power. Fixing the problem requires more overhead
than removing it. The feature has never been enabled in any targets.
So remove the feature.
CRs-Fixed: 1053516
Change-Id: I5f118138eca307f7cc16405ff9c8897ecd510c12
Signed-off-by: George Shen <sqiao@codeaurora.org>
Add DCVS plan to support new GPU frequencies and voltage corners
on msmcobalt v2.
CRs-Fixed: 1056661
Change-Id: Ie0bde4d908189da86077b69be52c51f2a35596a8
Signed-off-by: George Shen <sqiao@codeaurora.org>
Add separate voter clocks for controlling the mmss_camss_jpeg0_clk
from two clients on MSMCOBALT.
CRs-Fixed: 1049594
Change-Id: I530e35054fd512574bca9e5937317099f58d2bb6
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Adapt IPA driver code where it has different handling
according to IPA H/W version, to support IPAv3.5 and
IPAv3.5.1 H/W versions.
Change-Id: I2e5bd023d643d2fbba32f226c5eb85c39b620f3b
CRs-fixed: 1055677
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
Add support for USB atomic notifier callbacks when host controller
drivers reports death of controller on some fatal error.
Current implementation doesn't help to recover from this condition.
Controller platform drivers can register for this callback and take
necessary steps to reset and add hcd again.
CRs-fixed: 1048766
Change-Id: Ie9064e669424096fee8c35cddccab29faf60cc6b
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Add null pointer exception check for pointers which
may be NULL after memory allocation failure and may
be deferenced.
This patch is propagated from msm-3.18 kernel.
'commit 5c6aa1bb97a3 ("input: ft5x06_ts: add NULL
pointer check")'
Change-Id: Ied34d548bff27f8f6da9f4c81896e4505cdce218
Signed-off-by: Sarada Prasanna Garnayak <c_sgarna@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
If Hibern8 enter/exit fails and we also see some UIC errors at the same
time, we would see following 2 recovery paths running in parallel to
restore the host and device communication.
Context-1: ufshcd_uic_hibern8_exit() -> ufshcd_link_recovery() ->
ufshcd_reset_and_restore()
Context-2: ufshcd_err_handler()->ufshcd_reset_and_restore()
This change fixes this race by making the ufshcd_link_recovery() to wait
for the already scheduled ufshcd_err_handler() to finish running and then
schedule the error handler again to make sure that host-device link is
reestablished.
While we are fixing the above race, similar race could happen between
ufshcd_eh_host_reset_handler() and ufshcd_err_handler() hence fix the
error handling in ufshcd_eh_host_reset_handler() same way as fixed in
ufshcd_link_recovery().
CRs-fixed: 1037647
Change-Id: Ic7a17a907e70122968c324e3cbe6e0421c28a2c9
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
When device switch to suspend state the gpio and pinctrl need to be
configured properly to prevent the touch controller current leakage in
device suspend state. The pinctrl must be configure first before
the gpio configuration. Select the pinctrl sleep state and after that
in gpio configuration part free both IRQ and reset gpio, and also set
direction of reset gpio to be input. If the gpio and pinctrl is not in
proper state the touch controller will not switch to the deep sleep state
and it will start consume current during the device suspend state.
To prevent this leakage current issue, pinctrl and gpio must be
configured properly.
This patch is propagated from msm-3.18 kernel.
'commit 494eae39f2a4 ("input: ft5x06_ts: pinctrl and gpio config in
suspend/resume path")'
Also cleared checkpatch errors on msm-3.18 kernel.
Change-Id: I0ec72bbbf12320ad22608522d1250614c6686fe3
Signed-off-by: Sarada Prasanna Garnayak <c_sgarna@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
devm_pinctrl_get() does not release the ownership of mux function
of pins in the associated pin-group whenever a failure occurs in
driver probe routine. i.e struct pin_desc's mux_owner field is
still marked as being in use after a failure occurs in probe.
As a result of this, if another driver tries to acquire the
ownership of same pin, it gets an error while applying that
setting. To fix this, explicitly release the mux function
ownership of the the pin, by adding a new pin-group in pinctrl
DT and a new pinctrl state in touch device's DT node. This new
pin-group does not have a function setting (qcom,pin-func property).
This new state is explicitly activated during a probe failure
and driver remove routine to release the mux function ownership.
The patch also reorganizes the pinctrl related code in driver.
This patch is propagated from msm-3.18 kernel.
'commit f09a0560dde9 ("input: focaltech: release pinctrl resources
on probe failure")'
Change-Id: I16a97fefc64dd171deb800b481aa74a797c9ad55
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Focaltech touch controller does not go to sleep in suspend because
the pinctrl operation inadvertently resets the touch controller.
Remove the pinctrl operation in suspend and resume callback to
prevent this spurious reset.
This patch is propagated from msm-3.18 kernel.
'commit 7e2ea02b16de ("input: ft5x06_ts: fix the Focaltech CTP
current leakage issue")'
CRs-Fixed: 1046961
Change-Id: Ifa02c0287195d7ce55fb2d8ac49ec1c8ae5baec9
Signed-off-by: Mao Li <maol@codeaurora.org>
Migrate the Focaltech driver to use pinctrl framework for GPIO
configuration so that driver is compatible with targets that
use and targets that don't use pinctrl framework.
This patch is propagated from 3.18 kernel
'commit 266d1fe0f630 ("input: ft5x06_ts: add support for
pinctrl framework")'
Change-Id: I84fc2a6d30f831b4b054780b107ce105614855ea
Signed-off-by: Mao Li <maol@codeaurora.org>
Upgrade the firmware only if same vendor id is found both in existing
fw and new fw to be upgraded.
This patch is propagated from 3.18 kernel
'commit dba19fc86781 ("input: ft5x06_ts: check vendor id before
upgrade FT firmware")'
Change-Id: Idfc50da45891a1475ac6b35d80c7d725607cbf81
Signed-off-by: Mao Li <maol@codeaurora.org>
upgarde firmware on the touch controller when the new firmware
version is geater than the current firmware version. Update the
firmware version id after successful firmware update. skip
firmware update when device is in suspend state.
This patch is propagated from msm-3.18 kernel
'commit 8399308e570e ("input: touchscreen: change the focaltech
firmware upgrade method")'
CRs-Fixed: 1046961
Change-Id: Ic462f6483887a3654665852e58ae9891de9f5eff
Signed-off-by: Sarada Prasanna Garnayak <c_sgarna@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
The firmware image format is changed in CTP FT6436. Also vendor
id and version id are read from fw image from a different offset
as compared to previous controllers. The driver is updated to
support the new image format.
This patch is propagated from msm-3.18 kernel
'commit 6146c68f81b4 ("input: ft5x06_ts: add support for firmware
update for CTP FT6X36")'
Change-Id: I465fdfa73e56e8fc4bbfdde980c558e4715d6d08
Signed-off-by: Mao Li <maol@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
This patch removes the usage of deprecated apis like
usleep(), __devexit_p, etc.
This is a propagated patch from 3.18 kernel
'commit 20482b216b8a ("input: ft5x06_ts: remove
deprecated apis in 3.18 kernel")'
Change-Id: I77cedabdb234a643f96427f051038faad31bfdcf
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
When CONFIG_PM is not defined, there are some compilation errors,
because it introduces undeclared touch suspend and resume function.
This patch is propagated from 3.18 kernel
'commit a144428c6e02 ("input: ft5x06: add support when CONFIG_PM
is not defined")'
Change-Id: I869bd41270ea240c671e5478126a61d4ff2088dc
Signed-off-by: Chun Zhang <chunz@codeaurora.org>
Threaded IRQs without primary handler need to be requested with
IRQF_ONESHOT, otherwise the request will fail. This patch adds the
IRQF_ONESHOT to the focaltech touchscreen driver where it is
missing.
This patch is propagated from 3.18 kernel
'commit 4e8b58e99bf7 ("input: touchscreen: request threaded-only
IRQs with IRQF_ONESHOT")'
Change-Id: I429f48126bd5d28c6dbf6ba846175d5e643dd436
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>