Performs code cleanup by making common function for usb_read_10/ usb_write_10. Currently only difference in these fucntions is use of SCSI_READ10/SCSI_WRITE10 scsi commands.
Signed-off-by: Rajesh Bhagat <rajesh.bha...@nxp.com> --- Changes in v7: - Makes common function for usb_read_10/usb_write_10 common/usb_storage.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/common/usb_storage.c b/common/usb_storage.c index 7e6e52d..98798b5 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); -} - - #ifdef CONFIG_USB_BIN_FIXUP /* * Some USB storage devices queried for SCSI identification data respond with -- 2.6.2.198.g614a2ac _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot