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>