Usually it takes a lot longer. West Bridge can do MTP transfers at the performance of the storage device.
Sending the file data through the processor is typically much slower.
Thanks, I have seen this as well. This is not a driver though, it is an
MTP protocol stack. This is similar to the applications I have worked
with. The driver is not attempting to replace either the protocol stack
or the use of gadgetfs. All that it is providing is a gadget peripheral
controller driver (that can be used with gadgetfs) along with the
ability to perform pre-allocation and allow for direct transfer. I
re-checked this stack once again to make sure that it had not
fundamentally changed and it seems not to have. What it uses is a
storageserver abstraction to the file system. At the low level this is
still operating on files at the level of open(), read(), write(),
close(). There is no alloc() in the list that I can see. So, I agree
that there is a working stack. As you can tell, the driver is not
attempting to re-create or replace this working stack.
Judging by the current batch of Android phones: run a video conference, update a users twitter page,
take high resolution photographs, get live stock updates via desktop
widget, receive a phone call, play back Youtube, stream Pandora, manage
media content, post a new profile picture on facebook, get corporate
email, etc. I am sure we can both come up with many more examples.
This is so far not an issue for removable media. Do I really need to handle NTFS interoperability now?
If so, do you agree with Christoph's feedback concerning the implementation? Could I add
hooks to other file systems and leave them unpopulated?
Where do you see pre-allocation done in the Buteo MTP stack? Looking at
the implementation, it appears to be allocated during write wherein a
data buffer and pointer is passed in.
If there were a user space method to pre-allocate the file, it would
definitely trim down the ioctls in the gadget driver. Instead of
pre-allocating the file, we would just need to send down the physical
block numbers for the transfer destination. I am still not seeing where
this user space method exists though.
Thanks,
David
---------------------------------------------------------------
This message and any attachments may contain Cypress (or its
subsidiaries) confidential information. If it has been received
in error, please advise the sender and immediately delete this
message.
---------------------------------------------------------------
--