From 0c12d9dd23a3bce38170db2bab0cc326def6a1db Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 21 Sep 2022 16:21:38 +0200 Subject: [PATCH] scsi: Move vendor/product info into the shared struct Move this information into struct scsi_emul_info so we can use it in common code. Signed-off-by: Simon Glass --- 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 3a9db835ee..eaa7f1e7ff 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 f27c19750b..b281c166f6 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.39.5