Use fw_uncached region instead of secondary heap region. Pass
this region information to FW through CSR registers.
Allocate Qtlb, cmd_q, msg_q, dbg_q from fw_uncached region
instead of shared mem region. Allocate Sec heap also from
fw uncached region instead of its own dedicated region.
CRs-Fixed: 2722486
Change-Id: Ib88b2202ca1b610946c712fcca936b72d4eecd15
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
Due LX7 cache requirement, buffers need 4K padding at the
end. Allocate accordingly, this is hidden from user mode
driver and umd never uses this extra 4K memory.
CRs-Fixed: 2722486
Change-Id: I3b327ab3615eee30d17c95e23703024ff7446648
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
Use dma-buf-heaps for allocating buffers. Keep ion usage
to support kernels without dma-buf-heaps support.
CRs-Fixed: 2852327
Change-Id: I3ebcb591827d9b8e5366f716efd08e4cd6f1070a
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
Consolidate ion usage functions and bring all ion related
usage into one single function. This helps to easily
write a different allocation wrapper in case a new allocator
need to be used in future.
CRs-Fixed: 2852327
Change-Id: I717ee5a976ae0f148dcdd5a050204514566c823d
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
Add implementation to allow forcing all camera buffer allocations
to be CACHED and mapped as CACHED while iommu_map. This
is enabled based on DT property. Force this only if
io-coherency is enabled. Validations are added to make sure
a correct combination of "force_cache" and "io-coherency"
properties are mentioned in DT.
CRs-Fixed: 2814719
Change-Id: I0d291ce199f523d67e8cd0105386cc63a671806e
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
Not calling unmap_hw_va if get_slot() fails causes a stale
entry in smmu CB. since get_slot failed, memmgr table
returns error and memmgr, umd doesn't keep info about this
map entry though smmu CB still has this mapping - This
causes any further map calls on the same 'fd' as smmu
return MAP_EXISTS but CSL bookkeeping doesn't have it.
CRs-Fixed: 2788167
Change-Id: Ibb1450f089b9f175ccdbcfb4f5ecc245a5539bd1
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
When multi map fails, the first mapping does not unmap
due to lack of condition.
CRs-Fixed: 2768768
Change-Id: Ib61ce8f5a73e5c27b1b19bbd23d6649c62feb0da
Signed-off-by: zhuo <zhuo@codeaurora.org>
Define debug flag to allocate usecase info for debug purpose.
This flag can be used to get usecase buffer index at issue
time.
CRs-Fixed: 2707314
Change-Id: Iffacdb48f77ec6907b8070d4c19eb1c56be30f14
Signed-off-by: Alok Chauhan <alokc@codeaurora.org>
dma_buf_kmap/kunmap is replaced with dma_buf_vmap/vunmap api, to
accommodate upstream driver.
CRs-Fixed: 2732008
Change-Id: Id6551d84ea09d91a18c64fbbca3a796f4eab0bb1
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
Allow concurrent calls to unmap buffer by reducing the
mutex lock duration, and allow same fd for mapping user iova,
use book keeping for user smmu.
CRs-Fixed: 2559879
Change-Id: Ic3c92d4fa0ca7d1c29e621172e0b058420e1501d
Signed-off-by: Haibin Liu <haibinl@codeaurora.org>
Guards debugfs features in camera driver to only be compiled when
CONFIG_DEBUG_FS is enabled.
CRs-Fixed: 2717236
Change-Id: I0de77741301d259cbec64e8a2e27830981b2b69d
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
At the time of unbind, all debugfs entry needs to be properly
clean up. This change adds debugfs directory removal alongwith
entries under debugfs root entry.
CRs-Fixed: 2675526
Change-Id: I3eba11db032dbafe5f7d444e8c5a823639ba0e74
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
Improve debugging infrastructure and logging for memory related
issues. There are scenarios where the fd returned after ion_alloc
exists in camera smmu table as being mapped [stale entry].
On such scenarios, this change will return a specific error code to
userspace. The change also propagates the mapped size back to
user space.
CRs-Fixed: 2663114
Change-Id: Ia797b65d1e8ded58dec5b01df07d73262c4cfa95
Signed-off-by: Karthik Anantha Ram <kartanan@codeaurora.org>
During unmap these internal buffers will be freed immediately
afterwards, therefore there is no need to do cache operation.
CRs-Fixed: 2627074
Change-Id: Ica4ebb93eb212604268c3450a92d075197783537
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
Add interface to umd to give an option whether to
disable Delayed Unamp feature for a given buffer
mapping. DelayedUnmap is enabled by default if
umd doesn't explicitly asks for disable.
CRs-Fixed: 2580128
Change-Id: I66f87a9dbdfc4d9cecdc02eb24c1c670c9985cae
Signed-off-by: Pavan Kumar Chilamkurthi <pchilamk@codeaurora.org>
When loading the camera FW, use the appropriate APIs
depending on the kernel version to map the FW region.
CRs-Fixed: 2564857
Change-Id: I2104b63b54bce799c8e44f36c49042de86f78c7e
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
Fix improper use of divide and modulo operator on 64 bit numbers.
Fix variable type to work with both 32/64 bit arch.
CRs-Fixed: 2543730
Change-Id: Ifa52d46dece3434d41308d284982a0cd8e17cd1b
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
Kernel uses v4l2 events to communicate with userspace.
If userspace is not dequeuing events and kernel is pushing more events
then v4l2_event_queue fails silently.
This change uses v4l2 callbacks to log v4l2_event_queue failure.
CRs-Fixed: 2541894
Change-Id: I98f8f609f615104ec6dde569bf1f39de1eb368fc
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
Add state variable for camera mem manager to show initialization status.
Ensure that all operations are rejected before initialization.
Change-Id: I1ddbaaf6fbed59e4804476562c97f6895d99e916
Signed-off-by: Trishansh Bhardwaj <tbhardwa@codeaurora.org>
Bring over camera driver changes as of msm-4.19
commit 5a5551a7 (Merge "msm: camera: reqmgr: Fix CRM
shift one req issue").
Change-Id: Ic0c2b2d74d1b3470c1c51d98228e312fb13c501a
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>