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

Reply via email to