hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * Copyright (c) 2015 Google, Inc
 * Written by Simon Glass <sjg@chromium.org>
 * Copyright (c) 2016 Xilinx, Inc
 * Written by Michal Simek
 *
 * Based on ahci-uclass.c
 *
 * SPDX-License-Identifier:    GPL-2.0+
 */
 
#include <common.h>
#include <dm.h>
#include <scsi.h>
 
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)
{
   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",
   .per_device_platdata_auto_alloc_size = sizeof(struct scsi_platdata),
};