summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeghana Barkalle <mbarkalle@google.com>2023-05-23 19:06:56 +0000
committerTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-12-13 16:36:31 +0000
commit6ecc790fc1dd27005491b475dc01415e51c366b8 (patch)
tree69bbec1fbcee29c00fe398124eede8d78e2713e6
parentda3907588d3fef7b0434354b4de00d5fdf85d720 (diff)
downloadlwis-6ecc790fc1dd27005491b475dc01415e51c366b8.tar.gz
LWIS: Fix the processing end limit for transactions
Fix end limit for transactions where the limit for processing entries per run is defined. Bug: 299130975 Test: GCA Smoke Test Change-Id: I287b7efd5f9ad77fe830ea43dd6a6f73b6323ef7 (cherry picked from commit 0765009540d3f04be4450451d24e8f3169f92ec8) Signed-off-by: Meghana Barkalle <mbarkalle@google.com>
-rw-r--r--lwis_transaction.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lwis_transaction.c b/lwis_transaction.c
index 8bc39b0..f10bde9 100644
--- a/lwis_transaction.c
+++ b/lwis_transaction.c
@@ -181,6 +181,7 @@ static int process_transaction(struct lwis_client *client, struct lwis_transacti
int remaining_entries_to_be_processed = transaction->remaining_entries_to_process;
int number_of_entries_to_process_in_current_run = 0;
int processing_start_index = 0;
+ int processing_end_index = 0;
/*
* Process all the transactions at once if:
@@ -200,8 +201,9 @@ static int process_transaction(struct lwis_client *client, struct lwis_transacti
max_transaction_entry_limit :
remaining_entries_to_be_processed;
processing_start_index = total_number_of_entries - remaining_entries_to_be_processed;
+ processing_end_index = processing_start_index + number_of_entries_to_process_in_current_run;
remaining_entries_to_be_processed =
- remaining_entries_to_be_processed - max_transaction_entry_limit;
+ remaining_entries_to_be_processed - number_of_entries_to_process_in_current_run;
if (lwis_transaction_debug) {
process_timestamp = ktime_to_ns(lwis_get_time());
@@ -219,7 +221,7 @@ static int process_transaction(struct lwis_client *client, struct lwis_transacti
/*use_write_barrier=*/true);
}
lwis_i2c_bus_manager_lock_i2c_bus(lwis_dev);
- for (i = processing_start_index; i < number_of_entries_to_process_in_current_run; ++i) {
+ for (i = processing_start_index; i < processing_end_index; ++i) {
entry = &info->io_entries[i];
if (entry->type == LWIS_IO_ENTRY_WRITE ||
entry->type == LWIS_IO_ENTRY_WRITE_BATCH ||