[U-Boot] [PATCH v2 06/26] dm: pci: scsi: Use driver-model PCI API

Simon Glass sjg at chromium.org
Sun Nov 29 21:17:51 CET 2015


Adjust the SCSI command to use driver model for its PCI interface.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

Changes in v2:
- Use dm_pci_get_bdf()

 common/cmd_scsi.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
index 31c4319..8695408 100644
--- a/common/cmd_scsi.c
+++ b/common/cmd_scsi.c
@@ -184,7 +184,7 @@ int scsi_get_disk_count(void)
 #if defined(CONFIG_PCI) && !defined(CONFIG_SCSI_AHCI_PLAT)
 void scsi_init(void)
 {
-	int busdevfunc;
+	int busdevfunc = -1;
 	int i;
 	/*
 	 * Find a device from the list, this driver will support a single
@@ -192,9 +192,21 @@ void scsi_init(void)
 	 */
 	for (i = 0; i < ARRAY_SIZE(scsi_device_list); i++) {
 		/* get PCI Device ID */
+#ifdef CONFIG_DM_PCI
+		struct udevice *dev;
+		int ret;
+
+		ret = dm_pci_find_device(scsi_device_list[i].vendor,
+					 scsi_device_list[i].device, 0, &dev);
+		if (!ret) {
+			busdevfunc = dm_pci_get_bdf(dev);
+			break;
+		}
+#else
 		busdevfunc = pci_find_device(scsi_device_list[i].vendor,
 					     scsi_device_list[i].device,
 					     0);
+#endif
 		if (busdevfunc != -1)
 			break;
 	}
-- 
2.6.0.rc2.230.g3dd15c0



More information about the U-Boot mailing list