All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Quadros <rogerq@ti.com>
To: Peter Chen <Peter.Chen@freescale.com>
Cc: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"balbi@ti.com" <balbi@ti.com>,
	"stern@rowland.harvard.edu" <stern@rowland.harvard.edu>,
	"dan.j.williams@intel.com" <dan.j.williams@intel.com>,
	"Jun.Li@freescale.com" <Jun.Li@freescale.com>,
	"mathias.nyman@linux.intel.com" <mathias.nyman@linux.intel.com>,
	"tony@atomide.com" <tony@atomide.com>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"macpaul@gmail.com" <macpaul@gmail.com>
Subject: Re: [RFC][PATCH v2 00/13] USB: OTG/DRD Core functionality
Date: Tue, 21 Apr 2015 10:34:01 +0300	[thread overview]
Message-ID: <5535FD69.6070900@ti.com> (raw)
In-Reply-To: <BY1PR0301MB0855ACDA4337AE3FC7F616E081EF0@BY1PR0301MB0855.namprd03.prod.outlook.com>

On 21/04/15 09:04, Peter Chen wrote:
>  
>>
>> On 20/04/15 06:05, Peter Chen wrote:
>>> On Tue, Apr 14, 2015 at 01:41:47PM +0300, Roger Quadros wrote:
>>>> This is an attempt to centralize OTG/Dual-role functionality in the kernel.
>>>> As of now I've got Dual-role functionality working pretty reliably on
>>>> dra7-evm. xhci side of things for OTG/DRD use are fixed in
>>>> http://thread.gmane.org/gmane.linux.kernel/1923161
>>>
>>> Hi Roger,
>>>
>>> Currently, there are two main problems for DRD/OTG framework.
>>>
>>> - For multi-platform supports, we may define CONFIG_USB_OTG, but the
>>> gadget should not add its otg descriptor to its configuration
>>> descriptors if it does not support one of otg features (SRP/HNP/ADP).
>>> Macpaul Lin's patch set [1] is the right way to do it.
>>
>> Agreed. That check (whether OTG descriptor can be added and which version
>> of it) has to be done at runtime and it must be added only if hardware supports
>> OTG _and_ kernel OTG support is enabled.
>>
> 
> Ok, let's put this patch set in mainline first, since your patch set may need some
> information from it.
>  
>>> - We are lack of framework to handle OTG (DRD) switch, it is great you
>>> are designing it. The main problem for this framework is how to handle
>>> DRD/OTG FSM unify. My thought is we add two paths for them separate.
>>> For easy, I suggest if the platform supports one of otg features, then
>>> it goes to fully otg fsm, else it goes to simply otg fsm (like your
>>> drd fsm). If you agree with it too, you may not need to add another
>> "dr_mode"
>>> value.
>>
>> It would be nice that way but unfortunately it does't work in all cases.
>> e.g. What if the SoC itself supports all OTG features but the board is not
>> designed for OTG. Or the product designer simply is not interested in full OTG
>> support but just dual-role. So we need some flexibility for the device
>> tree/platform-data to specify that. This is where a new "dr_mode" == "dual-
>> role" is needed.
>>
> 
> Since "dr_mode" has been widely used now, if we add a new property for it,  we
> need to change all drivers.
> 
> Your OTG/DRD framework needs to (partial) use otg fsm, and we will not teach old
> driver to use it since there are some driver related stuffs.

fair enough. Let's not change dr_mode then and decide based on other parameters.

> 
> SRP/HNP/ADP support can be board level capabilities, and we may consider the
> otg device which does not support otg fsm (hardware finishes fsm). So I suggest
> we have below properties at dts:
> 
> - otg-support /* fully otg support */
> - otg-fsm-support /* fully otg fsm support */

what is the difference between otg-support and otg-fsm-support?

> - otg-ver /* eh & otg supplement version */

we can get otg version from the OTG controller. What exactly is the
otg-ver in dts for?

> - adp-support /* board adp support */ 
> - srp-support /* board srp support */
> - hnp-support /* board hnp support */

So if these options are not provided in DTS but the OTG core supports them then
we keep the respective feature disabled?
Won't this need dts change for existing boards?

Instead how about having disable flags instead.
 - adp-disable	/* board doesn't support adp */
 - srp-disable	/* board doesn't support srp */
 - hnp-disable	/* board doesn't support hnp */

Now, if the flags are not provided in dts we use the OTG core's flags.

> 
> Currently, if CONFIG_USB_OTG and CONFIG_USB_OTG_FSM are enabled, we will
> have otg fsm code (usb-otg-fsm.c).
> 
> if (otg-support & otg-fsm-support)
> 	this device has fully otg support, and will follow full otg fsm transitions. 
> else
> 	this device is drd, and will follow simple otg fsm transtions. 
> 

