i3c: mipi-i3c-hci: Do not overallocate transfers in hci_cmd_v1_daa()
authorJarkko Nikula <jarkko.nikula@linux.intel.com>
Thu, 9 Nov 2023 13:37:06 +0000 (15:37 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 16 Nov 2023 22:36:44 +0000 (23:36 +0100)
Function hci_cmd_v1_daa() uses only single transfer at a time so no need
to allocate two transfers and access can be simplified.

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

index 2b2323a..31f03cb 100644 (file)
@@ -298,7 +298,7 @@ static int hci_cmd_v1_daa(struct i3c_hci *hci)
        unsigned int dcr, bcr;
        DECLARE_COMPLETION_ONSTACK(done);
 
-       xfer = hci_alloc_xfer(2);
+       xfer = hci_alloc_xfer(1);
        if (!xfer)
                return -ENOMEM;
 
@@ -339,12 +339,12 @@ static int hci_cmd_v1_daa(struct i3c_hci *hci)
                        ret = -ETIME;
                        break;
                }
-               if (RESP_STATUS(xfer[0].response) == RESP_ERR_NACK &&
+               if (RESP_STATUS(xfer->response) == RESP_ERR_NACK &&
                    RESP_DATA_LENGTH(xfer->response) == 1) {
                        ret = 0;  /* no more devices to be assigned */
                        break;
                }
-               if (RESP_STATUS(xfer[0].response) != RESP_SUCCESS) {
+               if (RESP_STATUS(xfer->response) != RESP_SUCCESS) {
                        ret = -EIO;
                        break;
                }