mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
usb: gadget: Update function for SuperSpeedPlus
Add a ssp_descriptors member to struct usb_function and handle the initialization and cleanup of it. This holds the SuperSpeedPlus descriptors for a function that supports SuperSpeedPlus. This is added by usb_assign_descriptors(). Signed-off-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
This commit is contained in:
parent
eaef50c760
commit
f5c61225cf
2 changed files with 11 additions and 0 deletions
|
@ -183,6 +183,11 @@ int usb_assign_descriptors(struct usb_function *f,
|
|||
if (!f->ss_descriptors)
|
||||
goto err;
|
||||
}
|
||||
if (ssp && gadget_is_superspeed_plus(g)) {
|
||||
f->ssp_descriptors = usb_copy_descriptors(ssp);
|
||||
if (!f->ssp_descriptors)
|
||||
goto err;
|
||||
}
|
||||
return 0;
|
||||
err:
|
||||
usb_free_all_descriptors(f);
|
||||
|
@ -195,6 +200,7 @@ void usb_free_all_descriptors(struct usb_function *f)
|
|||
usb_free_descriptors(f->fs_descriptors);
|
||||
usb_free_descriptors(f->hs_descriptors);
|
||||
usb_free_descriptors(f->ss_descriptors);
|
||||
usb_free_descriptors(f->ssp_descriptors);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_free_all_descriptors);
|
||||
|
||||
|
|
|
@ -126,6 +126,10 @@ struct usb_os_desc_table {
|
|||
* string identifiers assigned during @bind(). If this
|
||||
* pointer is null after initiation, the function will not
|
||||
* be available at super speed.
|
||||
* @ssp_descriptors: Table of super speed plus descriptors, using
|
||||
* interface and string identifiers assigned during @bind(). If
|
||||
* this pointer is null after initiation, the function will not
|
||||
* be available at super speed plus.
|
||||
* @config: assigned when @usb_add_function() is called; this is the
|
||||
* configuration with which this function is associated.
|
||||
* @os_desc_table: Table of (interface id, os descriptors) pairs. The function
|
||||
|
@ -186,6 +190,7 @@ struct usb_function {
|
|||
struct usb_descriptor_header **fs_descriptors;
|
||||
struct usb_descriptor_header **hs_descriptors;
|
||||
struct usb_descriptor_header **ss_descriptors;
|
||||
struct usb_descriptor_header **ssp_descriptors;
|
||||
|
||||
struct usb_configuration *config;
|
||||
|
||||
|
|
Loading…
Reference in a new issue