summaryrefslogtreecommitdiff
path: root/rust/helpers/helpers.c
diff options
context:
space:
mode:
authorJyothi Kumar Seerapu <quic_jseerapu@quicinc.com>2025-09-25 17:30:35 +0530
committerVinod Koul <vkoul@kernel.org>2025-10-16 17:47:56 +0530
commit398035178503bf662281bbffb4bebce1460a4bc5 (patch)
treeacf6d2aa29d6c7772c0bdc72ef503659d0304c5d /rust/helpers/helpers.c
parent4e8331317e73902e8b2663352c8766227e633901 (diff)
i2c: i2c-qcom-geni: Add Block event interrupt support
The I2C driver gets an interrupt upon transfer completion. When handling multiple messages in a single transfer, this results in N interrupts for N messages, leading to significant software interrupt latency. To mitigate this latency, utilize Block Event Interrupt (BEI) mechanism. Enabling BEI instructs the hardware to prevent interrupt generation and BEI is disabled when an interrupt is necessary. Large I2C transfer can be divided into chunks of messages internally. Interrupts are not expected for the messages for which BEI bit set, only the last message triggers an interrupt, indicating the completion of N messages. This BEI mechanism enhances overall transfer efficiency. BEI optimizations are currently implemented for I2C write transfers only, as there is no use case for multiple I2C read messages in a single transfer at this time. Signed-off-by: Jyothi Kumar Seerapu <quic_jseerapu@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Acked-by: Andi Shyti <andi.shyti@kernel.org> Reviewed-by: Mukesh Savaliya <mukesh.savaliya@oss.qualcomm.com> Acked-by: Mukesh Savaliya <mukesh.savaliya@oss.qualcomm.com> Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'rust/helpers/helpers.c')
0 files changed, 0 insertions, 0 deletions