mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
ANDROID: usb: gadget: f_mtp: Set 0xFFFFFFFF in mtp header ContainerLength field
Value 0xFFFFFFFF should be set according specification of MTP for large files when fileSize + mtpHeader is greater than 0xFFFFFFFF. MTP Specification, Appendix H - USB Optimizations Patchset: mtp Change-Id: I6213de052914350be2f87b73f8135f9c0cd05d7c Signed-off-by: Witold Sciuk <witold.sciuk@intel.com> Signed-off-by: Konrad Leszczynski <konrad.leszczynski@intel.com> Signed-off-by: Russ Weight <russell.h.weight@intel.com>
This commit is contained in:
committed by
Dmitry Shmidt
parent
e88bb963b8
commit
6db5c3eae7
@@ -43,6 +43,7 @@
|
||||
#define MTP_BULK_BUFFER_SIZE 16384
|
||||
#define INTR_BUFFER_SIZE 28
|
||||
#define MAX_INST_NAME_LEN 40
|
||||
#define MTP_MAX_FILE_SIZE 0xFFFFFFFFL
|
||||
|
||||
/* String IDs */
|
||||
#define INTERFACE_STRING_INDEX 0
|
||||
@@ -766,7 +767,12 @@ static void send_file_work(struct work_struct *data)
|
||||
if (hdr_size) {
|
||||
/* prepend MTP data header */
|
||||
header = (struct mtp_data_header *)req->buf;
|
||||
header->length = __cpu_to_le32(count);
|
||||
/*
|
||||
* set file size with header according to
|
||||
* MTP Specification v1.0
|
||||
*/
|
||||
header->length = (count > MTP_MAX_FILE_SIZE) ?
|
||||
MTP_MAX_FILE_SIZE : __cpu_to_le32(count);
|
||||
header->type = __cpu_to_le16(2); /* data packet */
|
||||
header->command = __cpu_to_le16(dev->xfer_command);
|
||||
header->transaction_id =
|
||||
|
||||
Reference in New Issue
Block a user