[PATCH 06/15] scsi: Move vendor/product info into the shared struct

Simon Glass sjg at chromium.org
Sat Aug 27 17:15:04 CEST 2022


Move this information into struct scsi_emul_info so we can use it in
common code.

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

 drivers/usb/emul/sandbox_flash.c | 10 ++++------
 include/scsi_emul.h              |  5 +++++
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/emul/sandbox_flash.c b/drivers/usb/emul/sandbox_flash.c
index 3a9db835eed..eaa7f1e7ff6 100644
--- a/drivers/usb/emul/sandbox_flash.c
+++ b/drivers/usb/emul/sandbox_flash.c
@@ -245,12 +245,8 @@ static int handle_ufi_command(struct sandbox_flash_plat *plat,
 		memset(resp, '\0', sizeof(*resp));
 		resp->data_format = 1;
 		resp->additional_len = 0x1f;
-		strncpy(resp->vendor,
-			plat->flash_strings[STRINGID_MANUFACTURER -  1].s,
-			sizeof(resp->vendor));
-		strncpy(resp->product,
-			plat->flash_strings[STRINGID_PRODUCT - 1].s,
-			sizeof(resp->product));
+		strncpy(resp->vendor, info->vendor, sizeof(resp->vendor));
+		strncpy(resp->product, info->product, sizeof(resp->product));
 		strncpy(resp->revision, "1.0", sizeof(resp->revision));
 		setup_response(priv, resp, sizeof(*resp));
 		break;
@@ -406,6 +402,8 @@ static int sandbox_flash_probe(struct udevice *dev)
 	info->buff = malloc(SANDBOX_FLASH_BUF_SIZE);
 	if (!info->buff)
 		return log_ret(-ENOMEM);
+	info->vendor = plat->flash_strings[STRINGID_MANUFACTURER -  1].s;
+	info->product = plat->flash_strings[STRINGID_PRODUCT - 1].s;
 
 	return 0;
 }
diff --git a/include/scsi_emul.h b/include/scsi_emul.h
index f27c19750b0..b281c166f6f 100644
--- a/include/scsi_emul.h
+++ b/include/scsi_emul.h
@@ -15,6 +15,9 @@
 /**
  * struct scsi_emul_info - information for emulating a SCSI device
  *
+ * @vendor: Vendor name
+ * @product: Product name
+ *
  * @phase: Current SCSI phase
  * @buff_used: Number of bytes ready to transfer back to host
  * @read_len: Number of bytes of data left in the current read command
@@ -25,6 +28,8 @@
 struct scsi_emul_info {
 	/* provided by the caller: */
 	void *buff;
+	const char *vendor;
+	const char *product;
 
 	/* state maintained by the emulator: */
 	enum scsi_cmd_phase phase;
-- 
2.37.2.672.g94769d06f0-goog



More information about the U-Boot mailing list