summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-03-14 06:55:21 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-03-14 06:55:21 -0700
commit0bea34fc3ec5dfd8d0e7483368875b457b7e2262 (patch)
tree1e5d36aaa84f53ffaf5aaf01984a61ef5a5ff186 /media
parentc37febe285defa623e456678f63fbd27b3317ebb (diff)
parentdec0b755fff1bf87aafd397ef0dd864f54c587cf (diff)
downloadframeworks_base-0bea34fc3ec5dfd8d0e7483368875b457b7e2262.zip
frameworks_base-0bea34fc3ec5dfd8d0e7483368875b457b7e2262.tar.gz
frameworks_base-0bea34fc3ec5dfd8d0e7483368875b457b7e2262.tar.bz2
am dec0b755: Merge "MTP host: Fix problems reading large data packets" into honeycomb-mr1
* commit 'dec0b755fff1bf87aafd397ef0dd864f54c587cf': MTP host: Fix problems reading large data packets
Diffstat (limited to 'media')
-rw-r--r--media/mtp/MtpDataPacket.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/media/mtp/MtpDataPacket.cpp b/media/mtp/MtpDataPacket.cpp
index 801edb0..0b0c80d 100644
--- a/media/mtp/MtpDataPacket.cpp
+++ b/media/mtp/MtpDataPacket.cpp
@@ -28,7 +28,7 @@
namespace android {
MtpDataPacket::MtpDataPacket()
- : MtpPacket(512),
+ : MtpPacket(16384), // MAX_USBFS_BUFFER_SIZE
mOffset(MTP_CONTAINER_HEADER_SIZE)
{
}
@@ -399,10 +399,10 @@ int MtpDataPacket::read(struct usb_request *request) {
if (length >= MTP_CONTAINER_HEADER_SIZE) {
// look at the length field to see if the data spans multiple packets
uint32_t totalLength = MtpPacket::getUInt32(MTP_CONTAINER_LENGTH_OFFSET);
+ allocate(totalLength);
while (totalLength > length) {
- allocate(length + mAllocationIncrement);
request->buffer = mBuffer + length;
- request->buffer_length = mAllocationIncrement;
+ request->buffer_length = totalLength - length;
int ret = transfer(request);
if (ret >= 0)
length += ret;