USB: add IAD support to usbfs and sysfs
USB_IAD: Adds support for USB Interface Association Descriptors. This patch adds support to the USB host stack for parsing, storing, and displaying Interface Association Descriptors. In /proc/bus/usb/devices lines starting with A: show the fields in an IAD. In sysfs if an interface on a USB device is referenced by an IAD the following files will be added to the sysfs directory for that interface: iad_bFirstInterface, iad_bInterfaceCount, iad_bFunctionClass, and iad_bFunctionSubClass, iad_bFunctionProtocol Signed-off-by: Craig W. Nadler <craig@nadler.us> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
50d2dc7266
commit
165fe97ed6
@ -146,6 +146,10 @@ struct usb_interface {
|
||||
* active alternate setting */
|
||||
unsigned num_altsetting; /* number of alternate settings */
|
||||
|
||||
/* If there is an interface association descriptor then it will list
|
||||
* the associated interfaces */
|
||||
struct usb_interface_assoc_descriptor *intf_assoc;
|
||||
|
||||
int minor; /* minor number this interface is
|
||||
* bound to */
|
||||
enum usb_interface_condition condition; /* state of binding */
|
||||
@ -175,6 +179,7 @@ void usb_put_intf(struct usb_interface *intf);
|
||||
|
||||
/* this maximum is arbitrary */
|
||||
#define USB_MAXINTERFACES 32
|
||||
#define USB_MAXIADS USB_MAXINTERFACES/2
|
||||
|
||||
/**
|
||||
* struct usb_interface_cache - long-term representation of a device interface
|
||||
@ -245,6 +250,11 @@ struct usb_host_config {
|
||||
struct usb_config_descriptor desc;
|
||||
|
||||
char *string; /* iConfiguration string, if present */
|
||||
|
||||
/* List of any Interface Association Descriptors in this
|
||||
* configuration. */
|
||||
struct usb_interface_assoc_descriptor *intf_assoc[USB_MAXIADS];
|
||||
|
||||
/* the interfaces associated with this configuration,
|
||||
* stored in no particular order */
|
||||
struct usb_interface *interface[USB_MAXINTERFACES];
|
||||
|
Reference in New Issue
Block a user