The Media Transfer Protocol (MTP) was invented as a transactional file system for media players, based on the Picture Transfer Protocol (PTP), an ISO standard used by cameras. It was a marginal project until all Android devices started shipping with an MTP stack. Now most everyone doing consumer devices deploy this protocol, so let us show you how this looks from the host side: what happens when a library (MTP responder) tries to talk to all these wildly diverging MTP implementations out there.
Linus Walleij is a kernel developer at Linaro working on various embedded ARM systems, and a subsystem maintainer for the GPIO and pin control subsystems. Apart from the Linux kernel he works on libmtp and Fedora packages in his spare time.