All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Chen <hzpeterchen@gmail.com>
To: Roger Quadros <rogerq@ti.com>
Cc: peter.chen@freescale.com, balbi@kernel.org, tony@atomide.com,
	gregkh@linuxfoundation.org, dan.j.williams@intel.com,
	mathias.nyman@linux.intel.com, Joao.Pinto@synopsys.com,
	sergei.shtylyov@cogentembedded.com, jun.li@freescale.com,
	grygorii.strashko@ti.com, yoshihiro.shimoda.uh@renesas.com,
	robh@kernel.org, nsekhar@ti.com, b-liu@ti.com,
	linux-usb@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v9 08/14] usb: otg: add OTG/dual-role core
Date: Sun, 12 Jun 2016 18:56:27 +0800	[thread overview]
Message-ID: <20160612105627.GA32615@shlinux2> (raw)
In-Reply-To: <20160612062617.GC22054@shlinux2>

On Sun, Jun 12, 2016 at 02:26:17PM +0800, Peter Chen wrote:
> On Thu, Jun 09, 2016 at 10:24:44AM +0300, Roger Quadros wrote:
> > On 08/06/16 15:42, Peter Chen wrote:
> > > On Wed, Jun 08, 2016 at 01:12:10PM +0300, Roger Quadros wrote:
> > >> Hi,
> > >>
> > >> On 08/06/16 12:53, Peter Chen wrote:
> > >>> On Wed, Jun 08, 2016 at 12:03:40PM +0300, Roger Quadros wrote:
> > >>>> +int usb_otg_unregister(struct device *dev)
> > >>>> +{
> > >>>> +	struct usb_otg *otg;
> > >>>> +
> > >>>> +	mutex_lock(&otg_list_mutex);
> > >>>> +	otg = usb_otg_get_data(dev);
> > >>>> +	if (!otg) {
> > >>>> +		dev_err(dev, "otg: %s: device not in otg list\n",
> > >>>> +			__func__);
> > >>>> +		mutex_unlock(&otg_list_mutex);
> > >>>> +		return -EINVAL;
> > >>>> +	}
> > >>>> +
> > >>>> +	/* prevent unregister till both host & gadget have unregistered */
> > >>>> +	if (otg->host || otg->gadget) {
> > >>>> +		dev_err(dev, "otg: %s: host/gadget still registered\n",
> > >>>> +			__func__);
> > >>>
> > >>> You need to call mutex_unlock here
> > >>
> > >> Indeed. good catch.
> > >>>
> > >>>> +
> > >>>> +int usb_otg_gadget_ready(struct usb_gadget *gadget, bool ready)
> > >>>> +{
> > >>>
> > >>> What this API is for? Why need it in this version?
> > >>
> > >> we moved gadget to otg registration from udc_bind_to_driver() to usb_add_gadget_udc_release().
> > >> This means there is a window when gadget function driver (e.g. g_zero) is not loaded.
> > >> We don't want to start the gadget controller in that window.
> > >>
> > >> usb_otg_gadget_ready() is used by gadget core to notify the otg core when the function driver
> > >> is ready or not-ready.
> > >>
> > > 
> > > Why you need to move this from gadget's probe to udc's probe? Currently,
> > > the sequence of gadget and udc's probe is random, but udc_bind_to_driver
> > > is called when udc is ready.
> > > 
> > Because we need to support -EPROBE_DEFER at udc probe.
> > At udc_bind_to_driver there is no scope for -EPROBE_DEFER.
> > 
> 
> Why udc_bind_to_driver can't return -EPROBE_DEFER if register to OTG is
> failed?
> 
> > Another issue is that we need to register with otg and have otg->caps available
> > before driver->bind() is called in udc_bind_to_driver(). Else gadget function
> > will not have the correct OTG descriptor.
> > 
> 
> You can do register before calling driver->bind.
> 

Please skip my comments, I understand your changes now.

-- 

Best Regards,
Peter Chen

  reply	other threads:[~2016-06-12 11:02 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-08  9:03 [PATCH v9 00/14] USB OTG/dual-role framework Roger Quadros
2016-06-08  9:03 ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 01/14] usb: hcd: Initialize hcd->flags to 0 Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 02/14] usb: otg-fsm: Prevent build warning "VDBG" redefined Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08 11:39   ` Sergei Shtylyov
2016-06-08 11:39     ` Sergei Shtylyov
2016-06-08 12:04     ` Roger Quadros
2016-06-08 12:04       ` Roger Quadros
2016-06-08 12:10       ` Sergei Shtylyov
2016-06-08 12:10         ` Sergei Shtylyov
2016-06-09  7:31         ` Roger Quadros
2016-06-09  7:31           ` Roger Quadros
2016-06-09 10:16           ` Sergei Shtylyov
2016-06-09 14:11             ` Alan Stern
2016-06-09 14:11               ` Alan Stern
2016-06-10  7:01               ` Roger Quadros
2016-06-10  7:01                 ` Roger Quadros
2016-06-09  7:51   ` [PATCH v10 " Roger Quadros
2016-06-09  7:51     ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 04/14] usb: otg-fsm: use usb_otg wherever possible Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 05/14] usb: otg-fsm: move host controller operations into usb_otg->hcd_ops Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 06/14] usb: gadget.h: Add OTG to gadget interface Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 07/14] usb: otg: get rid of CONFIG_USB_OTG_FSM in favour of CONFIG_USB_OTG Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 08/14] usb: otg: add OTG/dual-role core Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:53   ` Peter Chen
2016-06-08 10:12     ` Roger Quadros
2016-06-08 10:12       ` Roger Quadros
2016-06-08 12:42       ` Peter Chen
2016-06-08 12:42         ` Peter Chen
2016-06-09  7:24         ` Roger Quadros
2016-06-09  7:24           ` Roger Quadros
2016-06-12  6:26           ` Peter Chen
2016-06-12  6:26             ` Peter Chen
2016-06-12 10:56             ` Peter Chen [this message]
2016-06-09  7:53   ` [PATCH v10 " Roger Quadros
2016-06-09  7:53     ` Roger Quadros
2016-06-09 12:34     ` Sergei Shtylyov
2016-06-10  7:04       ` Roger Quadros
2016-06-10  7:04         ` Roger Quadros
2016-06-10 10:19       ` Roger Quadros
2016-06-10 10:19         ` Roger Quadros
2016-06-10 10:44         ` Sergei Shtylyov
2016-06-10 10:44           ` Sergei Shtylyov
2016-06-10 10:54           ` Roger Quadros
2016-06-10 10:54             ` Roger Quadros
2016-06-10 11:02             ` Felipe Balbi
2016-06-10 11:02               ` Felipe Balbi
2016-06-08  9:03 ` [PATCH v9 09/14] usb: of: add an API to get OTG device from USB controller node Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 10/14] usb: otg: add hcd companion support Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 11/14] usb: otg: use dev_dbg() instead of VDBG() Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08 15:10   ` Joe Perches
2016-06-08 15:10     ` Joe Perches
2016-06-09  7:25     ` Roger Quadros
2016-06-09  7:25       ` Roger Quadros
2016-06-09  7:55   ` [PATCH v10 " Roger Quadros
2016-06-09  7:55     ` Roger Quadros
2016-06-09 15:43     ` Joe Perches
2016-06-09 15:43       ` Joe Perches
2016-06-10  7:05       ` Roger Quadros
2016-06-10  7:05         ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 12/14] usb: hcd: Adapt to OTG core Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-08 11:42   ` Sergei Shtylyov
2016-06-08 12:06     ` Roger Quadros
2016-06-08 12:06       ` Roger Quadros
2016-06-08 12:11       ` Sergei Shtylyov
2016-06-09  7:27         ` Roger Quadros
2016-06-09  7:27           ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 13/14] usb: gadget: udc: adapt " Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-09 10:49   ` Yoshihiro Shimoda
2016-06-09 10:49     ` Yoshihiro Shimoda
2016-06-10  7:06     ` Roger Quadros
2016-06-10  7:06       ` Roger Quadros
2016-06-08  9:03 ` [PATCH v9 14/14] usb: host: xhci-plat: Add otg device to platform data Roger Quadros
2016-06-08  9:03   ` Roger Quadros
2016-06-09  5:27 ` [PATCH v9 00/14] USB OTG/dual-role framework Peter Chen
2016-06-09  5:27   ` Peter Chen
2016-06-09  7:30   ` Roger Quadros
2016-06-09  7:30     ` Roger Quadros
2016-06-09 10:13     ` Yoshihiro Shimoda
2016-06-09 10:13       ` Yoshihiro Shimoda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160612105627.GA32615@shlinux2 \
    --to=hzpeterchen@gmail.com \
    --cc=Joao.Pinto@synopsys.com \
    --cc=b-liu@ti.com \
    --cc=balbi@kernel.org \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=grygorii.strashko@ti.com \
    --cc=jun.li@freescale.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=nsekhar@ti.com \
    --cc=peter.chen@freescale.com \
    --cc=robh@kernel.org \
    --cc=rogerq@ti.com \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=tony@atomide.com \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.