From: Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
To: Li Jun <b47624-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Li Jun-B47624 <Jun.Li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
Greg Kroah-Hartman
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>,
Chen Peter-B29397
<Peter.Chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org>,
Linux USB List
<linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Macpaul Lin <macpaul-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [PATCH v2 05/22] doc: dt-binding: usb: add otg related properties
Date: Mon, 15 Jun 2015 10:51:03 +0300 [thread overview]
Message-ID: <20150615105103.38ad1246@rockdesk> (raw)
In-Reply-To: <20150615063244.GA20680@shlinux2>
On Mon, 15 Jun 2015 14:32:46 +0800
Li Jun <b47624-KZfg59tc24xl57MIdRCFDg@public.gmane.org> wrote:
> On Fri, Jun 12, 2015 at 11:31:02AM +0300, Roger Quadros wrote:
> >
> >
> > On Fri, 12 Jun 2015 11:09:17 +0800
> > Li Jun <b47624-KZfg59tc24xl57MIdRCFDg@public.gmane.org> wrote:
> >
> [...]
>
> > > Other than those new flags, I have not found other good way to judge
> > > whether some platform is a legacy one.
> > > Directly use dt property? Then above code has to be moved to controller
> > > driver, consequently the usb_otg_descriptor has to be allocated by
> > > controller driver at runtime, and I have to create some new way to pass it
> > > to gadget driver, for those legacy platform, I still need gadget driver to
> > > allocate it...too complicated.
> >
> > Right. let's not do that.
> >
> > >
> > > (You know, there are 2 different otg_desc structures: otg_desc and
> > > otg_20_desc, I need select one and allocate it at runtime)
> > >
> > > > This also has a side effect of SRP and HNP being enabled for any platform
> > > > even if enable-srp/enable-hnp is not set in DT.
> > > That's the current situation before my patch, not the side effect
> > > brought by me.
> >
> > Agreed. I was thinking of fixing that side effect but if you want
> > legacy behaviour as well then it looks like it can't be done.
> >
> > >
> > > > This will be more of a bug than supporting legacy users.
> > > I have to leave the _existing_ bug there, because I can't know
> > > which platform can really support HNP/SRP, which one cannot.
> > > So I do not fix the _existing_ bug, meanwhile I also do not introduce
> > > a new bug either. If some legacy platform with this bug, want to fix it,
> > > fine, use dt or other way to set gadget->xyz_support correctly
> > > in its controller driver, no more change needed.
> > >
> > > Any other reason you think enable flags are still not reasonable?
> >
> > Yes. We can't specify that we don't want all 3 features from DT.
> > It will treat it as legacy and enable HNP/SRP. ;)
> >
> > This is true for dual-role devices. We set dr_mode = "otg"
> > but disable all 3 features.
> >
> > >
> > > >
> > > > Instead we could have ADP disabled by default for all cases
> > > > and expect enable-adp in DT to get it enabled. SRP/HNP could still
> > > > be disable flags.
> > > >
> > > Yes, this can work, but seems they look some odd:), some are xxx_disable,
> > > some are xxx_enable.
> > >
> > > > Then your above code reduces to
> > > >
> > > > if (gadget->adp_support)
> > > > otg_desc->bmAttributes |= USB_OTG_ADP;
> > > > if (gadget->hnp_support)
> > > > otg_desc->bmAttributes |= USB_OTG_HNP;
> > > > if (gadget->srp_support)
> > > > otg_desc->bmAttributes |= USB_OTG_SRP;
> > > >
> > > Yes if those code is put in controller driver of new platforms.
> > > No if we put it in common routine and called by both new and
> > > legacy platforms.
> >
> > Agreed. We still need to determine legacy platform if
> > none of the features are set.
> >
> > How about defining the followong enum for gadget->xyz_support
> >
> > enum otg_feature {
> > OTG_FEATURE_UNDEFINED = 0,
> > OTG_FEATURE_ENABLED,
> > OTG_FEATURE_DISABLED,
> > };
> >
> > for legacy platforms this will be UNDEFINED for all so you can detect it
> > and continue legacy behaviour i.e. enable HNP/SRP, disable ADP.
> >
> > For new platforms at least one of them won't be UNDEFINED so you can
> > enable the feature if ENABLED and disable if UNDEFINED/DISABLED.
> >
>
> Then some legacy platform will have problem if it wants to use those
> new properties and flags, the existing DTs cannot work as before, E.g. for
> some controller driver, before my patch, the HNP/SRP are enabled,
> ADP is disabled, after utilize those new properties and flags in its
> controller driver, it becomes a new platform, but the existing DTs
> using this controller driver did not pass any xyz_disable, so
> gadget->xyz_support will be updated to be OTG_FEATURE_ENABLED, and
> the result will be HNP/SRP/ADP all are enabled.
Good point.
I was under the impression that if controller drivers change the platform
is no longer legacy but that is not always the case.
I agree that we are restricted to use enable flags in DT if we want to retain
OTG capability behaviour for legacy platforms.
cheers,
-roger
>
> In some controller driver:
> if (xyz_disable_property_appear_in_dt())
> gadget->xyz_support = OTG_FEATURE_DISABLED;
> else
> gadget->xyz_support = OTG_FEATURE_ENABLED;
> The existing/old DT with this controller driver will enable all
> OTG features no matter it support it or not, but it does not want
> ADP.
>
> Li Jun
> > We can still keep disable flags so that users can disable all 3 OTG features
> > while in OTG mode.
> >
> > cheers,
> > -roger
> >
> > > >
> > > > >
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-06-15 7:51 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-08 15:01 [PATCH v2 00/22] usb gadget update for OTG 2.0 Li Jun
[not found] ` <1433775737-9816-1-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-08 15:01 ` [PATCH v2 01/22] usb: add OTG version number in usb_otg_descriptor Li Jun
[not found] ` <1433775737-9816-2-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-09 12:25 ` Roger Quadros
2015-06-09 12:56 ` Roger Quadros
2015-06-09 13:51 ` Li Jun
[not found] ` <20150609135130.GA20453-KgLukfWpBlCctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2015-06-09 14:16 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1506091013460.1324-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2015-06-09 15:15 ` Roger Quadros
2015-06-10 13:53 ` Li Jun
2015-06-08 15:01 ` [PATCH v2 02/22] usb: add USB_OTG_ADP definition Li Jun
2015-06-08 15:01 ` [PATCH v2 03/22] usb: add OTG feature options to gadget structure Li Jun
[not found] ` <1433775737-9816-4-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-09 13:23 ` Roger Quadros
2015-06-08 15:01 ` [PATCH v2 04/22] usb: gadget: composite: add USB_DT_OTG request handling Li Jun
[not found] ` <1433775737-9816-5-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-09 12:27 ` Roger Quadros
2015-06-09 13:55 ` Li Jun
2015-06-08 15:02 ` [PATCH v2 05/22] doc: dt-binding: usb: add otg related properties Li Jun
[not found] ` <1433775737-9816-6-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-08 16:06 ` Rob Herring
[not found] ` <CAL_JsqJ3hHOGevwqcBNFN2LrTP7Bm_k9SDuTNKBbpq5W-eLmdw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-09 1:18 ` Li Jun
[not found] ` <20150609011806.GA7976-KgLukfWpBlCctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2015-06-09 13:26 ` Rob Herring
[not found] ` <CAL_JsqKg_NYtLGg9RUQOpKscwHEskHO4_Szo_nM3BnrDdhg3fg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-09 15:29 ` Roger Quadros
2015-06-09 16:33 ` Rob Herring
[not found] ` <CAL_JsqJ+q5hs26FaLXG1LVb0asE-UZ5hXar2FeVAJN=S8=CG3w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-10 7:37 ` Roger Quadros
2015-06-10 13:47 ` Li Jun
2015-06-11 7:18 ` Roger Quadros
2015-06-11 8:20 ` Li Jun
2015-06-11 12:37 ` Roger Quadros
2015-06-11 14:11 ` Li Jun
2015-06-11 14:52 ` Roger Quadros
2015-06-12 3:09 ` Li Jun
2015-06-12 8:31 ` Roger Quadros
2015-06-15 6:32 ` Li Jun
2015-06-15 7:51 ` Roger Quadros [this message]
2015-06-15 7:41 ` Li Jun
2015-06-15 7:56 ` Roger Quadros
2015-06-15 12:25 ` Sergei Shtylyov
[not found] ` <557EC44C.4050306-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org>
2015-06-15 13:10 ` Li Jun
2015-06-10 12:06 ` Li Jun
2015-06-11 7:30 ` Roger Quadros
2015-06-11 8:38 ` Li Jun
2015-06-11 12:51 ` Roger Quadros
2015-06-11 14:22 ` Li Jun
2015-06-11 14:55 ` Roger Quadros
2015-06-12 1:42 ` Li Jun
2015-06-12 8:02 ` Roger Quadros
2015-06-12 8:23 ` Li Jun
2015-06-12 8:41 ` Roger Quadros
2015-06-12 9:09 ` Li Jun
2015-06-12 8:42 ` Roger Quadros
2015-06-12 2:49 ` Peter Chen
2015-06-10 11:20 ` Li Jun
2015-06-09 12:49 ` Roger Quadros
2015-06-08 15:02 ` [PATCH v2 06/22] usb: common: add API to get usb otg features from device tree Li Jun
[not found] ` <1433775737-9816-7-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-09 12:55 ` Roger Quadros
2015-06-09 13:58 ` Li Jun
2015-06-09 14:15 ` Li Jun
[not found] ` <20150609141552.GD20453-KgLukfWpBlCctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2015-06-09 15:20 ` Roger Quadros
2015-06-08 15:02 ` [PATCH v2 07/22] usb: chipidea: udc: set usb gadeget's otg config Li Jun
[not found] ` <1433775737-9816-8-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-09 13:03 ` Roger Quadros
2015-06-08 15:02 ` [PATCH v2 08/22] usb: chipidea: update ci_otg_is_fsm_mode conditions Li Jun
2015-06-08 15:02 ` [PATCH v2 09/22] usb: gadget: add usb_otg_descriptor_add interface to init usb_otg_descriptor Li Jun
[not found] ` <1433775737-9816-10-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-09 13:08 ` Roger Quadros
2015-06-09 13:27 ` Roger Quadros
2015-06-10 14:02 ` Li Jun
2015-06-08 15:02 ` [PATCH v2 10/22] usb: gadget: configfs: init and add usb_otg_descriptor for usb configurations Li Jun
[not found] ` <1433775737-9816-11-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-06-09 13:33 ` Roger Quadros
2015-06-08 15:02 ` [PATCH v2 11/22] usb: gadget: ether: init usb_otg_descriptor via usb_otg_descriptor_add Li Jun
2015-06-08 15:02 ` [PATCH v2 12/22] usb: gadget: acm_ms: " Li Jun
2015-06-08 15:02 ` [PATCH v2 13/22] usb: gadget: audio: " Li Jun
2015-06-08 15:02 ` [PATCH v2 14/22] usb: gadget: cdc2: " Li Jun
2015-06-08 15:02 ` [PATCH v2 15/22] usb: gadget: g_ffs: " Li Jun
2015-06-08 15:02 ` [PATCH v2 16/22] usb: gadget: hid: " Li Jun
2015-06-08 15:02 ` [PATCH v2 17/22] usb: gadget: mass_storage: " Li Jun
2015-06-08 15:02 ` [PATCH v2 18/22] usb: gadget: multi: " Li Jun
2015-06-08 15:02 ` [PATCH v2 19/22] usb: gadget: ncm: " Li Jun
2015-06-08 15:02 ` [PATCH v2 20/22] usb: gadget: printer: " Li Jun
2015-06-08 15:02 ` [PATCH v2 21/22] usb: gadget: serial: " Li Jun
2015-06-08 15:02 ` [PATCH v2 22/22] usb: gadget: zero: " Li Jun
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=20150615105103.38ad1246@rockdesk \
--to=rogerq-l0cymroini0@public.gmane.org \
--cc=Jun.Li-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=Peter.Chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=b47624-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=balbi-l0cyMroinI0@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=macpaul-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).