scsi: ufs: qcom: Remove unnecessary mb() after writing testbus config
authorAndrew Halaney <ahalaney@redhat.com>
Fri, 29 Mar 2024 20:46:45 +0000 (15:46 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 6 Apr 2024 01:06:29 +0000 (21:06 -0400)
Currently, the testbus configuration is written and completed with an mb().

mb() ensures that the write completes, but completion doesn't mean that it
isn't stored in a buffer somewhere. The recommendation for ensuring this
bit has taken effect on the device is to perform a read back to force it to
make it all the way to the device. This is documented in device-io.rst and
a talk by Will Deacon on this can be seen over here:

    https://youtu.be/i6DayghhA8Q?si=MiyxB5cKJXSaoc01&t=1678

But, there's really no reason to even ensure completion before
continuing. The only requirement here is that this write is ordered to this
endpoint (which readl()/writel() guarantees already). For that reason the
mb() can be dropped altogether without anything forcing completion.

Fixes: 9c46b8676271 ("scsi: ufs-qcom: dump additional testbus registers")
Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
Link: https://lore.kernel.org/r/20240329-ufs-reset-ensure-effect-before-delay-v5-3-181252004586@redhat.com
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/host/ufs-qcom.c

index 46f8a74e50372ec0925b29665e14e75db10dee86..7fce5ed3e6ee7d0d2ebefa0dd27f30a40e104617 100644 (file)
@@ -1443,11 +1443,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host)
                    (u32)host->testbus.select_minor << offset,
                    reg);
        ufs_qcom_enable_test_bus(host);
-       /*
-        * Make sure the test bus configuration is
-        * committed before returning.
-        */
-       mb();
 
        return 0;
 }