Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754706AbbHNJyI (ORCPT ); Fri, 14 Aug 2015 05:54:08 -0400 Received: from mail-ob0-f171.google.com ([209.85.214.171]:33142 "EHLO mail-ob0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753742AbbHNJyE convert rfc822-to-8bit (ORCPT ); Fri, 14 Aug 2015 05:54:04 -0400 MIME-Version: 1.0 In-Reply-To: <55CD0108.4060303@samsung.com> References: <1439493140-22207-1-git-send-email-amit.pundir@linaro.org> <1439493140-22207-2-git-send-email-amit.pundir@linaro.org> <55CCF156.8010302@samsung.com> <20150813195748.GB30092@kroah.com> <55CD0108.4060303@samsung.com> From: Amit Pundir Date: Fri, 14 Aug 2015 15:23:23 +0530 Message-ID: Subject: Re: [RFC][PATCH 1/2] usb: gadget: configfs: add MTP function To: Krzysztof Opasiak Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-api@vger.kernel.org, Mike Lockwood , Benoit Goby , Colin Cross , =?UTF-8?B?QXJ2ZSBIasO4bm5ldsOlZw==?= , Peter Oh , Greg Hackmann , Badhri Jagan Sridharan , Android Kernel Team , Jonathan Corbet , Felipe Balbi , Andrzej Pietrasiewicz , Laurent Pinchart , Yegor Yefremov , Philippe Reynes , John Stultz , Sumit Semwal Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4954 Lines: 131 On 14 August 2015 at 02:11, Krzysztof Opasiak 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 >>>> Benoit Goby >>>> Colin Cross >>>> Arve Hjønnevåg >>>> Peter Oh >>>> Greg Hackmann >>>> Badhri Jagan Sridharan >>>> 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 >>>> Cc: Benoit Goby >>>> Cc: Colin Cross >>>> Cc: Arve Hjønnevåg >>>> Cc: Peter Oh >>>> Cc: Greg Hackmann >>>> Cc: Badhri Jagan Sridharan >>>> Cc: Android Kernel Team >>>> Cc: Greg Kroah-Hartman >>>> Cc: Jonathan Corbet >>>> Cc: Felipe Balbi >>>> Cc: Andrzej Pietrasiewicz >>>> Cc: Laurent Pinchart >>>> Cc: Yegor Yefremov >>>> Cc: Philippe Reynes >>>> Cc: John Stultz >>>> Cc: Sumit Semwal >>>> Signed-off-by: Amit Pundir >>> >>> >>> 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-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/