Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6db5c3ea authored by Witold Sciuk's avatar Witold Sciuk Committed by Dmitry Shmidt
Browse files

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: default avatarWitold Sciuk <witold.sciuk@intel.com>
Signed-off-by: default avatarKonrad Leszczynski <konrad.leszczynski@intel.com>
Signed-off-by: default avatarRuss Weight <russell.h.weight@intel.com>
parent e88bb963
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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 =