]> git.hungrycats.org Git - linux/commit
i3c: mipi-i3c-hci: Ignore DISEC failures when disabling IBIs
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 12 Jun 2026 08:01:02 +0000 (11:01 +0300)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Sun, 14 Jun 2026 19:49:11 +0000 (21:49 +0200)
commitad7fba5cbd6d7ff139a08e7c83edec4536314430
treebe17b38e6bb24e5c117f7a2c062bfdb599a687ac
parent650716f23eac488c6696babdc7805f6a6b7427ad
i3c: mipi-i3c-hci: Ignore DISEC failures when disabling IBIs

Disabling IBIs currently returns the result of the DISEC CCC, causing
i3c_hci_disable_ibi() to fail if the transfer errors out.

However, the controller has already been programmed to reject IBIs by
setting DAT_0_SIR_REJECT, so the target’s IBIs are effectively disabled
from the host side regardless of the outcome of the DISEC command.  At
this point, teardown of the IBI infrastructure can safely proceed even
if DISEC fails.

Note, from then on, the MIPI I3C HCI not only NACKs the target's IBI but
automatically sends another DISEC command.

Make i3c_hci_disable_ibi() resilient by ignoring the return value of
i3c_master_disec_locked() and always returning success.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260612080107.11606-3-adrian.hunter@intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master/mipi-i3c-hci/core.c