Instead of duplicating the ufs_scsi_bind() call in every driver,
call it from UFS uclass .post_bind callback for every driver in
one place. While doing so, inline ufs_scsi_bind() directly into
ufs_post_bind() as trivial device_bind_driver() call.

Reviewed-by: Neil Armstrong <[email protected]>
Signed-off-by: Marek Vasut <[email protected]>
---
Cc: Bhupesh Sharma <[email protected]>
Cc: Casey Connolly <[email protected]>
Cc: Michal Simek <[email protected]>
Cc: Neha Malcom Francis <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Nobuhiro Iwamatsu <[email protected]>
Cc: Sumit Garg <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Tuyen Dang <[email protected]>
Cc: Venkatesh Yadav Abbarapu <[email protected]>
Cc: Yoshihiro Shimoda <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
V2: Add RB from Neil
---
 drivers/ufs/cdns-platform.c   |  8 --------
 drivers/ufs/ufs-amd-versal2.c |  8 --------
 drivers/ufs/ufs-pci.c         |  8 --------
 drivers/ufs/ufs-qcom.c        |  8 --------
 drivers/ufs/ufs-renesas.c     |  8 --------
 drivers/ufs/ufs-uclass.c      | 14 ++++++--------
 6 files changed, 6 insertions(+), 48 deletions(-)

diff --git a/drivers/ufs/cdns-platform.c b/drivers/ufs/cdns-platform.c
index 510a6a6aa5d..87d9c5bad79 100644
--- a/drivers/ufs/cdns-platform.c
+++ b/drivers/ufs/cdns-platform.c
@@ -101,13 +101,6 @@ static int cdns_ufs_pltfm_probe(struct udevice *dev)
        return err;
 }
 
