summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@chromium.org>2012-03-12 23:18:41 -0700
committerGerrit <chrome-bot@google.com>2012-03-13 18:02:19 -0700
commit632de4e223f51b84539307ca12703b21b5d7f5f5 (patch)
treee9c8ce27eafd3366dbc62e4363dc8c06475c4fbd
parent460709b5b6358924d6cdeb4c56d85c721e1aed38 (diff)
gen: Make the SCSI and USB drivers compile with the CONFIG_SYS_64BIT_LBA option
These drivers wouldn't compile when the CONFIG_SYS_64BIT_LBA option is turned on because the used fixed size data types in their exported functions when they should have used lbaint_t for the block count parameter. That meant that when the sizes happened to be the same, when using a 28 bit LBA, the driver would build, but when it wasn't, a 48 bit LBA, things broke. This change adjusts the signatures to use the right type and makes small adjustments in the affected functions. BUG=chrome-os-partner:8180 TEST=Built for emeraldlake2 with the CONFIG_SYS_64BIT_LBA option enabled and saw its compile errors go away. Change-Id: I7443b5976d3d06b82070344011fba46a28bd77de Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/18058 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Stefan Reinauer <reinauer@google.com>
-rw-r--r--common/cmd_scsi.c14
-rw-r--r--common/usb_storage.c14
2 files changed, 16 insertions, 12 deletions
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
index 7bfb3b421b..5ecbad040f 100644
--- a/common/cmd_scsi.c
+++ b/common/cmd_scsi.c
@@ -84,8 +84,8 @@ void scsi_setup_inquiry(ccb * pccb);
void scsi_ident_cpy (unsigned char *dest, unsigned char *src, unsigned int len);
-ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer);
-ulong scsi_write(int device, ulong blknr, ulong blkcnt, const void *buffer);
+ulong scsi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer);
+ulong scsi_write(int device, ulong blknr, lbaint_t blkcnt, const void *buffer);
/*********************************************************************************
@@ -499,9 +499,10 @@ int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
#define SCSI_MAX_READ_BLK 0xFFFF /* almost the maximum amount of the scsi_ext command.. */
-ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer)
+ulong scsi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer)
{
- ulong start,blks, buf_addr;
+ lbaint_t start, blks;
+ uintptr_t buf_addr;
unsigned short smallblks;
ccb* pccb=(ccb *)&tempccb;
device&=0xff;
@@ -548,9 +549,10 @@ ulong scsi_read(int device, ulong blknr, ulong blkcnt, void *buffer)
/* Almost the maximum amount of the scsi_ext command.. */
#define SCSI_MAX_WRITE_BLK 0xFFFF
-ulong scsi_write(int device, ulong blknr, ulong blkcnt, const void *buffer)
+ulong scsi_write(int device, ulong blknr, lbaint_t blkcnt, const void *buffer)
{
- ulong start, blks, buf_addr;
+ lbaint_t start, blks;
+ uintptr_t buf_addr;
unsigned short smallblks;
ccb* pccb = (ccb *)&tempccb;
device &= 0xff;
diff --git a/common/usb_storage.c b/common/usb_storage.c
index 413562607a..c36e641ee6 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -173,9 +173,9 @@ int usb_stor_get_info(struct usb_device *dev, struct us_data *us,
int usb_storage_probe(struct usb_device *dev, unsigned int ifnum,
struct us_data *ss);
unsigned long usb_stor_read(int device, unsigned long blknr,
- unsigned long blkcnt, void *buffer);
+ lbaint_t blkcnt, void *buffer);
unsigned long usb_stor_write(int device, unsigned long blknr,
- unsigned long blkcnt, const void *buffer);
+ lbaint_t blkcnt, const void *buffer);
struct usb_device * usb_get_dev_index(int index);
void uhci_show_temp_int_td(void);
@@ -1061,9 +1061,10 @@ static void usb_bin_fixup(struct usb_device_descriptor descriptor,
#define USB_MAX_READ_BLK 20
unsigned long usb_stor_read(int device, unsigned long blknr,
- unsigned long blkcnt, void *buffer)
+ lbaint_t blkcnt, void *buffer)
{
- unsigned long start, blks, buf_addr;
+ lbaint_t start, blks;
+ uintptr_t buf_addr;
unsigned short smallblks;
struct usb_device *dev;
int retry, i;
@@ -1138,9 +1139,10 @@ retry_it:
#define USB_MAX_WRITE_BLK 20
unsigned long usb_stor_write(int device, unsigned long blknr,
- unsigned long blkcnt, const void *buffer)
+ lbaint_t blkcnt, const void *buffer)
{
- unsigned long start, blks, buf_addr;
+ lbaint_t start, blks;
+ uintptr_t buf_addr;
unsigned short smallblks;
struct usb_device *dev;
int retry, i;