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
next prev parent 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 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.