public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot PATCH V2 5/9] usb: ums: add functions to set and get usb interface descriptor
Date: Wed, 19 Apr 2017 17:29:51 +0200	[thread overview]
Message-ID: <20170419172951.521922ec@jawa> (raw)
In-Reply-To: <20170416155414.14746-6-eddie.cai.linux@gmail.com>

Hi Eddie,

> add functions to set and get usb interface descriptor, so people can
> customize usb interface descriptor

The f_mass_storage USB function is used through the g_dnl code:

./drivers/usb/gadget/g_dnl.c


Other gadget functions - like dfu and thor are using it.

Please consider following this scheme - for example look into the
Samsung's Thor protocol support at:

./drivers/usb/gadget/f_thor.c


Since we managed to add Thor (vendor specific protocol), then it should
be doable to add rockusb as well.

Another good example of this framework reuse is f_fastboot.c to support
Android fastboot protocol.

Please consider if rockchip could be added in the same manner.


> 
> Signed-off-by: Eddie Cai <eddie.cai.linux@gmail.com>
> ---
>  drivers/usb/gadget/f_mass_storage.c | 18 ++++++++++++++++++
>  include/f_mass_storage.h            |  2 ++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/drivers/usb/gadget/f_mass_storage.c
> b/drivers/usb/gadget/f_mass_storage.c index faf875e..333f069 100644
> --- a/drivers/usb/gadget/f_mass_storage.c
> +++ b/drivers/usb/gadget/f_mass_storage.c
> @@ -2870,6 +2870,24 @@ static int fsg_bind_config(struct
> usb_composite_dev *cdev, return rc;
>  }
>  
> +struct usb_interface_descriptor
> *fsg_get_usb_interface_descriptor(void) +{

To adjust the usb descriptor one can use:

g_dnl_bind_fixup() function (defined at g_dnl.c).

It is used to adjust information added to USB file descriptor - e.g.
board/samsung/common/gadget.c or board/siemens/common/factoryreset.c

> +	return &fsg_intf_desc;
> +}
> +
> +void fsg_set_usb_interface_descriptor(struct
> usb_interface_descriptor *desc) +{
> +	if (desc) {
> +		fsg_intf_desc.bLength = desc->bLength;
> +		fsg_intf_desc.bDescriptorType =
> desc->bDescriptorType;
> +		fsg_intf_desc.bNumEndpoints = desc->bNumEndpoints;
> +		fsg_intf_desc.bInterfaceClass =
> desc->bInterfaceClass;
> +		fsg_intf_desc.bInterfaceSubClass =
> desc->bInterfaceSubClass;
> +		fsg_intf_desc.bInterfaceProtocol =
> desc->bInterfaceProtocol;
> +		fsg_intf_desc.iInterface = desc->iInterface;
> +	}
> +}
> +
>  int fsg_add(struct usb_configuration *c)
>  {
>  	struct fsg_common *fsg_common;
> diff --git a/include/f_mass_storage.h b/include/f_mass_storage.h
> index df6ea33..0cf29df 100644
> --- a/include/f_mass_storage.h
> +++ b/include/f_mass_storage.h
> @@ -500,6 +500,8 @@ struct fsg_dev {
>  	struct usb_ep		*bulk_out;
>  };
>  
> +struct usb_interface_descriptor
> *fsg_get_usb_interface_descriptor(void); +void
> fsg_set_usb_interface_descriptor(struct usb_interface_descriptor
> *desc); int sleep_thread(struct fsg_common *common); int
> do_scsi_command(struct fsg_common *common); 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de

  reply	other threads:[~2017-04-19 15:29 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-16 15:54 [U-Boot] [U-Boot PATCH V2 0/9] introduce Rockchip rockusb Eddie Cai
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 1/9] usb: ums: split macro and data struct in storage_common.c Eddie Cai
2017-04-19 15:19   ` Lukasz Majewski
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 2/9] usb: ums: split macro and data struct in f_mass_storage.c Eddie Cai
2017-04-19 15:20   ` Lukasz Majewski
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 3/9] usb: ums: merge storage_common.c into f_mass_storage.c Eddie Cai
2017-04-19 15:21   ` Lukasz Majewski
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 4/9] usb: ums: remove static declaration of some ums functions Eddie Cai
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 5/9] usb: ums: add functions to set and get usb interface descriptor Eddie Cai
2017-04-19 15:29   ` Lukasz Majewski [this message]
2017-04-20  0:55     ` Eddie Cai
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 6/9] usb: ums: add do_extra_command Eddie Cai
2017-04-19 22:14   ` Lukasz Majewski
2017-04-20  1:03     ` Eddie Cai
2017-04-20  8:55       ` Lukasz Majewski
2017-04-20  9:14         ` Lukasz Majewski
2017-04-20  9:16           ` Eddie Cai
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 7/9] cmd: add rockusb command Eddie Cai
2017-04-19 22:27   ` Lukasz Majewski
2017-04-20  1:15     ` Eddie Cai
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 8/9] rockchip: config: enable rockusb support on rk3288 based board Eddie Cai
2017-04-19 22:29   ` Lukasz Majewski
2017-04-16 15:54 ` [U-Boot] [U-Boot PATCH V2 9/9] rockusb: add a simple readme Eddie Cai
2017-04-19 22:39   ` Lukasz Majewski
2017-04-20  1:43     ` Eddie Cai
2017-04-16 19:34 ` [U-Boot] [U-Boot PATCH V2 0/9] introduce Rockchip rockusb Simon Glass

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=20170419172951.521922ec@jawa \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /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