wear_leveling_worker() currently unconditionally puts a PEB on erase in
the error case even it just been taken from the free_list and never
used.
In case the PEB was never used it can be put back on the free list
saving a precious erase cycle.
v1…v2:
- to_leb_clean -> dst_leb_clean
- use the nested option for ensure_wear_leveling()
- do_sync_erase() can't go -ENOMEM so we can just go into
RO-mode now.
CRs-Fixed: 975289
Change-Id: I9955366673af13e6cfd3da3523dba4857b2b4ea2
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
Git-commit: 34b89df90374b631692132640c6b3dbef52f808d
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
Add a comment in key.h to explain why we keep an unused
parameter in key helpers.
CRs-Fixed: 975289
Change-Id: I88633f34f7f49b5b895f2295c1ce4ad250900fc0
Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Git-commit: 170eb55f7d4ba9564736ba298a7d4985422db4cc
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
Add 32/48KHz sample rate capability to the VoIP driver to
allow VoIP application which uses 32KHz/48KHz sample
rate to take Voice path.
Change-Id: I654b97ffc36b993114899e85706914d99ef44abc
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
Add capabilities to GSI driver to collect data path statistics
in order to help debugging throughput issues.
This change also exposes the a debugfs interface to print stats.
CRs-Fixed: 975119
Change-Id: If97512af034bd419cf4f679b1c19419605529fa6
Acked by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Compress offload playback failures observed if SSR is triggered
during playback. Compress_write is blocked as there are no bytes
consumed by the DSP. During SSR, based on the reset events,
driver has to update the bytes copied by the DSP so that write
gets unblocked.
CRs-Fixed: 966659
Change-Id: I24d5bf09b3453f101adb9487298e6fbdfeb15e4a
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
The current code enables GPU clock gating only for v2 and v3.
Enable it for MSM8996pro also.
CRs-Fixed: 974760
Change-Id: I2bcdbf73be080fba836c24616fc7959ad7c4c1e9
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
Add slimbus 6 playback hostless and slimbus_6_rx back-end
dai-link to enable independent backend for different devices
during audio playback.
Change-Id: Ibc12ca8ad2c99316c52092b74462ecd7bfbded5c
CRs-fixed: 940415
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Add codec rx4 dai to support independent backend for different
devices.
CRs-fixed: 940415
Change-Id: I48b24d81e2047d4d4c299ca60cdbd299e172393e
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Update the slimbus RX 6 routing and add the slimbus RX6 hostless
to support more use cases.
CRs-fixed: 940415
Change-Id: I4fcea97cc4a0c876609fbaa8f5eecf3b4914e776
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Add slimbus_6_rx back-end dai-link for msm8996 to enable
independent backend for different devices during audio playback.
CRs-fixed: 940415
Change-Id: Id588c1951262d2c76d3b7789c76ca04068b7ffff
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Update PCM device node from ULLPP mode to low latency mode which has
matrix to match to different backend ports.
Change-Id: I71e3bde88b8a14b6975b51d4c739e5993162313d
CRs-fixed: 940415
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Enable content protection for A506 from gpulist.
Also, skip scm call to program CP secure ucode base
registers since A506 supports retention for these
registers.
Change-Id: I48a0f04826430bfb927c755c176255be45199b26
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
Open ack is received in separate work queue than process_open_event.
It causes race condition since process_open_event and process_status_event
might get scheduled before glink is notified about open ack.
Glink will be notified about ack in process_open_event.
CRs-Fixed: 974508
Change-Id: Ie03a4914c2655ae5140a740cde73b06bb6d43291
Signed-off-by: Dhoat Harpal <hdhoat@codeaurora.org>
Check if 'mbhc_cb' is NULL in wcd_mbhc_stop() before
dereferrencing.
CRs-Fixed: 972101
Change-Id: I3b2348bddb071e5bf7bc2e5d6885bb3c1ba2c195
Signed-off-by: Karthik Reddy Katta <a_katta@codeaurora.org>
We need to pass TZ specific device id when
calling into TZ for SMMU configuration. Expose
these device ids and an interface function which
can be used to extract these device id.
CRs-Fixed: 959535
Change-Id: I31239d187c893e1bf419a5e9b5add127699ef701
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
The RPM channel is now available for msmcobalt. Remove the rpm-standalone
flag to enable communication with the RPM.
CRs-Fixed: 973067
Change-Id: I4215633d2608cd2ac0a588ddf476accd47abfdff
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Communication with the RPM has not yet been verified on RUMI. Configure
RPM in standalone mode until it has been verfied.
CRs-Fixed: 973067
Change-Id: If82537272cfb14509420928a8985bcb71761b24f
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
LDOs 5 and 7 are missing from msm-pmcobalt-rpm-regulator.dtsi. Add them.
Update the min and max voltages for LDOs 18 and 22 to reflect the
changes in the most recent documentation.
CRs-Fixed: 973067
Change-Id: I57d11af8e63a2a40dcbfa6aae34ee04b286780bc
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
Add CPU IDs to the socinfo table needed to support MSM8996AU.
CRs-fixed: 971957
Change-Id: Ifaed6df0a99999566e6241fbf98f45ab92f8c0fe
Signed-off-by: Ajit Khare <ajitk@codeaurora.org>
Signed-off-by: Mathew Joseph Karimpanal <mkarim@codeaurora.org>
Add ETM devices for APSS CPUs. These devices can be used to configure
and enable processor traces.
Change-Id: I7d0ade28161eb77992eb19b19233261895afa169
Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
Defining the context banks and the appropriate VBIF settings allows
Venus to make DDR accesses.
Change-Id: I5f2052a28f19545b080c863c425dac45f7511643
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Add device tree files that are needed to support MSM8996 Automotive CDP
platform.
CRs-fixed: 971957
Change-Id: Ifbef60c283d1b51274ac41c6eb00fc9e186986d1
Signed-off-by: Ajit Khare <ajitk@codeaurora.org>
Signed-off-by: Mathew Joseph Karimpanal <mkarim@codeaurora.org>
Preemption from secure to unsecure needs zap shader to be run
to clear all secure content. CP does not know during preemption
if it is switching between secure and unsecure contexts so
restrict secure contexts to be preempted at ringbuffer level.
At the end of each secure submission we switch back to unsecure
mode and run the zap shader to clear secure contents. Ringbuffer
level preemption ensures Zap shader is run before switching
back to unsecure mode.
CRs-Fixed: 974102
Change-Id: Iff11c1d5732d46fe5a1fbdbc7d162aaa1736741b
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
Program the DROOP_CODE register for both clusters so that
the limits management clock is gated off during certain
sleep states.
CRs-Fixed: 973567
Change-Id: If4860d329393ece54a4d0f017c2700d4bde9d2b6
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Speed bin information is sometimes written to efuses to
specify a GPU frequency plan available on a platform. The
current code only supports reading the efuses for msm8996v3.
Hence specify it in the platform device tree node to
support multiple platforms.
CRs-Fixed: 967494
Change-Id: I5db4d5a35e2700250517ea6cac3d4d736936ce9f
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>
The dsc config-select parameter in sharp dsc 4k video mode panel
wrongly points to a different config structure. Fix it to
use the correct structure.
CRs-fixed: 973663
Change-Id: I5b3d07e4c7c3c3f0465db6ab4a2ca64d17a1e642
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Invert the bit clock for afe tdm ports for msm8996 to
align the lpass and ext codec hw clock and avoid
bit corruption.
Change-Id: Ic36ab733b227a34ebb8401dd11e99f943b0c8839
Signed-off-by: Derek Chen <chenche@codeaurora.org>
CRs-fixed: 973480
This change set default value for uninitialized variables,
to address errors related to them.
Change-Id: Idd306cafa4dfca322945ea8398e0c4d6c18d6ff6
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
Adding default case to handle other events which might be triggered from
modem and adsp schdule free_resource work item when already it has been
freed.
Change-Id: Ibe6a8eae31d70e80fada3a1fc18f8f2bee42dbda
Signed-off-by: Avaneesh Kumar Dwivedi <akdwived@codeaurora.org>
Fix the wraparound logic when searching for ibs in the ringbuffer.
The ibs can either be type3 or type7 packets so handle both cases.
CRs-Fixed: 971163
Change-Id: I9bc4b4a72cddfe7f3d3892612c6e28861fdd0324
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
APR driver was using SMD as the underlying transport layer. In order
to provide a unified IPC solution, G-link is introduced as the replacement
which APR adapts as the new transport layer for audio packet routing.
Change-Id: I60d96e39ce665b808498d1130e371df8288e370a
Signed-off-by: Helen Zeng <xiaoyunz@codeaurora.org>
Signed-off-by: Deven Patel <cdevenp@codeaurora.org>
In speaker protection usecase, if SWR_CH is already
set to 2 due to bootup tone playback then the initial
calibration fails. As the WSA register writes will
fail due to gr_sid will not match with dev_num
and temperature read will return negative value.
To address this, when session teardown reset the
soundwire master channel count in tasha driver.
CRs-Fixed: 961023
Change-Id: I80ee0dedac8fa81ce54a0e61c839a97b9b45d36b
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Enable direct programming of GPU-BIMC interface clocks
from kernel driver when moving in and out of TURBO.
This is done only for targets with a device tree
entry defined for GPU-BIMC interface.
This is done because some targets do not support
B/W requirement of GPU at TURBO, for such targets
we need to program the GPU-BIMC interface clocks
with TURBO values to meet the B/W goals.
Change-Id: Ibe82db8718040513ae0d96366195d41001549189
Signed-off-by: Sunil Khatri <sunilkh@codeaurora.org>
Introduce new Kconfig for purpose of enabling LPASS
audio driver debugging utilities. Initial utility is
to induce kernel panic upon encountering error from
audio components in ADSP.
CRs-fixed: 968775
Change-Id: I9f802f32892d55be83d4b8a6e861ab09f6336093
Signed-off-by: Patrick Lai <plai@codeaurora.org>
no-map-fixup feature for dma-removed reserve region does a
late memblock remove. This late removal is a slight
deviation from conventional memblock flow. That leads to a
race between pfn_valid->memblock_search, and
memblock_remove.
To fix this, use a read seqlock in memblock_search, which
would ensure minimum overhead in search path. And export
two APIs to let code doing late memblock remove apply
write seqlock. write seqlock would ensure that search
retries if the list is updated concurrently.
The two exported APIs which should be called before
and after modifying memblock regions, late in boot, are
- memblock_region_resize_late_begin
- memblock_region_resize_late_end
The code to alter memblock regions should be guarded by
these APIs.
CRs-fixed: 967728
Change-Id: I6a10c3e980002048aafeaf829a16119848c6a099
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
Set the group id to default when number of channels are less
than or equal to one. This change will configure the group
id correctly during device switch scenarios.
CRs-Fixed: 961023
Change-Id: I2cb4447b36fef111ed1f9b8991b3882b8d57f6a7
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Do session/stream node destroy with lock before
reducing opn_idx to avoid conflicts while closing
node and mutex getting destroyed while other node
still holds it, Also trigger the stream delete to
backend for nodes which are only created by HAL.
CRs-Fixed: 971839
Change-Id: Iefc1132e5790d8f7ba025ee140e536a2b3ca21c0
Signed-off-by: Hariram Purushothaman <hariramp@codeaurora.org>
Return early if the branch clock does not need the rate
aggregation support. Only take the common branch_clk_lock
when needed; doing so unnecessarily will lead to lock
contention in some cases.
CRs-Fixed: 972426
Change-Id: I00476d1c193df025a1da19aa0d0ddf0f0462b4d0
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Correct the settings to switch to always-on clock source
during certain LPM mode exit paths on msm8996 Pro.
CRs-Fixed: 972298
Change-Id: Ice256b453fad07bc80be79d9c15d10545c90fb20
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Add a new cmdbatch profiling flag that populates the seconds
and nanosecond fields of the cmdbatch structure with the time
since boot instead of the wall time.
CRs-Fixed: 968114
Change-Id: I4e752d5237a74192b3ea9cc125c11bae574c1b36
Signed-off-by: Jonathan Wicks <jwicks@codeaurora.org>
Update hx8394f's initialization sequence, which modifies
its gamma value to standard 2.2. We need tuning panel gamma
to 2.2 as per display standard, this is panel specific
optimization that comes from vendor.
Change-Id: I1c032b39cff20c8f7741a8da0e9a2f3aeb1520dd
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
This patch adds support for SSM driver which is
a framework to which a client can register itself specifying
different attributes and defining various permission levels associated
with different combination of attribute values and mode of the system.
CRs-Fixed: 970190
Change-Id: Ia030ebad56a22ba9103af17f6557c7906b762b76
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
Signed-off-by: Manoj Prabhu B <bmanoj@codeaurora.org>
Add msm8909 architecture flag to enable support to qualcomm
crypto engine drivers on qce5.0 device.
Change-Id: Ia5cdd033abf3068e91d1240396ce17dc65b9f9c4
Signed-off-by: Brahmaji K <bkomma@codeaurora.org>
Enable OVP irq properly in WLED driver only when WLED state
is changed to ON and ovp_irq support is enabled.
Plus, disable the ovp_irq before dis/enabling the WLED
module by writing to QPNP_WLED_INT_EN_CLR WLED register.
CRs-fixed: 969344
Change-Id: I75fa040c6e6f0e6ee40ec3e931c654f2c27ffcaf
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Change L2 GDHS flag passing to TZ to trigger L2 gdhs mode
on non-psci targets.
Change-Id: I0d4fed45fa8afa6c9a73661b9169c29644169ba4
Signed-off-by: Srinivas Rao L <lsrao@codeaurora.org>
When DMA I/O is performed to or from high memory, an area is allocated
in low memory known as a bounce buffer. When data travels between a
device and high memory, it is first copied through the bounce buffer.
Systems with a large amount of high memory and intense I/O activity
can create a large number of bounce buffers that can cause memory
shortage problems.
In general, when communicating to SPI framework,it's recommended to
use gfp_dma,since the buffer mm client passes is used by the spi
driver for dma ops.
CRs-Fixed: 967770
Change-Id: Idd7e0229d1a128516298ee18bf2c798e6218c71b
Signed-off-by: Azam Sadiq Pasha Kapatrala Syed <akapatra@codeaurora.org>
While parsing the device tree node, perform a null check
along with the error check by substituting IS_ERR with
IS_ERR_OR_NULL on the parser pointer.
CRs-Fixed: 971705
Change-Id: Id91981be0cdc135099b8e3d9866549268ab237a3
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
The splash screen for HDMI as primary utilizes a piece of memory
to hold and subsequently display the splash logo while in the
bootloader. We need to reserve the same splash memory buffer
in order to support continuous splash screen on msm8996 target,
when the device is booting into the kernel. This memory is
cleaned up later once display driver hand-off is completed
and the framework has booted up.
Change-Id: I59a5dcf05ef0effcf31cb03979c4464394d68896
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>