-static int cdns_ufs_pltfm_bind(struct udevice *dev)
-{
-       struct udevice *scsi_dev;
-
-       return ufs_scsi_bind(dev, &scsi_dev);
-}
-
 static const struct udevice_id cdns_ufs_pltfm_ids[] = {
        {
                .compatible = "cdns,ufshc-m31-16nm",
@@ -120,5 +113,4 @@ U_BOOT_DRIVER(cdns_ufs_pltfm) = {
        .id             = UCLASS_UFS,
        .of_match       = cdns_ufs_pltfm_ids,
        .probe          = cdns_ufs_pltfm_probe,
-       .bind           = cdns_ufs_pltfm_bind,
 };
diff --git a/drivers/ufs/ufs-amd-versal2.c b/drivers/ufs/ufs-amd-versal2.c
index 89931921ff9..bf23439e59d 100644
--- a/drivers/ufs/ufs-amd-versal2.c
+++ b/drivers/ufs/ufs-amd-versal2.c
@@ -552,13 +552,6 @@ static int ufs_versal2_probe(struct udevice *dev)
        return ret;
 }
 
-static int ufs_versal2_bind(struct udevice *dev)
-{
-       struct udevice *scsi_dev;
-
-       return ufs_scsi_bind(dev, &scsi_dev);
-}
-
 static const struct udevice_id ufs_versal2_ids[] = {
        {
                .compatible = "amd,versal2-ufs",
@@ -571,5 +564,4 @@ U_BOOT_DRIVER(ufs_versal2_pltfm) = {
        .id             = UCLASS_UFS,
        .of_match       = ufs_versal2_ids,
        .probe          = ufs_versal2_probe,
-       .bind           = ufs_versal2_bind,
 };
diff --git a/drivers/ufs/ufs-pci.c b/drivers/ufs/ufs-pci.c
index 871f3f50f5c..5b9c72a695d 100644
--- a/drivers/ufs/ufs-pci.c
+++ b/drivers/ufs/ufs-pci.c
@@ -11,13 +11,6 @@
 #include <dm/device_compat.h>
 #include "ufs.h"
 
-static int ufs_pci_bind(struct udevice *dev)
-{
-       struct udevice *scsi_dev;
-
-       return ufs_scsi_bind(dev, &scsi_dev);
-}
-
 static int ufs_pci_probe(struct udevice *dev)
 {
        int err;
@@ -32,7 +25,6 @@ static int ufs_pci_probe(struct udevice *dev)
 U_BOOT_DRIVER(ufs_pci) = {
        .name   = "ufs_pci",
        .id     = UCLASS_UFS,
-       .bind   = ufs_pci_bind,
        .probe  = ufs_pci_probe,
 };
 
diff --git a/drivers/ufs/ufs-qcom.c b/drivers/ufs/ufs-qcom.c
index 843585726c7..9f0a6940d98 100644
--- a/drivers/ufs/ufs-qcom.c
+++ b/drivers/ufs/ufs-qcom.c
@@ -648,13 +648,6 @@ static int ufs_qcom_probe(struct udevice *dev)
        return 0;
 }
 
-static int ufs_qcom_bind(struct udevice *dev)
-{
-       struct udevice *scsi_dev;
-
-       return ufs_scsi_bind(dev, &scsi_dev);
-}
-
 static const struct udevice_id ufs_qcom_ids[] = {
        { .compatible = "qcom,ufshc" },
        {},
@@ -665,6 +658,5 @@ U_BOOT_DRIVER(qcom_ufshcd) = {
        .id             = UCLASS_UFS,
        .of_match       = ufs_qcom_ids,
        .probe          = ufs_qcom_probe,
-       .bind           = ufs_qcom_bind,
        .priv_auto      = sizeof(struct ufs_qcom_priv),
 };
diff --git a/drivers/ufs/ufs-renesas.c b/drivers/ufs/ufs-renesas.c
index ae05bdc8102..0b74b39dc2a 100644
--- a/drivers/ufs/ufs-renesas.c
+++ b/drivers/ufs/ufs-renesas.c
@@ -351,13 +351,6 @@ static struct ufs_hba_ops ufs_renesas_vops = {
        .hce_enable_notify = ufs_renesas_hce_enable_notify,
 };
 
-static int ufs_renesas_pltfm_bind(struct udevice *dev)
-{
-       struct udevice *scsi_dev;
-
-       return ufs_scsi_bind(dev, &scsi_dev);
-}
-
 static int ufs_renesas_pltfm_probe(struct udevice *dev)
 {
        struct ufs_renesas_priv *priv = dev_get_priv(dev);
@@ -405,7 +398,6 @@ U_BOOT_DRIVER(ufs_renesas) = {
        .name           = "ufs-renesas",
        .id             = UCLASS_UFS,
        .of_match       = ufs_renesas_pltfm_ids,
-       .bind           = ufs_renesas_pltfm_bind,
        .probe          = ufs_renesas_pltfm_probe,
        .remove         = ufs_renesas_pltfm_remove,
        .priv_auto      = sizeof(struct ufs_renesas_priv),
diff --git a/drivers/ufs/ufs-uclass.c b/drivers/ufs/ufs-uclass.c
index c1f3301b37e..5dff5c3aaec 100644
--- a/drivers/ufs/ufs-uclass.c
+++ b/drivers/ufs/ufs-uclass.c
@@ -2030,14 +2030,6 @@ int ufshcd_probe(struct udevice *ufs_dev, struct 
ufs_hba_ops *hba_ops)
        return 0;
 }
 
-int ufs_scsi_bind(struct udevice *ufs_dev, struct udevice **scsi_devp)
-{
-       int ret = device_bind_driver(ufs_dev, "ufs_scsi", "ufs_scsi",
-                                    scsi_devp);
-
-       return ret;
-}
-
 #if IS_ENABLED(CONFIG_BOUNCE_BUFFER)
 static int ufs_scsi_buffer_aligned(struct udevice *scsi_dev, struct 
bounce_buffer *state)
 {
@@ -2092,8 +2084,14 @@ U_BOOT_DRIVER(ufs_scsi) = {
        .ops = &ufs_ops,
 };
 
+static int ufs_post_bind(struct udevice *dev)
+{
+       return device_bind_driver(dev, "ufs_scsi", "ufs_scsi", NULL);
+}
+
 UCLASS_DRIVER(ufs) = {
        .id                     = UCLASS_UFS,
        .name                   = "ufs",
+       .post_bind              = ufs_post_bind,
        .per_device_auto        = sizeof(struct ufs_hba),
 };
-- 
2.51.0

Reply via email to