]> git.ipfire.org Git - thirdparty/linux.git/commit
i3c: mipi-i3c-hci: Preserve RUN bit when aborting DMA ring
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 3 Jun 2026 09:07:39 +0000 (12:07 +0300)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Sun, 14 Jun 2026 15:21:33 +0000 (17:21 +0200)
commit093eb8e73c90aa0c8cfb0421aa85bd70c23488be
tree89564c11a4ca542fc2a93c258b0d05bedddf92fb
parent57e181af13de36571380ef3cc74000559826fa9b
i3c: mipi-i3c-hci: Preserve RUN bit when aborting DMA ring

The MIPI I3C HCI specification does not require the DMA ring RUN bit
(RUN_STOP) to be cleared when issuing an ABORT.  That allows the DMA ring
to continue to receive IBIs, although an IBI is anyway not lost because it
can be received once the ring restarts if the I3C device has not given up.
Note, currently ABORT is only used on a timeout error path so the change
has very little effect in practice.  In the more common case of a transfer
error, the ring (bundle) operation is halted by the controller anyway.

Adjust the RING_CONTROL handling to set ABORT without clearing RUN_STOP,
bringing the driver into alignment with the specification.

Fixes: b795e68bf3073 ("i3c: mipi-i3c-hci: Correct RING_CTRL_ABORT handling in DMA dequeue")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260603090754.16252-3-adrian.hunter@intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master/mipi-i3c-hci/dma.c