Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932929AbcDTIPs (ORCPT ); Wed, 20 Apr 2016 04:15:48 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:41568 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932632AbcDTIPp (ORCPT ); Wed, 20 Apr 2016 04:15:45 -0400 Subject: Re: [PATCH v6 01/12] usb: hcd: Initialize hcd->flags to 0 To: Peter Chen , Alan Stern References: <20160418022956.GB32090@shlinux2.ap.freescale.net> <20160419015622.GH4477@shlinux2.ap.freescale.net> CC: Felipe Balbi , , , , , , , , , , , From: Roger Quadros Message-ID: <57173AA2.5080204@ti.com> Date: Wed, 20 Apr 2016 11:15:30 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <20160419015622.GH4477@shlinux2.ap.freescale.net> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2068 Lines: 56 On 19/04/16 04:56, Peter Chen wrote: > On Mon, Apr 18, 2016 at 10:11:29AM -0400, Alan Stern wrote: >> On Mon, 18 Apr 2016, Peter Chen wrote: >> >>> On Wed, Apr 06, 2016 at 09:32:22AM +0300, Roger Quadros wrote: >>>> On 06/04/16 09:09, Felipe Balbi wrote: >>>>> >>>>> Hi, >>>>> >>>>> Roger Quadros writes: >>>>>> diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c >>>>>> index 2ca2cef..6b1930d 100644 >>>>>> --- a/drivers/usb/core/hcd.c >>>>>> +++ b/drivers/usb/core/hcd.c >>>>>> @@ -2706,6 +2706,7 @@ int usb_add_hcd(struct usb_hcd *hcd, >>>>>> int retval; >>>>>> struct usb_device *rhdev; >>>>>> >>>>>> + hcd->flags = 0; >>>>> >>>>> seems like this would make more sense in usb_del_hcd() instead. >>>>> >>>> >>>> OK, I'll move it there. >>>> >>> >>> It depends on Alan's comments, whether only usb_add_hcd/usb_del_hcd >>> pair can be called repeat. If Alan acks it, I have no idea for it. >> >> Most of the host controller drivers were not written with this in mind, >> but I think it would be a good thing to allow. It would speed up the >> host/device role switches. >> >> This might mean we need to fix up several drivers to make them work >> correctly in an OTG environment. It should be possible to do this. Is >> there any particular reason why it would be difficult for Chipidea? >> > > I just want to do clean remove at OTG environment, like rmmod, so I did > this when I worked on chipidea OTG design. > I am worried if there are some resources dedicated for host device, eg, > clocks, gpio. etc. > > If OTG framework can know well hcd's add and remove, it is ok for chipidea > just calling usb_add_hcd/usb_del_hcd currently, but I suggested roger > adding platform hcd_ops as optional parameter in case the platform > has special requirement for hcd_ops. > We have 2 users now, omap + dwc3 and sh + EHCI/OHCI and we didn't seem to observe any issues with the usb_add/del_hcd approach. Let's keep things minimal for now. In the future, if users need something more we can always extend the framework. cheers, -roger