All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
To: Li Jun <jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
	balbi-l0cyMroinI0@public.gmane.org,
	peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	pawel.moll-5wv7dgnIgG8@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	macpaul-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Subject: Re: [PATCH v2 09/22] usb: gadget: add usb_otg_descriptor_add interface to init usb_otg_descriptor
Date: Tue, 9 Jun 2015 16:08:20 +0300	[thread overview]
Message-ID: <20150609160820.696cd062@rockdesk> (raw)
In-Reply-To: <1433775737-9816-10-git-send-email-jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>

On Mon, 8 Jun 2015 23:02:04 +0800
Li Jun <jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org> wrote:

> Allocate usb_otg_descriptor and initialize it according to gadget otg
> options, if none of options is not set, keep bmAttributes setting as
> current gadget drivers, with this new interface, usb_otg_descriptor can
> include bcdOTG if OTG 2.0 or later, and otg features can be decided by
> the combination of usb hardware property and driver config.
> 
> Signed-off-by: Li Jun <jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
> ---
>  drivers/usb/gadget/config.c | 37 +++++++++++++++++++++++++++++++++++++
>  include/linux/usb/gadget.h  |  1 +
>  2 files changed, 38 insertions(+)
> 
> diff --git a/drivers/usb/gadget/config.c b/drivers/usb/gadget/config.c
> index 34e12fc..a86e079 100644
> --- a/drivers/usb/gadget/config.c
> +++ b/drivers/usb/gadget/config.c
> @@ -195,3 +195,40 @@ void usb_free_all_descriptors(struct usb_function *f)
>  	usb_free_descriptors(f->ss_descriptors);
>  }
>  EXPORT_SYMBOL_GPL(usb_free_all_descriptors);
> +
> +struct usb_otg_descriptor *usb_otg_descriptor_add(struct usb_gadget *gadget)
> +{
> +	struct usb_otg_descriptor *otg_desc;
> +	unsigned otg_desc_length;
> +
> +	if (gadget->otg_rev >= 0x0200)
> +		otg_desc_length = sizeof(*otg_desc) + sizeof(struct bcdOTG);
> +	else
> +		otg_desc_length = sizeof(*otg_desc);

This is wrong as otg_desc already contains bcdOTG in it.

> +
> +	otg_desc = (struct usb_otg_descriptor *)kzalloc(otg_desc_length,
> +								GFP_KERNEL);
> +	if (!otg_desc)
> +		return otg_desc;
> +
> +	otg_desc->bLength = otg_desc_length;
> +	otg_desc->bDescriptorType = USB_DT_OTG;
> +
> +	if (gadget->adp_support || gadget->hnp_support ||
> +					gadget->srp_support) {
> +		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;
> +	} else {
> +		otg_desc->bmAttributes = USB_OTG_SRP | USB_OTG_HNP;
> +	}
> +
> +	if (gadget->otg_rev >= 0x0200)
> +		otg_desc->otg_rev[0].bcdOTG = cpu_to_le16(gadget->otg_rev);
> +
> +	return otg_desc;
> +}
> +EXPORT_SYMBOL_GPL(usb_otg_descriptor_add);
> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
> index 2f4f39c..e210466 100644
> --- a/include/linux/usb/gadget.h
> +++ b/include/linux/usb/gadget.h
> @@ -1013,6 +1013,7 @@ int usb_assign_descriptors(struct usb_function *f,
>  		struct usb_descriptor_header **ss);
>  void usb_free_all_descriptors(struct usb_function *f);
>  
> +struct usb_otg_descriptor *usb_otg_descriptor_add(struct usb_gadget *gadget);
>  /*-------------------------------------------------------------------------*/
>  
>  /* utility to simplify map/unmap of usb_requests to/from DMA */

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

  parent reply	other threads:[~2015-06-09 13:08 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
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 [this message]
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=20150609160820.696cd062@rockdesk \
    --to=rogerq-l0cymroini0@public.gmane.org \
    --cc=balbi-l0cyMroinI0@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=jun.li-KZfg59tc24xl57MIdRCFDg@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=peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@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 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.