]> git.sur5r.net Git - u-boot/blobdiff - drivers/scsi/scsi-uclass.c
mtd: nand: mxs_nand: use self init
[u-boot] / drivers / scsi / scsi-uclass.c
index 05da6cdeab8d98a00bc2a9588451cf56e95bc360..acf3b3dc9570483b408676f089149d4be31a78d5 100644 (file)
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (c) 2015 Google, Inc
  * Written by Simon Glass <sjg@chromium.org>
@@ -5,23 +6,34 @@
  * Written by Michal Simek
  *
  * Based on ahci-uclass.c
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
 #include <dm.h>
 #include <scsi.h>
 
-static int scsi_post_probe(struct udevice *dev)
+int scsi_exec(struct udevice *dev, struct scsi_cmd *pccb)
+{
+       struct scsi_ops *ops = scsi_get_ops(dev);
+
+       if (!ops->exec)
+               return -ENOSYS;
+
+       return ops->exec(dev, pccb);
+}
+
+int scsi_bus_reset(struct udevice *dev)
 {
-       debug("%s: device %p\n", __func__, dev);
-       scsi_low_level_init(0, dev);
-       return 0;
+       struct scsi_ops *ops = scsi_get_ops(dev);
+
+       if (!ops->bus_reset)
+               return -ENOSYS;
+
+       return ops->bus_reset(dev);
 }
 
 UCLASS_DRIVER(scsi) = {
        .id             = UCLASS_SCSI,
        .name           = "scsi",
-       .post_probe      = scsi_post_probe,
+       .per_device_platdata_auto_alloc_size = sizeof(struct scsi_platdata),
 };