aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-09-21 16:21:35 +0200
committerSimon Glass <sjg@chromium.org>2022-09-25 08:30:05 -0600
commit0e0b9e94595a706d86d8a9daca572da9a7de35a0 (patch)
tree0d8c1dc16d51ed61bf4a396b62f344abeea12312
parent8bae79744b39ee7725729673202477300b2f79bc (diff)
downloadu-boot-0e0b9e94595a706d86d8a9daca572da9a7de35a0.zip
u-boot-0e0b9e94595a706d86d8a9daca572da9a7de35a0.tar.gz
u-boot-0e0b9e94595a706d86d8a9daca572da9a7de35a0.tar.bz2
scsi: Move cmd_phase enum to the header
This can be used by common files, so move it to the SCSI header and rename it. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/usb/emul/sandbox_flash.c24
-rw-r--r--include/scsi.h13
2 files changed, 22 insertions, 15 deletions
diff --git a/drivers/usb/emul/sandbox_flash.c b/drivers/usb/emul/sandbox_flash.c
index 7de7521..806aed2 100644
--- a/drivers/usb/emul/sandbox_flash.c
+++ b/drivers/usb/emul/sandbox_flash.c
@@ -23,12 +23,6 @@ enum {
SANDBOX_FLASH_BLOCK_LEN = 512,
};
-enum cmd_phase {
- PHASE_START,
- PHASE_DATA,
- PHASE_STATUS,
-};
-
enum {
STRINGID_MANUFACTURER = 1,
STRINGID_PRODUCT,
@@ -56,7 +50,7 @@ struct sandbox_flash_priv {
int alloc_len;
int transfer_len;
int read_len;
- enum cmd_phase phase;
+ enum scsi_cmd_phase phase;
u32 tag;
int fd;
loff_t file_size;
@@ -290,7 +284,7 @@ static int handle_ufi_command(struct sandbox_flash_plat *plat,
return -EPROTONOSUPPORT;
}
- priv->phase = priv->transfer_len ? PHASE_DATA : PHASE_STATUS;
+ priv->phase = priv->transfer_len ? SCSIPH_DATA : SCSIPH_STATUS;
return 0;
}
@@ -307,7 +301,7 @@ static int sandbox_flash_bulk(struct udevice *dev, struct usb_device *udev,
switch (ep) {
case SANDBOX_FLASH_EP_OUT:
switch (priv->phase) {
- case PHASE_START:
+ case SCSIPH_START:
priv->alloc_len = 0;
priv->read_len = 0;
if (priv->error || len != UMASS_BBB_CBW_SIZE ||
@@ -322,7 +316,7 @@ static int sandbox_flash_bulk(struct udevice *dev, struct usb_device *udev,
priv->tag = cbw->dCBWTag;
return handle_ufi_command(plat, priv, cbw->CBWCDB,
cbw->bCDBLength);
- case PHASE_DATA:
+ case SCSIPH_DATA:
debug("data out\n");
break;
default:
@@ -330,7 +324,7 @@ static int sandbox_flash_bulk(struct udevice *dev, struct usb_device *udev,
}
case SANDBOX_FLASH_EP_IN:
switch (priv->phase) {
- case PHASE_DATA:
+ case SCSIPH_DATA:
debug("data in, len=%x, alloc_len=%x, priv->read_len=%x\n",
len, priv->alloc_len, priv->read_len);
if (priv->read_len) {
@@ -344,22 +338,22 @@ static int sandbox_flash_bulk(struct udevice *dev, struct usb_device *udev,
return -EIO;
priv->read_len -= len / SANDBOX_FLASH_BLOCK_LEN;
if (!priv->read_len)
- priv->phase = PHASE_STATUS;
+ priv->phase = SCSIPH_STATUS;
} else {
if (priv->alloc_len && len > priv->alloc_len)
len = priv->alloc_len;
if (len > sizeof(priv->buff))
len = sizeof(priv->buff);
memcpy(buff, priv->buff, len);
- priv->phase = PHASE_STATUS;
+ priv->phase = SCSIPH_STATUS;
}
return len;
- case PHASE_STATUS:
+ case SCSIPH_STATUS:
debug("status in, len=%x\n", len);
if (len > sizeof(priv->status))
len = sizeof(priv->status);
memcpy(buff, &priv->status, len);
- priv->phase = PHASE_START;
+ priv->phase = SCSIPH_START;
return len;
default:
break;
diff --git a/include/scsi.h b/include/scsi.h
index 99b00e2..a4f99f0 100644
--- a/include/scsi.h
+++ b/include/scsi.h
@@ -188,6 +188,19 @@ struct scsi_cmd {
#define SCSI_WRITE_SAME 0x41 /* Write Same (O) */
/**
+ * enum scsi_cmd_phase - current phase of the SCSI protocol
+ *
+ * @SCSIPH_START: Start phase
+ * @SCSIPH_DATA: Data phase
+ * @SCSIPH_STATUS: Status phase
+ */
+enum scsi_cmd_phase {
+ SCSIPH_START,
+ SCSIPH_DATA,
+ SCSIPH_STATUS,
+};
+
+/**
* struct scsi_plat - stores information about SCSI controller
*
* @base: Controller base address