Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753419AbcCRHsA (ORCPT ); Fri, 18 Mar 2016 03:48:00 -0400 Received: from mail-ig0-f194.google.com ([209.85.213.194]:35852 "EHLO mail-ig0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751126AbcCRHr6 (ORCPT ); Fri, 18 Mar 2016 03:47:58 -0400 MIME-Version: 1.0 In-Reply-To: <20160317212603.GA16651@amd> References: <20160317212603.GA16651@amd> Date: Fri, 18 Mar 2016 09:47:57 +0200 Message-ID: Subject: Re: usb: gadget breakage on N900: bind UDC by name passed via usb_gadget_driver structure From: Ruslan Bilovol To: Pavel Machek Cc: pali.rohar@gmail.com, sre@kernel.org, kernel list , linux-arm-kernel , linux-omap , Tony Lindgren , khilman@kernel.org, aaro.koskinen@iki.fi, ivo.g.dimitrov.75@gmail.com, patrikbachan@gmail.com, serge@hallyn.com, Maxime Ripard , Marek Szyprowski , Peter Chen , "Balbi, Felipe" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2141 Lines: 64 Hi Pavel On Thu, Mar 17, 2016 at 11:26 PM, Pavel Machek wrote: > Hi! > > USB gadget stops working for me on n900, if I merge Could you please give us more details? Which gadget driver do you use (g_nokia?) > > usb: gadget: bind UDC by name passed via usb_gadget_driver structure > > patch. > > commit 2284b29d3d9dd16490909962574d7f3fef83fd97 > Author: Ruslan Bilovol > Date: Mon Nov 23 09:56:35 2015 +0100 > > usb: gadget: bind UDC by name passed via usb_gadget_driver > structure > > Introduce new 'udc_name' member to usb_gadget_driver structure. > The 'udc_name' is a name of UDC that usb_gadget_driver should > be bound to. If udc_name is NULL, it will be bound to any > available UDC. > > Tested-by: Maxime Ripard > Signed-off-by: Ruslan Bilovol > Signed-off-by: Marek Szyprowski > Tested-by: Peter Chen > Signed-off-by: Felipe Balbi > > > Patch is obvious enough... if there's someone who sets udc_name to > NULL. Who is supposed to do that? That is done automatically if you use libcomposite. There is a static usb_gadget_driver composite_driver_template structure in composite.c that is used in usb_composite_probe later (used by libcomposite based gadgets). Since it's statically declared, 'udc_name' member is set to NULL automatically. Other gadgets (not based on libcomposite) use same approach with statically declared usb_gadget_driver structure. > > (I have patch in my tree to make USB gadget work when it is not > modular). So this can be reproduced only on builtin gadget, right? BTW, I have N900 and can try to play with it this weekend if you'll give us more details. Best regards, Ruslan > > Best regards, > Pavel > -- > (english) http://www.livejournal.com/~pavelmachek > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html