]> git.ipfire.org Git - thirdparty/linux.git/commit
dmaengine: qcom: gpi: Add GPI Block event interrupt support
authorJyothi Kumar Seerapu <quic_jseerapu@quicinc.com>
Thu, 25 Sep 2025 12:00:34 +0000 (17:30 +0530)
committerVinod Koul <vkoul@kernel.org>
Thu, 16 Oct 2025 12:17:56 +0000 (17:47 +0530)
commit4e8331317e73902e8b2663352c8766227e633901
tree074023048fad2215f702c63cde93734b58563d0b
parentf80ea8566917c4bb680911db839a170873e5d17c
dmaengine: qcom: gpi: Add GPI Block event interrupt support

GSI hardware generates an interrupt for each transfer completion.
For multiple messages within 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 GSI 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.

Signed-off-by: Jyothi Kumar Seerapu <quic_jseerapu@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/qcom/gpi.c