Enable CONFIG_MMC_SDHCI_MSM_ICE flag for encrypting/decrypting
the eMMC data transfers.
Change-Id: Iab391bf51233aff69f5217cf2f1b19cbeed69446
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
SDHC v5.0 onwards, SDHC includes the inline interface for
cryptographic operations which is ICE HCI.
This patch includes the driver changes for supporting crypto
operations with ICE HCI in noncq mode.
Change-Id: I3253b796212f63853cb3f6cf130f0a8542595428
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
On SDHC v5.0 onwards, SDHC includes the inline interface
for cryptographic operations which is ICE HCI.
This patch includes the driver changes for supporting crypto
operations with ICE HCI in cmdq mode.
Change-Id: I618a0a4b7356f2f19c31d67fca1664daa51b09f9
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Add new sdhci host_op for updating ice configuration while sending
request through cmdq. Adding provision for supporting the ice
context configuration for ICE HCI.
Change-Id: I0e7299cfb1064c117aa94fb2416cc5cc4f1ec5f6
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Factor out the logic of getting ice config parameters from
sdhci_msm_ice_cfg().
With ICE2.0, same sdhci_msm_ice_cfg function is being called from cmdq
and noncq. But with ICE3.0 support, cmdq needs a separate host op.
Since this logic of getting ice config is common for noncq and cmdq,
by having it in separate function, same can be reused
in cmdq host op as-well.
Change-Id: If2cf26667acd54cb7ee7bd6283d8f24fcbf60791
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Factor out the logic of updating the SDHC ICE config registers
from sdhci_msm_ice_cfg().
For ICE3.0, different set of SDHC ICE registers are need to be updated.
So having this logic in separate functions, we can have logical
separation for ICE2.0 and ICE3.0.
Change-Id: Ib3d3f9701875000985dc9382bdcdf5fb0e872a43
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Currently, cleanup_irq() is invoked when a peripheral's interrupt
fires and there is no mapping present in the interrupt domain of
spmi interrupt controller.
The cleanup_irq clears the arbiter bit, clears the pmic interrupt
and disables it at the pmic in that order. The last disable in
cleanup_irq races with request_irq() in that it stomps over the
enable issued by request_irq. Fix this by not writing to the pmic
in cleanup_irq. The latched bit will be left set in the pmic,
which will not send us more interrupts even if the enable bit
stays enabled.
When a client wants to request an interrupt, use the activate
callback on the irq_domain to clear latched bit. This ensures
that the latched, if set due to the above changes in cleanup_irq
or when the bootloader leaves it set, gets cleaned up, paving way
for upcoming interrupts to trigger.
With this, there is a possibility of unwanted triggering of
interrupt right after the latched bit is cleared - the interrupt
may be left enabled too. To avoid that, clear the enable first
followed by clearing the latched bit in the activate callback.
Change-Id: If126d6f6cdf6c944ca513c53a71a91e225ee63e2
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
KTM won't apply a frequency mitigation request for an offline cluster.
Instead when the CPU is brought back online, the cpufreq will ask for
new request and KTM will limit the frequency at that time. With the LMH
DCVSh doing the frequency mitigation, the frequency request is not
applied when the CPU comes back online.
For targets with LMH DCVSh frequency mitigation, apply the latest
frequency mitigation request when the CPU comes back online.
Change-Id: If280e4e19fc5dd717aae4f0992d2e2950c057c57
Signed-off-by: Ram Chandrasekar <rkumbako@codeaurora.org>
This enables CCID bridge between CCID Host and CCID
daemon in userspace.
Change-Id: Ie68bf6c98b53d992f43b2a4daa168a8b3caac5b6
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
This allows ccid device to enumerate using usb compostion
driver supporting config file system. Also fix compliation
errors.
Change-Id: I363b8f967781ab162fbd7ded0b397c86cf3d3fc5
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Make sure that `len` is not larger than `count` before copying data
to userspace `buf` in _debug_stats_read().
Change-Id: Iafb7cfa3828653f8c28183c812797c3d9a183da1
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
Some drivers (ath10k) report MCS 9 @ 20MHz, which
technically isn't defined. To get more meaningful value
than 0 out of this however, just extrapolate a bitrate
from ratio of MCS 7 and 9 in channels where it is allowed.
Change-Id: Ia54fce85b570715e705f67bd463c4a219ff71af2
CRs-fixed: 1116687
Signed-off-by: Thomas Pedersen <twp@qca.qualcomm.com>
Cc: Johannes Berg <johannes.berg@intel.com>
Cc: greearb@candelatech.com
Cc: Thomas Pedersen <twp@qca.qualcomm.com>
Patch-mainline: linux-wireless @ 09/10/16, 23:35
Signed-off-by: Peng Xu <pxu@codeaurora.org>
When device controller gets an LPM request from the host during a
control transfer, it is not able to initiate remote wakeup
automatically. As a result it accepts the request, goes to L1 state,
and does not initiate wakeup to exit L1 state. Since host expects
the device to do a remote wakeup from L1 state and the device does
not initiate the wakeup, the host continues to wait and starts
enumeration again because control transfer timeout occurs. Fix this
issue by initiating remote wakeup before queuing the ep0 request
if bus is in L1 suspend state. Also add a counter which gets
incremented upon device sending remote wakeup before queuing ep0
request.
Change-Id: I307ad94d4cb40ce2bd85425f3a1c6316cded52b8
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Add support for CX junction temperature monitor and thermal client
vote to CXIP LM hardware in KTM. When all pre-defined clients on
CX rail including thermal client set their vote, CXIP LM hardware
throttles pre-defined client on the same rail. During boot up,
KTM will set a pre-defined bypass clients bits of CXIP LM hardware
and monitors pre-defined tsens for preset threshold. Once it triggers,
it will vote for CXIP LM and clears vote when preset clear threshold
is reached. KTM enables this feature only if devicetree entry
'qcom,cxip-lm-enable' is configured with a non zero value.
If value is zero, then it disable this hardware feature explicitly.
Change-Id: Ibd95a6657d6bbf62710de2a677cb1ed70c972523
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
During U1 exit, the controller might send LFPS ping at the same
time when the P1 to P0 transition occurs(GUSB3PIPECTL[27] = '0').
The de-assertion of the pipe_TxElecIdle signal during the
pipe_PowerDown signal transition violates the PIPE specification.
Fix this by setting GUSB3PIPECTL[27] = '1' so that there is no
pipe_PowerDown transition during U1 exit. This fix is applicable
for DWC3 revision 3.10 or older.
Change-Id: I7708d42c0f8b67d315be59e9ff9f04ccb74b9b5c
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Modified size and alignment in adsp-region node to allow for
HLOS memory to be used for growing of heap and for loading
shared objects on DSP.
Change-Id: I41e95100d67141e30f02f4e718f66e3b2dfe157b
Acked-by: Ashwini Patil <aapatil@qti.qualcomm.com>
Signed-off-by: Sathish Ambley <sathishambley@codeaurora.org>
In case of device shutdown DMA memory allocation might
fail with GFP_KERNEL flag. This failure might occur
since the calling process received SIGKILL.In order to
avoid that scenario perform the DMA allocation with atomic
flag.
CRs-Fixed: 1116368
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Change-Id: Id4d29d0f4a25f5630911db79c236fb08da752be4
This patch adds the check for dci client entry validity
before being accessed for its structure member.
CRs-Fixed: 1097921
Change-Id: I30307599a86fff5174da1022361294e83ed8b761
Signed-off-by: Manoj Prabhu B <bmanoj@codeaurora.org>
Add support for R63417 DDIC based truly 1080p video and
command mode panel on sdm660.
Change-Id: I4435dadcfa1164bace99fdd603020cdea5809030
Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
WCN3990 target uses different bit filed for ce
gather support.
Populate valid src descriptor buffers and gather
flag for WCN3990 target.
CRs-Fixed: 1115328
Change-Id: Ia7e73bd3009823357bb7df06eddb4903efb47286
Signed-off-by: Govind Singh <govinds@codeaurora.org>
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
Up-streamed driver uses NAPI in rx data path. Add napi
implementation in snoc layer.
CRs-Fixed: 1112504
Change-Id: I33d3405ee99233af474f8bc236c43898086f044c
Signed-off-by: Govind Singh <govinds@codeaurora.org>
OSM cpu clock node is required by cpufreq client to be able to
scale cpu frequency. Add table of supported frequnecies and
keep the status of the clock node disabled for now.
Change-Id: If23bc0eb6f86f3761cf9140059e59d3b430dd4e7
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
Add WCN3990 wlan module startup, power up and power down
sequence. Register interrupt handler and tasklet for each
copy engine interrupt line.
Add WCN3990 bus layer private API to configure and flush
the Tx/Rx copy engine pipe.
CRs-Fixed: 1112504
Change-Id: I9f0e2f080c8c92d0db5df465d3e79de058451b28
Signed-off-by: Govind Singh <govinds@codeaurora.org>
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
RF clock of wcn3990 follows SW_CTRL pin. Enable this configuration for
lower power with BT/FM use cases.
CRs-Fixed: 2000919
Change-Id: I547d27a1d22824fa39578b65fdfffa6ce52c00cf
Signed-off-by: Rupesh Tatiya <rtatiya@codeaurora.org>
As WSA881x registers fails to read sometimes on
sdm660 internal codec, use cache-always mode
to avoid speaker mute.
CRs-Fixed: 1117406
Change-Id: Idaa2b4f7e53ea8f333eca3c0dc5b8f415266efd7
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
As WSA881x registers fails to read sometimes on
sdm660 internal codec, use cache-always mode
to avoid speaker mute.
CRs-Fixed: 1117406
Change-Id: I9742af37c3e64efb46fc9b3cef616f685b7f01a8
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
On SDM660 internal codec variant, update sequences of
MSM based soundwire codec. Skip the registration of
soundwire master IRQ handler as it is causing
continuous suspend/resume of soundwire controller.
Change-Id: Ic33b50aedca5b82e514518eb4bf6ce99cdc722b6
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
A512 GPU has multiple frequency plan, for loading a
specific frequency plan add speed bin read capability
for A512 GPU.
Change-Id: Iff207c31bc50748a6caaa405608252b78133fd83
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
WDSP is connected to SPI7 in sdm660. So change
SPI master to 7.
CRs-Fixed: 2000921
Change-Id: I07eeef3e0753d38dbb33e4a343122b2948d36d38
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
Add kernel configuration flag to enable/disable
the SNOC bus interface for SNOC WLAN module.
Update the ath10k Makefile to add rules to compile
the WCN3990 SNOC WLAN module driver.
CRs-Fixed: 2000391
Change-Id: I28e6fcd8a0a8b15c8bca0afab33b051748f82d52
Signed-off-by: Govind Singh <govinds@codeaurora.org>
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
There is no need for this property. Remove it.
Change-Id: I656eb51f8b9690d0c1046d1c82d2575fae270a40
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Currently the parallel charging code is tightly coupled in the main charger
files. Update the design to separate parallel charging code. This
parallel charging code will implement few votables and interacts with
the main and parallel charger.
A brief discussion on important changes
Usb main psy
The new design introduces a charger type called USB-Main which exposes all
the properties required to implement parallel charging for the main
charger. These properties are implemented/supported
- CONSTANT_CHARGE_CURRENT_MAX, sets and gets the FCC of the main charger
- ICL_REDUCTION, indicates by how much the main charger should reduce
its ICL. The parallel charger would draw some portion of the ICL and
this implementation ensures that the main charger reduce its ICL in
order to not exceed the adapter limits.
- VOLTAGE_MAX, sets the float voltage of the battery, we continue to
raise float voltage for the parallel charger so that it operates as
current source.
- INPUT_CURRENT_SETTLED: indicates the AICL results.
- FCC_DELTA: indicates the value by which the main is correcting the
FCC. The main reduces FCC by few mA when in Jeita or Step
charging. This helps in determining the exact FCC which in turn
helps distribute it correctly.
Slave percent
The new file implements the sysfs entry for slave percent. When
thermal balancer updates it, it ends up calling fcc distribution
and also the icl distribution. Note that the icl distribution too
is dependent on the slave's fcc percent - in that it gives 10
percent point more to the main charger.
ICL
ICL needs to be distributed only in USBIN_USBIN configuration.
As noted above the ICL distribution is based on fcc distribution
aka slave_percent. The main charger is given 10% more ICL since it
caters to system load in addition to charging the battery. This is
similar to our traditional USBIN USBIN implementation where FCC was
distributed 50/50 while ICL was distributed 60/40 percent - the main
got 10% more of the ICL value.
Note that the ICL distribution is invoked when AICL settled current
changes, not when the ICL itself changes. The new code tracks the
aicl settled value and invokes the icl distribution when it changes.
It first requests the main charger to reduce its icl and then updates
the parallel's icl.
FCC Votable
The FCC votable is moved to the new file and is similar to its previous
implementation - It distributes FCC when ever the FCC value changes, the
slave_pct changes or parallel charger is enabled or disabled. If the main
charger is further modifying the FCC from what its registers were
configured, this FCC callback takes that in to account via the
FCC_DELTA property prior to distribution.
FV Votable
Like the FCC votable the FV votable is moved to the new file.
The code is similar as it was implemented in the main file where
it distributes FV when ever the FV value changes.
TAPER entry
The code that stepwise reduces slave's ICL as it enters taper mode
is moved to this file. So that it can correctly do this, the
charge type is tracked in its internal structure.
PL_DISABLE Votable
The PL_DISABLE too is moved to a new file. There are few implementation
changes here.
- Earlier the code used to run the same sequence while enabling and
disabling. This could create a situation where FCC/ICL is incorrectly
configured for a brief period. That has been corrected, in that
the enable configures in this order configures fv, distributes fcc,
enables parallel, distributes aicl. The disable does that in reverse
order of enable.
- Charger's presence would vote on enabling/disabling parallel charger.
This is no more required. Instead a vote from CHG_STATE_VOTER suffices
for when fast charging begins. The voters that enable/disable parallel
when typec is present or is in sink mode or when uUSB cable is
inserted are removed.
CHG_STATE_VOTER and TAPER_END_VOTER
A typical charge cycle enters fast charging, moves to taper charging and
finally goes to end of charging. Parallel charging needs to be
enabled while fast charging starts and needs to be kept enabled during
the portion of taper charging when parallel's FCC is above 500mA threshold.
Note that if charging starts from taper, we only want to run it so long
as the parallel's FCC stays higher than 500mA threshold.
CHG_STATE_VOTER votes to enable parallel charging when fast charging
or parallel charging is in progress. When charging stops (i.e. when its not
in fast or taper charging) CHG_STATE_VOTER votes to disable parallel
charging.
Also the TAPER_END_VOTER votes to disable parallel charging when
parallel's FCC share falls below 500mA. It continues to vote disable on
parallel charging until charging stops. At that point it votes to
enable parallel charging.
Between these two voters, parallel charger
- enables when fast charging starts and remains enabled as it
transitions to taper charge.
- is disabled once parallel's FCC falls below 500mA threshold and
remains disabled in taper charge until charging stops.
This makes it important that the battery psy provide correct psy
changes when it enters/exit FAST or TAPER type. The PMI chip and its
battery_psy implementation already guarantees that.
PL_TAPER_EARLY_BAD_VOTER
During some runs we see that parallel operates in taper mode. Given that
we sets its FV higher than main's FV, the parallel should never operate
in taper mode. This voter disables parallel charging if this happens.
This voter enables parallel charging when the main charger stops
charging.
Change-Id: If1676cd126d7eeace7c44cf8d819038d03433d7e
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
A512 GPU's quirk two-pass-wfi is fixed in HW and no need to
enable from SW.
Change-Id: I3aa4d4d9a8f9be778e217b730c557b2b3a40345c
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
VBIF QOS of SDM660 and MSM8998 are incorrect,
so fix the entires in respective nodes of camera.
CRs-Fixed: 1115727
Change-Id: I9246c180a5386bf5d6f92b5b49e23a7dd28e8188
Signed-off-by: Krupal Divvela <kdivvela@codeaurora.org>
Allow process on application processor to be associated with a
process on DSP that has been spawned on bootup. This allows for
further RPC calls to be associated with the static process.
Change-Id: Id4b9f01ef47290bc885210bbf4da1796476ba85f
Acked-by: Ashwini Patil <aapatil@qti.qualcomm.com>
Signed-off-by: Sathish Ambley <sathishambley@codeaurora.org>