cheers,
-roger


  reply	other threads:[~2015-04-21  7:34 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-14 10:41 [RFC][PATCH v2 00/13] USB: OTG/DRD Core functionality Roger Quadros
2015-04-14 10:41 ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 01/13] usb: otg-fsm: Add documentation for struct otg_fsm Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-16 11:32   ` Peter Chen
2015-04-16 11:32     ` Peter Chen
2015-04-17  8:45     ` Roger Quadros
2015-04-17  8:45       ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 02/13] usb: otg-fsm: support multiple instances Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-16 11:36   ` Peter Chen
2015-04-16 11:36     ` Peter Chen
2015-04-16 11:58     ` Roger Quadros
2015-04-16 11:58       ` Roger Quadros
2015-04-16 12:06       ` Peter Chen
2015-04-16 12:06         ` Peter Chen
2015-04-14 10:41 ` [RFC][PATCH v2 03/13] usb: otg-fsm: Prevent build warning "VDBG" redefined Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-16 11:41   ` Peter Chen
2015-04-16 11:41     ` Peter Chen
2015-04-16 11:59     ` Roger Quadros
2015-04-16 11:59       ` Roger Quadros
2015-04-16 12:07       ` Peter Chen
2015-04-16 12:07         ` Peter Chen
2015-04-14 10:41 ` [RFC][PATCH v2 04/13] usb: gadget: add usb_gadget_start/stop() Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-16 11:48   ` Peter Chen
2015-04-16 11:48     ` Peter Chen
2015-04-16 12:07     ` Roger Quadros
2015-04-16 12:07       ` Roger Quadros
2015-04-16 12:12       ` Peter Chen
2015-04-16 12:12         ` Peter Chen
2015-04-14 10:41 ` [RFC][PATCH v2 05/13] usb: otg: add OTG core Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-15  9:29   ` Paul Bolle
2015-04-15 13:24     ` Roger Quadros
2015-04-15 13:24       ` Roger Quadros
2015-04-16 12:02   ` Peter Chen
2015-04-16 12:02     ` Peter Chen
2015-04-16 13:04     ` Roger Quadros
2015-04-16 13:04       ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 06/13] usb: hcd: Add hcd add/remove functions for OTG use Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-17  2:18   ` Peter Chen
2015-04-17  2:18     ` Peter Chen
2015-04-17  7:21     ` Roger Quadros
2015-04-17  7:21       ` Roger Quadros
2015-04-17 14:03       ` Alan Stern
2015-04-17 14:03         ` Alan Stern
2015-04-20  7:00         ` Roger Quadros
2015-04-20  7:00           ` Roger Quadros
2015-04-20 13:56           ` Alan Stern
2015-04-20 13:56             ` Alan Stern
2015-04-21  7:02             ` Roger Quadros
2015-04-21  7:02               ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 07/13] usb: otg: Add dual-role device (DRD) support Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 08/13] usb: otg: hub: Notify OTG fsm when A device sets b_hnp_enable Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-17  2:28   ` Peter Chen
2015-04-17  2:28     ` Peter Chen
2015-04-17  7:32     ` Roger Quadros
2015-04-17  7:32       ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 09/13] usb: gadget: udc: adapt to OTG Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 10/13] udc-core: fix lock circular dependency on udc_lock Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 11/13] usb: add "dual-role" mode to dr_mode device tree helper Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-14 10:41 ` [RFC][PATCH v2 12/13] usb: dwc3: add dual-role support Roger Quadros
2015-04-14 10:41   ` Roger Quadros
2015-04-14 10:42 ` [RFC][PATCH v2 13/13] ARM: dts: dra7x-evm: Enable dual-role for usb1 Roger Quadros
2015-04-14 10:42   ` Roger Quadros
2015-04-20  3:05 ` [RFC][PATCH v2 00/13] USB: OTG/DRD Core functionality Peter Chen
2015-04-20  3:05   ` Peter Chen
2015-04-20  7:28   ` Roger Quadros
2015-04-20  7:28     ` Roger Quadros
2015-04-21  6:04     ` Peter Chen
2015-04-21  6:04       ` Peter Chen
2015-04-21  7:34       ` Roger Quadros [this message]
2015-04-22  2:17         ` Peter Chen
2015-04-22  7:33           ` Roger Quadros
2015-04-22  7:33             ` Roger Quadros
2015-04-22  9:22             ` Peter Chen
2015-04-22 12:42               ` Roger Quadros
2015-04-23  1:52                 ` Peter Chen
2015-04-23  6:35                   ` Roger Quadros

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=5535FD69.6070900@ti.com \
    --to=rogerq@ti.com \
    --cc=Jun.Li@freescale.com \
    --cc=Peter.Chen@freescale.com \
    --cc=balbi@ti.com \
    --cc=dan.j.williams@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=macpaul@gmail.com \
    --cc=mathias.nyman@linux.intel.com \
    --cc=stern@rowland.harvard.edu \
    --cc=tony@atomide.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.