From patchwork Sat Oct 13 00:26:07 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 191267 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 55E0C2C008F for ; Sat, 13 Oct 2012 11:26:58 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 95D9D4A1FA; Sat, 13 Oct 2012 02:26:56 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id H6fV8E6T7dDt; Sat, 13 Oct 2012 02:26:56 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 11C614A16C; Sat, 13 Oct 2012 02:26:52 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D84584A1EF for ; Sat, 13 Oct 2012 02:26:49 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bmmvFo5ZJfyN for ; Sat, 13 Oct 2012 02:26:49 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-wi0-f202.google.com (mail-wi0-f202.google.com [209.85.212.202]) by theia.denx.de (Postfix) with ESMTPS id 3EDB04A16C for ; Sat, 13 Oct 2012 02:26:47 +0200 (CEST) Received: by mail-wi0-f202.google.com with SMTP id hr7so2401wib.3 for ; Fri, 12 Oct 2012 17:26:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=2aKWjYOwqwUvqrxdWsWbzG1OjWgtzKdZcKVr1IadrJc=; b=gCk/mPJ+IURhpLORSSHnaOEv07LKtWx5N7SBQlqxjCn+tK0ABP29HMCg9D0O82K5K5 7wOpJekTPBpVDjLdBnnlEwGKaU6B35n3hCqbtwaOrfkUey7qpi6XZkGBmENh4M+LFelg RpZt6jxvhb0hp0GSLeLu36Rtr20YbQbyta2VoDacSdj7C6NuP8qsqghE76LLM68lHwKe V1fdGnwWMEaDqAwA5QLRhLSZNh9ozJabDg296n6QC7/gCNbi8xxRUsj65YXH/p2dIzMC CCggB1yQo5Ej/oIA7z+OrVKWA9DEJ5OmNY06Ugcw0snR74eFv/OBVSjo5L9+EBhc8Zsc cTZQ== Received: by 10.180.73.134 with SMTP id l6mr979750wiv.1.1350088006952; Fri, 12 Oct 2012 17:26:46 -0700 (PDT) Received: from hpza10.eem.corp.google.com ([74.125.121.33]) by gmr-mx.google.com with ESMTPS id hm1si9424wib.3.2012.10.12.17.26.46 (version=TLSv1/SSLv3 cipher=AES128-SHA); Fri, 12 Oct 2012 17:26:46 -0700 (PDT) Received: from kaka.mtv.corp.google.com (kaka.mtv.corp.google.com [172.22.73.79]) by hpza10.eem.corp.google.com (Postfix) with ESMTP id 50F9120004E; Fri, 12 Oct 2012 17:26:46 -0700 (PDT) Received: by kaka.mtv.corp.google.com (Postfix, from userid 121222) id AD13A160B41; Fri, 12 Oct 2012 17:26:45 -0700 (PDT) From: Simon Glass To: U-Boot Mailing List Date: Fri, 12 Oct 2012 17:26:07 -0700 Message-Id: <1350087972-1581-2-git-send-email-sjg@chromium.org> X-Mailer: git-send-email 1.7.7.3 In-Reply-To: <1350087972-1581-1-git-send-email-sjg@chromium.org> References: <1350087972-1581-1-git-send-email-sjg@chromium.org> X-Gm-Message-State: ALoCoQmaA9EQQTQ4w1UMBVlfM3gGTn32XmTq5Skq60ho6ueD20jH+8u7Pg13+BUQx9HrYM+ZhLQiL1pNL3WDsoSipcYyxt4O3KQstKM4TVLqxdt4N4xVf84wkxpPLxpYDZ8FhLVyl75uwNHxxQgexyEZt45LUuZMP80jHWoZy8fGK5U5gkNHx9UYollmdSrAWNOiVMC50L/5 Cc: Tom Rini Subject: [U-Boot] [PATCH 2/7] usb: Support the CONFIG_SYS_64BIT_LBA option X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de From: Gabe Black usb_storage 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. Signed-off-by: Gabe Black Signed-off-by: Simon Glass Reviewed-by: Marek Vasut --- common/usb_storage.c | 24 ++++++++++++++---------- 1 files changed, 14 insertions(+), 10 deletions(-) diff --git a/common/usb_storage.c b/common/usb_storage.c index 950451e..0c2a4c7 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -179,9 +179,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); @@ -1053,9 +1053,10 @@ static void usb_bin_fixup(struct usb_device_descriptor descriptor, #endif /* CONFIG_USB_BIN_FIXUP */ 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; struct us_data *ss; @@ -1084,7 +1085,7 @@ unsigned long usb_stor_read(int device, unsigned long blknr, start = blknr; blks = blkcnt; - USB_STOR_PRINTF("\nusb_read: dev %d startblk %lx, blccnt %lx" + USB_STOR_PRINTF("\nusb_read: dev %d startblk " LBAF ", blccnt " LBAF " buffer %lx\n", device, start, blks, buf_addr); do { @@ -1114,7 +1115,8 @@ retry_it: } while (blks != 0); ss->flags &= ~USB_READY; - USB_STOR_PRINTF("usb_read: end startblk %lx, blccnt %x buffer %lx\n", + USB_STOR_PRINTF("usb_read: end startblk " LBAF + ", blccnt %x buffer %lx\n", start, smallblks, buf_addr); usb_disable_asynch(0); /* asynch transfer allowed */ @@ -1124,9 +1126,10 @@ retry_it: } 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; struct us_data *ss; @@ -1156,7 +1159,7 @@ unsigned long usb_stor_write(int device, unsigned long blknr, start = blknr; blks = blkcnt; - USB_STOR_PRINTF("\nusb_write: dev %d startblk %lx, blccnt %lx" + USB_STOR_PRINTF("\nusb_write: dev %d startblk " LBAF ", blccnt " LBAF " buffer %lx\n", device, start, blks, buf_addr); do { @@ -1188,7 +1191,8 @@ retry_it: } while (blks != 0); ss->flags &= ~USB_READY; - USB_STOR_PRINTF("usb_write: end startblk %lx, blccnt %x buffer %lx\n", + USB_STOR_PRINTF("usb_write: end startblk " LBAF + ", blccnt %x buffer %lx\n", start, smallblks, buf_addr); usb_disable_asynch(0); /* asynch transfer allowed */