mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] i2c: qcom-cci: Fix HALT_ACK reset request being dropped
@ 2026-10-12 12:54 Loic Poulain
  2026-10-12 14:02 ` Konrad Dybcio
  2026-10-13 11:08 ` Andi Shyti
  0 siblings, 2 replies; 3+ messages in thread
From: Loic Poulain @ 2026-10-12 12:54 UTC (permalink / raw)
  To: Robert Foss, Andi Shyti, Vinod Koul, Wolfram Sang,
	Bjorn Andersson, Todor Tomov
  Cc: linux-i2c, linux-arm-msm, linux-kernel, Loic Poulain

A HALT_ACK interrupt indicates that the corresponding I2C master has
entered the halted state and must be reset before further operation.

The M0 and M1 HALT_ACK status bits may be asserted simultaneously in a
single interrupt. However, the interrupt handler currently overwrites
the reset mask when processing each HALT_ACK condition, causing the
first reset request to be lost if both events are reported together.

Accumulate reset requests instead of overwriting them so that both
masters are properly reset when M0 and M1 HALT_ACK events occur in the
same interrupt.

Fixes: e517526195de4 ("i2c: Add Qualcomm CCI I2C driver")
Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
---
 drivers/i2c/busses/i2c-qcom-cci.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c
index 873e901a23d7a2874af5c1e738167247adff1910..bd70c6bae5dc685435bf2ad031cf7a11ec60ab4f 100644
--- a/drivers/i2c/busses/i2c-qcom-cci.c
+++ b/drivers/i2c/busses/i2c-qcom-cci.c
@@ -164,12 +164,12 @@ static irqreturn_t cci_isr(int irq, void *dev)
 	}
 
 	if (unlikely(val & CCI_IRQ_STATUS_0_I2C_M0_Q0Q1_HALT_ACK)) {
-		reset = CCI_RESET_CMD_M0_MASK;
+		reset |= CCI_RESET_CMD_M0_MASK;
 		ret = IRQ_HANDLED;
 	}
 
 	if (unlikely(val & CCI_IRQ_STATUS_0_I2C_M1_Q0Q1_HALT_ACK)) {
-		reset = CCI_RESET_CMD_M1_MASK;
+		reset |= CCI_RESET_CMD_M1_MASK;
 		ret = IRQ_HANDLED;
 	}
 

---
base-commit: ae8364085574203e7f4ea961921a1c7493bcb6de
change-id: 20261012-cci-fixes-afa0e523a2ac

Best regards,
-- 
Loic Poulain <loic.poulain@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] i2c: qcom-cci: Fix HALT_ACK reset request being dropped
  2026-10-12 12:54 [PATCH] i2c: qcom-cci: Fix HALT_ACK reset request being dropped Loic Poulain
@ 2026-10-12 14:02 ` Konrad Dybcio
  2026-10-13 11:08 ` Andi Shyti
  1 sibling, 0 replies; 3+ messages in thread
From: Konrad Dybcio @ 2026-10-12 14:02 UTC (permalink / raw)
  To: Loic Poulain, Robert Foss, Andi Shyti, Vinod Koul, Wolfram Sang,
	Bjorn Andersson, Todor Tomov
  Cc: linux-i2c, linux-arm-msm, linux-kernel

On 10/12/26 2:54 PM, Loic Poulain wrote:
> A HALT_ACK interrupt indicates that the corresponding I2C master has
> entered the halted state and must be reset before further operation.
> 
> The M0 and M1 HALT_ACK status bits may be asserted simultaneously in a
> single interrupt. However, the interrupt handler currently overwrites
> the reset mask when processing each HALT_ACK condition, causing the
> first reset request to be lost if both events are reported together.
> 
> Accumulate reset requests instead of overwriting them so that both
> masters are properly reset when M0 and M1 HALT_ACK events occur in the
> same interrupt.
> 
> Fixes: e517526195de4 ("i2c: Add Qualcomm CCI I2C driver")
> Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] i2c: qcom-cci: Fix HALT_ACK reset request being dropped
  2026-10-12 12:54 [PATCH] i2c: qcom-cci: Fix HALT_ACK reset request being dropped Loic Poulain
  2026-10-12 14:02 ` Konrad Dybcio
@ 2026-10-13 11:08 ` Andi Shyti
  1 sibling, 0 replies; 3+ messages in thread
From: Andi Shyti @ 2026-10-13 11:08 UTC (permalink / raw)
  To: Loic Poulain
  Cc: Robert Foss, Vinod Koul, Wolfram Sang, Bjorn Andersson,
	Todor Tomov, linux-i2c, linux-arm-msm, linux-kernel

Hi Loic,

On Mon, Oct 12, 2026 at 02:54:56PM +0200, Loic Poulain wrote:
> A HALT_ACK interrupt indicates that the corresponding I2C master has
> entered the halted state and must be reset before further operation.
> 
> The M0 and M1 HALT_ACK status bits may be asserted simultaneously in a
> single interrupt. However, the interrupt handler currently overwrites
> the reset mask when processing each HALT_ACK condition, causing the
> first reset request to be lost if both events are reported together.
> 
> Accumulate reset requests instead of overwriting them so that both
> masters are properly reset when M0 and M1 HALT_ACK events occur in the
> same interrupt.
> 
> Fixes: e517526195de4 ("i2c: Add Qualcomm CCI I2C driver")
> Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>

pushed to i2c/i2c-fixes.

Thanks,
Andi

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-10-13 11:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-12 12:54 [PATCH] i2c: qcom-cci: Fix HALT_ACK reset request being dropped Loic Poulain
2026-10-12 14:02 ` Konrad Dybcio
2026-10-13 11:08 ` Andi Shyti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®