summaryrefslogtreecommitdiff
path: root/lwis_transaction.h
AgeCommit message (Collapse)Author
2023-05-30LWIS: Update read buffer pointerMeghana Barkalle
While executing the remaining transaction based on the transaction process limit, there is a need to save the location where the read buffer should be updated in the response. Queue the work on the tranaction/I2C worker thread again if there are any pending entries to be processed further. Bug: 284491752 Bug: 279088769 Test: GCA Smoke Test, verified with LDAF changes Change-Id: I1054318a028e487f94a4f667c589cedb3e4b8e71
2023-05-10LWIS: Fix transaction freeMeghana Barkalle
Transaction is not set to NULL appropriately after being freed. This can lead to usage of transaction even after free in some cases. This fix will allow setting the freed transaction memory to NULL appropriately. Bug: 281124077 Test: GCA Smoke Test Change-Id: Idf36215eb1fc7cec0f940f0efe7b30dc4ee13fbc
2023-05-08Add entry processing limit for queued transactionsMeghana Barkalle
When the numbers of processing entries need to be controlled then user could specify the following tag in the I2C device dt entry: transaction-process-limit When this entry is not specified, the default system behaviour is to process all the entries Test: GCA Smoke Test Bug: 274038588 Change-Id: I7c5979c84560e5b505a481b15889a782bb154062
2023-04-07LWIS: Remove partial fence enable flagHolmes Chou
Remove partial fence enable flag Bug: 272148112 Test: GCA, CTS Change-Id: Ia969f9f71d25f2b3911d124ebb787a62f88b9af6 Signed-off-by: Holmes Chou <holmeschou@google.com>
2023-02-24Add precondition fence to event trigger logicEdmond Chung
Commit-Topic: lwis-precond-fence Bug: 268208840 Test: CTS, GCA Change-Id: I525a07beb97a3704aee29cfc3d29aa24e9bea4b9 Signed-off-by: Edmond Chung <edmondchung@google.com>
2022-12-16Merge periodic and transaction threadsMeghana Barkalle
Merge periodic and transaction threads into one. This change will allow transaction thread to pick up queued process from transaction queues and periodic io queue reducing inactive periodic io thread count. Test: Camera Test Checklist Bug: 250041200 Change-Id: I1ac4f9558f32af184699596098b19d5feed67502 Signed-off-by: Meghana Barkalle <mbarkalle@google.com>
2022-12-15Lwis: Using kernel functions to determine current context.linyuny
Bug: 176192392 Test: Pixel camera test checklist Change-Id: I673cef1fc161bd864fbc845d940425dbf5579f4b Signed-off-by: linyuny <linyuny@google.com>
2022-09-16LWIS: Fput trigger fence fp at lwis_transaction_free.Ge Bian
Bug: 243073126 Test: atest LwisFenceAndroidTest Change-Id: I79cfc64861d9873783d7b130d4e18544257817b5 Signed-off-by: Ge Bian <bian@google.com>
2022-08-29LWIS: Allow level triggered lwis_fenceTommy Kardach
Bug: 241596640 Test: Unit tests Change-Id: I73aa43b44ca5f164e975429f63fa3b0de99492d2 Signed-off-by: Tommy Kardach <thomaskardach@google.com>
2022-06-09Revert "Revert "LWIS: Implement completion_fences in lwis""Tommy Kardach
This reverts commit 78509ac2b74a14cfc58f66e930bd8e422013b3f9 as well as commit 5254b9df63f34fa060c7a991a752d7864356fc43 (pa/2233008) Reason for revert: Reinstating changes with broken build fixed Change-Id: Ib11811d4792f029195ec9045b0f10f304e5359c1
2022-06-09Revert "LWIS: Implement completion_fences in lwis"Tommy Kardach
This reverts commit e23e38b95355d9fbdcec5778f9272d6f8976ad49. Reason for revert: Causing build breakage in older models Change-Id: If80a938905d3c6115086ce56f3444fa387a64354
2022-06-09LWIS: Implement completion_fences in lwisTommy Kardach
Bug: 232844185 Test: Pixel camera checklist Change-Id: Ife4b95ae4c7900dedca7dd810077694e8b446564
2022-06-01LWIS: add LWIS_FENCE_ENABLED for zumaWill McVicker
The LWIS fence feature was only added for devices launching with the 5.15 kernel. Since this feature modifies the UAPI by introducing the variable trigger_condition, we need to compile it out of the P21 driver. We can do that by moving all the fence related code to lwis_fence.c and using the LWIS_FENCE_ENABLED define to disable it for P21. Refer to ag/18085883 for more platform details. Tested: verify camera on P21 Bug: 229024993 Signed-off-by: Will McVicker <willmcvicker@google.com> Change-Id: I2145b6198c137557022649d40881f91cdc1418b1
2022-05-31LWIS: Add trigger_condition event supports.Ge Bian
Bug: 232863002 Test: unit test Change-Id: I7a3045915c969ef6123f3e92a7e249edee725c8c
2022-05-28LWIS: Support AND/OR condition triggered by fencesNick Chung
Bug: 232860404 Test: Pixel camera checklist Signed-off-by: Nick Chung <nickchung@google.com> Change-Id: I2700f64ff9ff262b7fd229a891084e13f57d00ee
2022-05-26LWIS: Add a pending transaction map to lwis_client.Ge Bian
This pending transaction map will be useful for handling OR{} trigger conditions. It can be used to look up if a transaction is still waiting to be triggered. Bug: 229024993 Test: unit test Change-Id: I0651fa4b6876d4ba7984a0f64eb5aff81c6d6b70
2022-05-04LWIS: Support submitting transaction triggered by a lwis_fence.Ge Bian
Support transactions triggered by one fence, whcih can be either can existing lwis_fence or a placeholder fence. Bug: 229024993 Test: unit test Change-Id: I7536218c49b732061ed2dc85a425428fa7670c79
2022-01-11LWIS: Implement memory allocator for reuseHolmes Chou
Memory is allocated/deallocated at each IOCTL, transaction, etc., which could be a very costly operation. LWIS should have a memory allocator to help reuse memory buffer to reduce the number to allocations. Bug: 199428848 Test: GCA, CTS Signed-off-by: Holmes Chou <holmeschou@google.com> Change-Id: I2ed87bb01ddce54244c3f4adac89a045178097d8
2021-12-24Revert "LWIS: Implement memory allocator for reuse"Edmond Chung
This reverts commit 65c942bb710b2a16ff003b060b573a05fb2e80d1. Reason for revert: Kernel panic on kvfree Bug: 211924245 Signed-off-by: Edmond Chung <edmondchung@google.com> Change-Id: Ie35f48c81f8f43d0be1d0edf2cc79937276eef52
2021-12-22LWIS: Implement memory allocator for reuseHolmes Chou
Memory is allocated/deallocated at each IOCTL, transaction, etc., which could be a very costly operation. LWIS should have a memory allocator to help reuse memory buffer to reduce the number to allocations. Bug: 199428848 Test: GCA, CTS Signed-off-by: Holmes Chou <holmeschou@google.com> Change-Id: Ibd52cdf8974e18fc2855ec7883b2815f3cf0b966
2021-12-09LWIS: refact duplicate function / codeHolmes Chou
Some implementations in current codebase are duplicated. Refact current implementation to use the same function to handle the same task. Bug: 206708829 Test: AOSP camera, CTS Signed-off-by: Holmes Chou <holmeschou@google.com> Change-Id: I86a69d1a025d598ad7dfbf198bb066808d6b5b34
2021-11-13IoEntry: Created file for generic I/O entry functionsEdmond Chung
Bug: 200710173 Test: GCA, CTS Signed-off-by: Edmond Chung <edmondchung@google.com> Change-Id: I1dabf6f5f3aa3ef5f4d5bdb2af93019df4094753
2021-04-27IO: Move mutex from per-entry to per-transaction based.Edmond Chung
Mutex un/lock could be expensive, especially if this is done on a per-entry basis. Changed to lock for the entirety of one transaction. In the future, we should check to see if there is a need to lock at all. Bug: 186164633 Test: CTS, GCA Signed-off-by: Edmond Chung <edmondchung@google.com> Change-Id: I05370ede8f34ac5bfdcd6ca7cd3f5c8b18058d36
2021-01-20LWIS: Use tasklet to process realtime transactionsGe Bian
Add a Tasklet to process transactions that needs to be done at real-time. This feature will be used to offload transactions from ISR. Test: Tested with CTS test (along with ag/13149819). Manually checked AOSP camera app work. Bug: 168669132 Change-Id: I5f8c703235689b06a1e96dbb93e30d30fbb2e74c Signed-off-by: Ge Bian <bian@google.com>
2021-01-12LWIS: Support ReadAssert in IoEntryNick Chung
Reuse the Poll content to fulfill Read Assert Must be merged with ag/13274204 Bug: 175071606 Test: CTS, Unit Test Change-Id: I2a0c3356871337951e8aac4f705dde55999d6cc6
2020-11-19LWIS: Remove the kernel code to set address bias.Ge Bian
Setting address bias is now handled by the userspace IoEntryBuilder. Remove the old kernel code that's no longer needed. Bug: 170994926 Test: Checked camera app working. CTS only fails testBasicRecording, which is known flaky. Change-Id: I4327004b19d8870ad685ec9ffadf01340bdd8393
2020-11-19Transaction: Measure and print processing time in debug infoEdmond Chung
Bug: 165879653 Test: Ran AOSP camera app and checked output from /sys/kernel/debug/lwis/[csi|g3aa|ipp]/transaction_info Signed-off-by: Edmond Chung <edmondchung@google.com> Change-Id: I068ffd5e343ccd1f3165e529dc296a2850467af1
2020-11-17Formatting fix based on updated clang-formatEdmond Chung
Notable difference: Line limit is now increased to 100. Signed-off-by: Edmond Chung <edmondchung@google.com> Change-Id: I265a14e4b102bdea6f8393fd9a523941e64f616a
2020-09-29LWIS: Run cleanup transaction at device disable.Ge Bian
Bug: 168340621 Signed-off-by: Ge Bian <bian@google.com> Change-Id: I2316276a8234aa849b429125291bd4e7bb8021db (cherry picked from commit 76e8b1348d5cff7dfbdd009edd829dae81323403) (cherry picked from commit 6184486155b7f3cdaf0b2414eac72ed31f999cef)
2020-07-24Transaction: Fix race condition in submission.Edmond Chung
It's possible that event would trigger while transaction is in the process of submission. That leads to transaction being added to the pending list but with no chance of being triggered. This CL to increase coverage of the transaction locks to ensure critical sections are being protected properly. Bug: 161751157 Signed-off-by: Edmond Chung <edmondchung@google.com> Change-Id: I738ee72efc4a29e7a2f819974526902de512d8d7
2020-05-01Transaction: Implement transaction replace.Ge Bian
Bug: 141575875 Change-Id: I2cf2f5ac827ed93182169ebbd77d5fe82a0f0bef Signed-off-by: Ge Bian <bian@google.com>
2020-04-21LWIS: Add Poll and SetBias to synchronous IO.Ge Bian
Bug: 153108965 Change-Id: Ic9161efa683f51711725364e685d5c3b3473723a
2020-03-02LWIS: ensure transactions done before disabling.Ge Bian
In LWIS_DEVICE_DISABLE, wait for all in-process transactions (transactions in the process_queue) to be finished before disabling the device. Change-Id: I6bef83983888e8cec5e44f12a8ec7014ca307e9d Bug: 150382230 Signed-off-by: Ge Bian <bian@google.com>
2019-10-30Use int64_t for event ID, counter and timestampsEdmond Chung
Change-Id: I6ac411d944c0eaadeb74c243b3c9462e9c7a8e97 Signed-off-by: Edmond Chung <edmondchung@google.com>
2019-10-30Transaction: Propagate in-irq status to reg r/wEdmond Chung
Bug: 141964136 Change-Id: I9c3ab976abbb547d4264eb9b81795d845442c6b6 Signed-off-by: Edmond Chung <edmondchung@google.com>
2019-10-30Transaction: Implement cancellation and cleanupEdmond Chung
Bug: 117126830 Change-Id: I595290f54b532aaea584f8c57f1f15f68720ea9f Signed-off-by: Edmond Chung <edmondchung@google.com>
2019-10-01Transaction: Implement async i/o read/writesEdmond Chung
Bug: 117126830 Change-Id: I37ed14fbbc6f119d37cb382f9b2c1f8f1281d4d5 Signed-off-by: Edmond Chung <edmondchung@google.com>