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.
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] --- 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.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.c b/drivers/ufs/ufs.c index c1f3301b37e..5dff5c3aaec 100644 --- a/drivers/ufs/ufs.c +++ b/drivers/ufs/ufs.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

