On 14 August 2015 at 02:11, Krzysztof Opasiak <k.opasiak@xxxxxxxxxxx> wrote: > > > On 08/13/2015 09:57 PM, Greg Kroah-Hartman wrote: >> >> On Thu, Aug 13, 2015 at 09:34:46PM +0200, Krzysztof Opasiak wrote: >>> >>> Hello, >>> >>> On 08/13/2015 09:12 PM, Amit Pundir wrote: >>>> >>>> his MTP function is based on years of work originally done in the >>>> Android kernel tree by: >>>> Mike Lockwood<lockwood@xxxxxxxxxxx> >>>> Benoit Goby<benoit@xxxxxxxxxxx> >>>> Colin Cross<ccross@xxxxxxxxxxx> >>>> Arve Hjønnevåg<arve@xxxxxxxxxxx> >>>> Peter Oh<poh@xxxxxxxxxxxx> >>>> Greg Hackmann<ghackmann@xxxxxxxxxx> >>>> Badhri Jagan Sridharan<Badhri@xxxxxxxxxx> >>>> I've folded the series up to make it easier to review, and to provide >>>> a coherent patch description. >>>> >>>> Post Gingerbread (Android v2.3), Android dropped USB Mass Storage >>>> in favor of Media Transfer Protocal (MTP), which is widely used for >>>> transferring media files to digital music players and similar >>>> applications. This USB gadget function implements MTP functionalty. >>>> >>>> Historically this function has been a part of Android composite >>>> gadget driver. Android composite driver was Android's solution >>>> for dynamic gadget function switching prior to the ConfigFS gadget >>>> being merged. There were failed few attempts in past >>>> http://marc.info/?l=linux-usb&m=132451695808552 to upstream Android >>>> composite driver as well. Now this Android MTP gadget function has been >>>> re-implemented so as to be used as a generic ConfigFS function instead. >>>> >>>> Again, many thanks to Mike, Benoit, Colin, Arve, Peter, Greg and Badhri, >>>> as they are the real authors of this work. However, I've folded their >>>> patches together and modified it enough that I don't want them to be >>>> blamed for any mistakes I've made condensing their patches down. >>>> >>>> Cc: Mike Lockwood<lockwood@xxxxxxxxxxx> >>>> Cc: Benoit Goby<benoit@xxxxxxxxxxx> >>>> Cc: Colin Cross<ccross@xxxxxxxxxxx> >>>> Cc: Arve Hjønnevåg<arve@xxxxxxxxxxx> >>>> Cc: Peter Oh<poh@xxxxxxxxxxxx> >>>> Cc: Greg Hackmann<ghackmann@xxxxxxxxxx> >>>> Cc: Badhri Jagan Sridharan<Badhri@xxxxxxxxxx> >>>> Cc: Android Kernel Team<kernel-team@xxxxxxxxxxx> >>>> Cc: Greg Kroah-Hartman<gregkh@xxxxxxxxxxxxxxxxxxx> >>>> Cc: Jonathan Corbet<corbet@xxxxxxx> >>>> Cc: Felipe Balbi<balbi@xxxxxx> >>>> Cc: Andrzej Pietrasiewicz<andrzej.p@xxxxxxxxxxx> >>>> Cc: Laurent Pinchart<laurent.pinchart@xxxxxxxxxxxxxxxx> >>>> Cc: Yegor Yefremov<yegorslists@xxxxxxxxxxxxxx> >>>> Cc: Philippe Reynes<tremyfr@xxxxxxxxx> >>>> Cc: John Stultz<john.stultz@xxxxxxxxxx> >>>> Cc: Sumit Semwal<sumit.semwal@xxxxxxxxxx> >>>> Signed-off-by: Amit Pundir<amit.pundir@xxxxxxxxxx> >>> >>> >>> In my humble opinion adding such function to Linux kernel doesn't make >>> any >>> sense. By design, MTP is a protocol which requires access to userspace >>> features esp. file system. It is very important to run MTP daemon with >>> suitable user and LSM label and many many other issues which should be >>> handled by userspace access policy. >>> >>> Moreover this is not a fully functional USB function but only some >>> interface >>> which can be used by mtp-responder (mtp-daemon - call it as you like) to >>> communicate with host. As we have FunctionFS which allows to implement >>> any >>> USB function in as a userspace service. As MTP nature is more related to >>> userspace I think that porting MTP daemon to use this is a right way to >>> go. >>> This should be much more reasonable than adding new function which also >>> requires daemon for proper working. So why add another interface while we >>> can use a generic one? Fairly valid point. I did see MTP mentioned in FunctionFS context in Documentation/usb/functionfs.txt but I could not find an open userpsace MTP daemon implementation based on F_FS to try. >> >> >> Isn't there already a userspace MTP daemon that uses the existing >> functionfs for usb gadgets? I thought I remember seeing that >> somewhere... >> > > I've found some interesting link[2] which may mean that Sailfish OS guys has > some mtp implementation with functionfs backend: > > <<<<< cite > > - /dev/mtp > mtp functionfs rw,relatime > >>>>>> cite > > Started digging and got it! > > This looks like mtp with ffs backend: > > https://github.com/nemomobile/buteo-mtp Thanks for the pointer. This "buteo-mtp" looks interesting. Regards, Amit Pundir > > Didn't tested, even didn't try to compile, no guarantee;) > > Footnotes: > 1 - > http://reviewjolla.blogspot.com/2014/06/techspecs-android-on-jolla-phone.html > > > Best regards, > > -- > Krzysztof Opasiak > Samsung R&D Institute Poland > Samsung Electronics -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html