i3c: mipi-i3c-hci: Fix missing xfer->completion in hci_cmd_v1_daa()
authorJarkko Nikula <jarkko.nikula@linux.intel.com>
Thu, 21 Sep 2023 05:57:02 +0000 (08:57 +0300)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 25 Sep 2023 21:35:14 +0000 (23:35 +0200)
Due to missing completion object for the ENTDAA command transfer in the
hci_cmd_v1_daa() the wait_for_completion_timeout() will obviously
timeout even the transfer itself may succeed.

Fix this by setting the xfer->completion to the already initialized
completion object.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Link: https://lore.kernel.org/r/20230921055704.1087277-11-jarkko.nikula@linux.intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master/mipi-i3c-hci/cmd_v1.c

index 6a781f89b0e4066beef10dcf641d242e97504600..2b2323aa671416075454b781212ca36b66360a5a 100644 (file)
@@ -332,6 +332,7 @@ static int hci_cmd_v1_daa(struct i3c_hci *hci)
                        CMD_A0_DEV_COUNT(1) |
                        CMD_A0_ROC | CMD_A0_TOC;
                xfer->cmd_desc[1] = 0;
+               xfer->completion = &done;
                hci->io->queue_xfer(hci, xfer, 1);
                if (!wait_for_completion_timeout(&done, HZ) &&
                    hci->io->dequeue_xfer(hci, xfer, 1)) {