Previously the dma fifo read watermark was set to default value
which is 1/2 full. The full FIFO size is 512B, and this means the
read would be blocked for the first 256B and as soon as it is
consumed, it might expect the next 256B immediately. This may
result in underflow if sufficient data is not produced. To avoid
such cases, set read watermark to 15/16, so it is blocked until
full FIFO size data is generated.
Change-Id: I39bd10ccb7db3c4fe37ea609babdd6305fc19a7d
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Previously, the error case for retire fence did not handle
removing of fence_install for release fence properly. Fix it
by doing sync_fence_install for both release/retire fence
after successful release/retire create_fence.
Change-Id: I6e983a1a1d843ddca46729c37a49cb85eda74cfe
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
There might be cases during bootup when backlight cmds or ESD thread
sends DCS cmds to the panel when iommu attach is yet to happen. DSI
uses physical or virtual address based on the iommu_attached status
check. If iommu attach happens when the DCS cmds are using the
physical address, it would lead to SMMU page faults. Protect iommu
attach/detach and DCS cmd sending with an iommu_lock to avoid such
race conditions.
Change-Id: I16fb0bf884f0dbbce1cd9099ec5619d132379054
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Configure autorefresh in the slave pingpong register too
when autorefresh is enabled along with pp-split.
Change-Id: I3dc51f99018bb7a97fa01cd9aebe50d63671261e
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Modified condition to ensure data is read
only after interrupt has occurred.
Spurious interrupt handling is done in nfc_read
instead of irq handler.
Change-Id: Ie2362610fe922e792e6358b4386c828fdd754fa8
Signed-off-by: Gaurav Singhal <gsinghal@codeaurora.org>
Decoder YUV buffer size should be derived based on current
resolution using Venus MACROS. This the only size that
clients are aware of. Using the size from FW will make
buffer sizes mismatches and unnecessary failures.
By not using buffer size from Venus, driver can avoid
unnecessary buffer requirement calls. This will reduce the
start-up latency.
CRs-Fixed: 1011881
Change-Id: I90762967e8b7888a775ce4771b6cdb08528b6513
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
During playback, enabling smart boost feature changes the threshold
of the playback signal based on the amplitude of the signal without
clipping the signal. Change enables smart boost on WCD9340 codec.
Change-Id: Ic4c5e3cc071898f376070b853112c5014d61272c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Integer overflow check always fails when ULONG_MAX is used,
as ULONG_MAX is 2^64-1, while req->data[i].len and total
are uint32_t. Make change to use U32_MAX instead of
ULONG_MAX.
CRs-fixed: 1046507
Change-Id: Iccf9c32400ecc7ffc0afae16f58c38e5d78a5b64
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
WCD9335 codec has single master clock supply widget for both
playback and recording paths. Adding separate clock supply
for playback and recording paths will help handle low power
audio recording usecases without affecting playback usecases.
Change is to enable separate clock supply widgets for playback
and recording paths.
CRs-fixed: 1022917
Change-Id: I3978d2c53f2b04104d9d279f8acad60326f9405c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Export API for getting SOC serial number so that other modules
can use it.
CRs-Fixed: 1050491
Change-Id: I24f735159a38dffdc4f44babacc4d758cd0a8365
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>