From patchwork Fri Jun 28 16:41:50 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?=C5=81ukasz_Majewski?= X-Patchwork-Id: 255472 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 86B6C2C0084 for ; Sat, 29 Jun 2013 02:43:02 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E339C4A01B; Fri, 28 Jun 2013 18:42:50 +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 MHDgPC9PAWOf; Fri, 28 Jun 2013 18:42:50 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 2E1F64A025; Fri, 28 Jun 2013 18:42:40 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 3FA1C4A01B for ; Fri, 28 Jun 2013 18:42:26 +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 wcbl78fWlMCO for ; Fri, 28 Jun 2013 18:42:24 +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 mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by theia.denx.de (Postfix) with ESMTP id AD6B04A01C for ; Fri, 28 Jun 2013 18:42:19 +0200 (CEST) Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MP4007UT3Q3MMQ0@mailout4.samsung.com> for u-boot@lists.denx.de; Sat, 29 Jun 2013 01:42:06 +0900 (KST) X-AuditID: cbfee61b-b7f8e6d00000524c-9f-51cdbcdd74d3 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id ED.6F.21068.DDCBDC15; Sat, 29 Jun 2013 01:42:06 +0900 (KST) Received: from mcdsrvbld02.digital.local ([106.116.37.23]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MP4004063PSMB10@mmp1.samsung.com>; Sat, 29 Jun 2013 01:42:05 +0900 (KST) From: Lukasz Majewski To: u-boot@lists.denx.de Date: Fri, 28 Jun 2013 18:41:50 +0200 Message-id: <1372437710-6361-2-git-send-email-l.majewski@samsung.com> X-Mailer: git-send-email 1.7.10 In-reply-to: <1372437710-6361-1-git-send-email-l.majewski@samsung.com> References: <1372437710-6361-1-git-send-email-l.majewski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprILMWRmVeSWpSXmKPExsVy+t9jAd17e84GGqx6wGax4859Zos3Dzcz Wrxpa2S02HV7MovF5MXzmS3e7u1kd2DzmPdzIpPHvFknWDzO3tnB6NG3ZRWjx/Eb25kCWKO4 bFJSczLLUov07RK4Mp7ee8pasJOn4khvP3MDYwtXFyMnh4SAicT74z9ZIWwxiQv31rN1MXJx CAksYpToOvsZyulikti0ZjoTSBWbgJ7E57tPwWwRAQmJX/1XGUGKmAW2MUrMbV8PNkpYwE6i 8X43I4jNIqAq0XO3H6yBV8BVovvSdKh18hJP7/exgdicAm4S9+b3sIPYQkA1/2d1Mk1g5F3A yLCKUTS1ILmgOCk910ivODG3uDQvXS85P3cTIzignknvYFzVYHGIUYCDUYmH98Xcs4FCrIll xZW5hxglOJiVRHi55wGFeFMSK6tSi/Lji0pzUosPMUpzsCiJ8x5stQ4UEkhPLEnNTk0tSC2C yTJxcEo1MEosWPRDckbiJe9zUxd+EmJsShUz6NDZ8nyzadU1/fcvZvdZrH3ie6BBNPnXUfne 1dMfNyT33O3e9IO962vVj91z3RUfF+4WlWFOkarlNO91drWJ+jyZubLt2vQQj/+Hpws6i69r kzCQWSeUIXB459f9Fzr9tzvPU+dkEJY5Pv/39/REZnsOPiWW4oxEQy3mouJEALOy1UskAgAA Cc: Tom Rini , Marek Vasut , Heiko Schocher , Pantelis Antoniou Subject: [U-Boot] [PATCH 2/2] dfu:ext4:fix Fix DFU upload functionality 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 For the first eMMC read of data for upload, use the "large" dfu_buf (now configurable) instead of usb request buffer allocated at composite layer (which is 4KiB) [*]. For eMMC the whole file is read, which usually is larger than the buffer [*] provided with usb request. Signed-off-by: Lukasz Majewski Cc: Tom Rini Cc: Pantelis Antoniou Cc: Marek Vasut Cc: Heiko Schocher --- drivers/dfu/dfu.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c index e429d74..0521752 100644 --- a/drivers/dfu/dfu.c +++ b/drivers/dfu/dfu.c @@ -248,7 +248,11 @@ int dfu_read(struct dfu_entity *dfu, void *buf, int size, int blk_seq_num) __func__, dfu->name, buf, size, blk_seq_num, dfu->i_buf); if (!dfu->inited) { - ret = dfu->read_medium(dfu, 0, buf, &dfu->r_left); + dfu->i_buf_start = dfu_get_buf(); + if (dfu->i_buf_start == NULL) + return -ENOMEM; + + ret = dfu->read_medium(dfu, 0, dfu->i_buf_start, &dfu->r_left); if (ret != 0) { debug("%s: failed to get r_left\n", __func__); return ret; @@ -259,9 +263,6 @@ int dfu_read(struct dfu_entity *dfu, void *buf, int size, int blk_seq_num) dfu->i_blk_seq_num = 0; dfu->crc = 0; dfu->offset = 0; - dfu->i_buf_start = dfu_get_buf(); - if (dfu->i_buf_start == NULL) - return -ENOMEM; dfu->i_buf_end = dfu_get_buf() + dfu_buf_size; dfu->i_buf = dfu->i_buf_start; dfu->b_left = 0;