[U-Boot] [PATCH v6 1/2] common: usb_storage: Make common function for usb_stor_read/usb_stor_write
Marek Vasut
marex at denx.de
Thu Jun 16 00:03:04 CEST 2016
On 06/15/2016 09:00 AM, Rajesh Bhagat wrote:
> Performs code cleanup by making common function for usb_stor_read/
> usb_stor_write. Currently only difference in these fucntions is call
> to usb_read_10/usb_write_10 scsi commands.
>
> Signed-off-by: Rajesh Bhagat <rajesh.bhagat at nxp.com>
> ---
> Changes in v6:
> - Removes USB_STOR_OP_TYPE macro and adds __func__ in debug prints
> - Unifies usb_read_10/usb_write_10 functions to usb_read_write_10
>
> Changes in v5:
> - Converts USB_STOR_OPERATION_FUNC macro to a function
> - Corrects the multi line comment accroding to coding style
> - Renames variable to dev to remove code duplication
>
> Changes in v4:
> - Adds code to make common function for read/write
>
> common/usb_storage.c | 147 +++++++++++++--------------------------------------
> 1 file changed, 36 insertions(+), 111 deletions(-)
>
> diff --git a/common/usb_storage.c b/common/usb_storage.c
> index 7e6e52d..41e5aa3 100644
> --- a/common/usb_storage.c
> +++ b/common/usb_storage.c
> @@ -1046,11 +1046,11 @@ static int usb_read_capacity(ccb *srb, struct us_data *ss)
> return -1;
> }
>
> -static int usb_read_10(ccb *srb, struct us_data *ss, unsigned long start,
> - unsigned short blocks)
> +static int usb_read_write_10(ccb *srb, struct us_data *ss, unsigned long start,
> + unsigned short blocks, bool is_write)
> {
> memset(&srb->cmd[0], 0, 12);
> - srb->cmd[0] = SCSI_READ10;
> + srb->cmd[0] = is_write ? SCSI_WRITE10 : SCSI_READ10;
> srb->cmd[1] = srb->lun << 5;
> srb->cmd[2] = ((unsigned char) (start >> 24)) & 0xff;
> srb->cmd[3] = ((unsigned char) (start >> 16)) & 0xff;
> @@ -1059,28 +1059,10 @@ static int usb_read_10(ccb *srb, struct us_data *ss, unsigned long start,
> srb->cmd[7] = ((unsigned char) (blocks >> 8)) & 0xff;
> srb->cmd[8] = (unsigned char) blocks & 0xff;
> srb->cmdlen = 12;
> - debug("read10: start %lx blocks %x\n", start, blocks);
> + debug("%s: start %lx blocks %x\n", __func__, start, blocks);
> return ss->transport(srb, ss);
> }
>
> -static int usb_write_10(ccb *srb, struct us_data *ss, unsigned long start,
> - unsigned short blocks)
> -{
> - memset(&srb->cmd[0], 0, 12);
> - srb->cmd[0] = SCSI_WRITE10;
> - srb->cmd[1] = srb->lun << 5;
> - srb->cmd[2] = ((unsigned char) (start >> 24)) & 0xff;
> - srb->cmd[3] = ((unsigned char) (start >> 16)) & 0xff;
> - srb->cmd[4] = ((unsigned char) (start >> 8)) & 0xff;
> - srb->cmd[5] = ((unsigned char) (start)) & 0xff;
> - srb->cmd[7] = ((unsigned char) (blocks >> 8)) & 0xff;
> - srb->cmd[8] = (unsigned char) blocks & 0xff;
> - srb->cmdlen = 12;
> - debug("write10: start %lx blocks %x\n", start, blocks);
> - return ss->transport(srb, ss);
> -}
> -
This stuff should be in a separate patch, otherwise it's not bisectable.
Looks pretty OK otherwise.
[...]
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list