linux/drivers/i3c/master/mipi-i3c-hci
Adrian Hunter 9a258d1336 i3c: mipi-i3c-hci: Fallback to software reset when bus disable fails
Disruption of the MIPI I3C HCI controller's internal state can cause
i3c_hci_bus_disable() to fail when attempting to shut down the bus.

In the code paths where bus disable is invoked - bus clean-up and runtime
suspend - the controller does not need to remain operational afterward, so
a full controller reset is a safe recovery mechanism.

Add a fallback to issue a software reset when disabling the bus fails.
This ensures the bus is reliably halted even if the controller's state
machine is stuck or unresponsive.

The fallback is used both during bus clean-up and in the runtime suspend
path.  In the latter case, ensure interrupts are quiesced after reset.

Fixes: 9ad9a52cce ("i3c/master: introduce the mipi-i3c-hci driver")
Cc: stable@vger.kernel.org
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260306072451.11131-15-adrian.hunter@intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2026-03-11 22:10:02 +01:00
..
Makefile i3c: mipi-i3c-hci: Add support for MIPI I3C HCI on PCI bus 2025-01-12 23:54:39 +01:00
cmd.h i3c: mipi-i3c-hci: Add missing TID field to no-op command descriptor 2026-03-11 22:10:02 +01:00
cmd_v1.c i3c: mipi-i3c-hci: Consolidate common xfer processing logic 2026-03-11 22:10:02 +01:00
cmd_v2.c i3c: mipi-i3c-hci: Consolidate common xfer processing logic 2026-03-11 22:10:02 +01:00
core.c i3c: mipi-i3c-hci: Fallback to software reset when bus disable fails 2026-03-11 22:10:02 +01:00
dat.h i3c: mipi-i3c-hci: Introduce helper to restore DAT 2026-01-14 17:21:09 +01:00
dat_v1.c i3c: mipi-i3c-hci: Introduce helper to restore DAT 2026-01-14 17:21:09 +01:00
dct.h
dct_v1.c
dma.c i3c: mipi-i3c-hci: Fix race in DMA error handling in interrupt context 2026-03-11 22:10:02 +01:00
ext_caps.c i3c: mipi-i3c-hci: Quieten initialization messages 2026-01-14 15:53:33 +01:00
ext_caps.h i3c: mipi-i3c-hci: Remove duplicate blank lines 2026-01-14 15:53:33 +01:00
hci.h i3c: mipi-i3c-hci: Fix race in DMA error handling in interrupt context 2026-03-11 22:10:02 +01:00
hci_quirks.c i3c: mipi-i3c-hci: Add a quirk to set Response buffer threshold 2024-09-05 18:34:09 +02:00
ibi.h
mipi-i3c-hci-pci.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pio.c i3c: mipi-i3c-hci: Fix race between DMA ring dequeue and interrupt handler 2026-03-11 22:10:01 +01:00
xfer_mode_rate.h