mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 15:37:23 +00:00
gadget: f_thor: update to support more than 4GB file as thor 5.0
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. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
This commit is contained in:
parent
f9e8dc0abd
commit
1fe9ae76b1
2 changed files with 8 additions and 4 deletions
|
@ -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';
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue