[PATCH 0/3] i2c: qcom-geni: improve transfer error recovery and synchronization

From: Praveen Talari

Date: Wed Jul 08 2026 - 02:16:10 EST


The GENI I2C driver currently has a few issues in its transfer recovery
and completion handling paths.

The timeout recovery flow directly aborts outstanding commands, while
GENI hardware requires command cancellation to be attempted before
issuing an abort. In addition, multiple operations share a common
completion object, which can allow unrelated events to wake waiters
prematurely and lead to incorrect synchronization.

Address NACK handling can also trigger unnecessary cancel and reset
operations even though the transfer has already terminated during the
address phase.

Signed-off-by: Praveen Talari <praveen.talari@xxxxxxxxxxxxxxxx>
---
Praveen Talari (3):
i2c: qcom-geni: use cancel command before abort on transfer timeout
i2c: qcom-geni: use dedicated completions for abort and reset events
i2c: qcom-geni: Avoid unnecessary transfer cancel on address NACK

drivers/i2c/busses/i2c-qcom-geni.c | 100 ++++++++++++++++++++++++-------------
1 file changed, 66 insertions(+), 34 deletions(-)
---
base-commit: 2b763db0c2763d6bf73d7d3e69665222d1f377cf
change-id: 20260703-fix_cancel_sequence_on_failure_for_i2c-a868571f77e0

Best regards,
--
Praveen Talari <praveen.talari@xxxxxxxxxxxxxxxx>