From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Thu, 10 May 2018 12:58:20 +0200 Subject: [U-Boot] [PATCH 2/2] gadget: f_thor: update to support more than 4GB file as thor 5.0 In-Reply-To: <1525917135-19761-2-git-send-email-sw0312.kim@samsung.com> References: <1525917135-19761-1-git-send-email-sw0312.kim@samsung.com> <1525917135-19761-2-git-send-email-sw0312.kim@samsung.com> Message-ID: <20180510125820.0ed7d7b3@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Seung-Woo, > During file download, it only uses 32bit variable for file size and > it limits maximum file size less than 4GB. Update to support more > than 4GB file with using two 32bit variables for file size as thor > protocol 5.0. I assume that it was also tested that this patch will not break devices already using protocol version 4 (like some hobbysts trats2 users, or odroid XU3)? To be more specific - is the init_data[1] zeroed in the earlier version (version 4) of the THOR protocol? > > Signed-off-by: Seung-Woo Kim > --- > drivers/usb/gadget/f_thor.c | 10 +++++++--- > drivers/usb/gadget/f_thor.h | 2 +- > 2 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/gadget/f_thor.c b/drivers/usb/gadget/f_thor.c > index 6d38cb6..c8eda05 100644 > --- a/drivers/usb/gadget/f_thor.c > +++ b/drivers/usb/gadget/f_thor.c > @@ -262,8 +262,10 @@ static long long int process_rqt_download(const > struct rqt_box *rqt) > switch (rqt->rqt_data) { > case RQT_DL_INIT: > - thor_file_size = rqt->int_data[0]; > - debug("INIT: total %d bytes\n", rqt->int_data[0]); > + thor_file_size = (unsigned long long > int)rqt->int_data[0] + > + (((unsigned long long > int)rqt->int_data[1]) > + << 32); > + debug("INIT: total %llu bytes\n", thor_file_size); > break; > case RQT_DL_FILE_INFO: > file_type = rqt->int_data[0]; > @@ -274,7 +276,9 @@ static long long int process_rqt_download(const > struct rqt_box *rqt) break; > } > > - thor_file_size = rqt->int_data[1]; > + thor_file_size = (unsigned long long > int)rqt->int_data[1] + > + (((unsigned long long > int)rqt->int_data[2]) > + << 32); > memcpy(f_name, rqt->str_data[0], F_NAME_BUF_SIZE); > f_name[F_NAME_BUF_SIZE] = '\0'; > > diff --git a/drivers/usb/gadget/f_thor.h b/drivers/usb/gadget/f_thor.h > index 47abc8a..8ba3fa2 100644 > --- a/drivers/usb/gadget/f_thor.h > +++ b/drivers/usb/gadget/f_thor.h > @@ -34,7 +34,7 @@ struct usb_cdc_attribute_vendor_descriptor { > __u8 DAUValue; > } __packed; > > -#define VER_PROTOCOL_MAJOR 4 > +#define VER_PROTOCOL_MAJOR 5 > #define VER_PROTOCOL_MINOR 0 > > enum rqt { Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: