diff options
| -rw-r--r-- | arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c | 99 | ||||
| -rw-r--r-- | arch/powerpc/cpu/mpc5xxx/usb_ohci.c | 99 | ||||
| -rw-r--r-- | arch/powerpc/cpu/ppc4xx/usb_ohci.c | 99 | ||||
| -rw-r--r-- | arch/sparc/cpu/leon3/usb_uhci.c | 107 | ||||
| -rw-r--r-- | board/mpl/common/usb_uhci.c | 115 | ||||
| -rw-r--r-- | drivers/usb/host/isp116x-hcd.c | 100 | ||||
| -rw-r--r-- | drivers/usb/host/ohci-hcd.c | 98 | ||||
| -rw-r--r-- | drivers/usb/host/ohci-s3c24xx.c | 95 | ||||
| -rw-r--r-- | drivers/usb/host/r8a66597-hcd.c | 104 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_hcd.c | 93 | ||||
| -rw-r--r-- | include/usbroothubdes.h | 129 | 
11 files changed, 143 insertions, 995 deletions
| diff --git a/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c b/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c index fd0ec6595..a3dac7079 100644 --- a/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c +++ b/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c @@ -839,104 +839,7 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list)   * Virtual Root Hub   *-------------------------------------------------------------------------*/ -/* Device descriptor */ -static __u8 root_hub_dev_des[] = -{ -	0x12,	    /*	__u8  bLength; */ -	0x01,	    /*	__u8  bDescriptorType; Device */ -	0x10,	    /*	__u16 bcdUSB; v1.1 */ -	0x01, -	0x09,	    /*	__u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  bDeviceSubClass; */ -	0x00,	    /*	__u8  bDeviceProtocol; */ -	0x08,	    /*	__u8  bMaxPacketSize0; 8 Bytes */ -	0x00,	    /*	__u16 idVendor; */ -	0x00, -	0x00,	    /*	__u16 idProduct; */ -	0x00, -	0x00,	    /*	__u16 bcdDevice; */ -	0x00, -	0x00,	    /*	__u8  iManufacturer; */ -	0x01,	    /*	__u8  iProduct; */ -	0x00,	    /*	__u8  iSerialNumber; */ -	0x01	    /*	__u8  bNumConfigurations; */ -}; - - -/* Configuration descriptor */ -static __u8 root_hub_config_des[] = -{ -	0x09,	    /*	__u8  bLength; */ -	0x02,	    /*	__u8  bDescriptorType; Configuration */ -	0x19,	    /*	__u16 wTotalLength; */ -	0x00, -	0x01,	    /*	__u8  bNumInterfaces; */ -	0x01,	    /*	__u8  bConfigurationValue; */ -	0x00,	    /*	__u8  iConfiguration; */ -	0x40,	    /*	__u8  bmAttributes; -		 Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,	    /*	__u8  MaxPower; */ - -	/* interface */ -	0x09,	    /*	__u8  if_bLength; */ -	0x04,	    /*	__u8  if_bDescriptorType; Interface */ -	0x00,	    /*	__u8  if_bInterfaceNumber; */ -	0x00,	    /*	__u8  if_bAlternateSetting; */ -	0x01,	    /*	__u8  if_bNumEndpoints; */ -	0x09,	    /*	__u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  if_bInterfaceSubClass; */ -	0x00,	    /*	__u8  if_bInterfaceProtocol; */ -	0x00,	    /*	__u8  if_iInterface; */ - -	/* endpoint */ -	0x07,	    /*	__u8  ep_bLength; */ -	0x05,	    /*	__u8  ep_bDescriptorType; Endpoint */ -	0x81,	    /*	__u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,	    /*	__u8  ep_bmAttributes; Interrupt */ -	0x02,	    /*	__u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x00, -	0xff	    /*	__u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_str_index0[] = -{ -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = -{ -	28,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'O',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'C',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'I',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -}; +#include <usbroothubdes.h>  /* Hub class-specific descriptor is constructed dynamically */ diff --git a/arch/powerpc/cpu/mpc5xxx/usb_ohci.c b/arch/powerpc/cpu/mpc5xxx/usb_ohci.c index a68f9d659..3c8b2d904 100644 --- a/arch/powerpc/cpu/mpc5xxx/usb_ohci.c +++ b/arch/powerpc/cpu/mpc5xxx/usb_ohci.c @@ -842,104 +842,7 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list)   * Virtual Root Hub   *-------------------------------------------------------------------------*/ -/* Device descriptor */ -static __u8 root_hub_dev_des[] = -{ -	0x12,	    /*	__u8  bLength; */ -	0x01,	    /*	__u8  bDescriptorType; Device */ -	0x10,	    /*	__u16 bcdUSB; v1.1 */ -	0x01, -	0x09,	    /*	__u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  bDeviceSubClass; */ -	0x00,	    /*	__u8  bDeviceProtocol; */ -	0x08,	    /*	__u8  bMaxPacketSize0; 8 Bytes */ -	0x00,	    /*	__u16 idVendor; */ -	0x00, -	0x00,	    /*	__u16 idProduct; */ -	0x00, -	0x00,	    /*	__u16 bcdDevice; */ -	0x00, -	0x00,	    /*	__u8  iManufacturer; */ -	0x01,	    /*	__u8  iProduct; */ -	0x00,	    /*	__u8  iSerialNumber; */ -	0x01	    /*	__u8  bNumConfigurations; */ -}; - - -/* Configuration descriptor */ -static __u8 root_hub_config_des[] = -{ -	0x09,	    /*	__u8  bLength; */ -	0x02,	    /*	__u8  bDescriptorType; Configuration */ -	0x19,	    /*	__u16 wTotalLength; */ -	0x00, -	0x01,	    /*	__u8  bNumInterfaces; */ -	0x01,	    /*	__u8  bConfigurationValue; */ -	0x00,	    /*	__u8  iConfiguration; */ -	0x40,	    /*	__u8  bmAttributes; -		 Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,	    /*	__u8  MaxPower; */ - -	/* interface */ -	0x09,	    /*	__u8  if_bLength; */ -	0x04,	    /*	__u8  if_bDescriptorType; Interface */ -	0x00,	    /*	__u8  if_bInterfaceNumber; */ -	0x00,	    /*	__u8  if_bAlternateSetting; */ -	0x01,	    /*	__u8  if_bNumEndpoints; */ -	0x09,	    /*	__u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  if_bInterfaceSubClass; */ -	0x00,	    /*	__u8  if_bInterfaceProtocol; */ -	0x00,	    /*	__u8  if_iInterface; */ - -	/* endpoint */ -	0x07,	    /*	__u8  ep_bLength; */ -	0x05,	    /*	__u8  ep_bDescriptorType; Endpoint */ -	0x81,	    /*	__u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,	    /*	__u8  ep_bmAttributes; Interrupt */ -	0x02,	    /*	__u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x00, -	0xff	    /*	__u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_str_index0[] = -{ -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = -{ -	28,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'O',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'C',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'I',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -}; +#include <usbroothubdes.h>  /* Hub class-specific descriptor is constructed dynamically */ diff --git a/arch/powerpc/cpu/ppc4xx/usb_ohci.c b/arch/powerpc/cpu/ppc4xx/usb_ohci.c index fafc15e2e..d1e78f6b0 100644 --- a/arch/powerpc/cpu/ppc4xx/usb_ohci.c +++ b/arch/powerpc/cpu/ppc4xx/usb_ohci.c @@ -847,104 +847,7 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list)   * Virtual Root Hub   *-------------------------------------------------------------------------*/ -/* Device descriptor */ -static __u8 root_hub_dev_des[] = -{ -	0x12,	    /*	__u8  bLength; */ -	0x01,	    /*	__u8  bDescriptorType; Device */ -	0x10,	    /*	__u16 bcdUSB; v1.1 */ -	0x01, -	0x09,	    /*	__u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  bDeviceSubClass; */ -	0x00,	    /*	__u8  bDeviceProtocol; */ -	0x08,	    /*	__u8  bMaxPacketSize0; 8 Bytes */ -	0x00,	    /*	__u16 idVendor; */ -	0x00, -	0x00,	    /*	__u16 idProduct; */ -	0x00, -	0x00,	    /*	__u16 bcdDevice; */ -	0x00, -	0x00,	    /*	__u8  iManufacturer; */ -	0x01,	    /*	__u8  iProduct; */ -	0x00,	    /*	__u8  iSerialNumber; */ -	0x01	    /*	__u8  bNumConfigurations; */ -}; - - -/* Configuration descriptor */ -static __u8 root_hub_config_des[] = -{ -	0x09,	    /*	__u8  bLength; */ -	0x02,	    /*	__u8  bDescriptorType; Configuration */ -	0x19,	    /*	__u16 wTotalLength; */ -	0x00, -	0x01,	    /*	__u8  bNumInterfaces; */ -	0x01,	    /*	__u8  bConfigurationValue; */ -	0x00,	    /*	__u8  iConfiguration; */ -	0x40,	    /*	__u8  bmAttributes; -		 Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,	    /*	__u8  MaxPower; */ - -	/* interface */ -	0x09,	    /*	__u8  if_bLength; */ -	0x04,	    /*	__u8  if_bDescriptorType; Interface */ -	0x00,	    /*	__u8  if_bInterfaceNumber; */ -	0x00,	    /*	__u8  if_bAlternateSetting; */ -	0x01,	    /*	__u8  if_bNumEndpoints; */ -	0x09,	    /*	__u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  if_bInterfaceSubClass; */ -	0x00,	    /*	__u8  if_bInterfaceProtocol; */ -	0x00,	    /*	__u8  if_iInterface; */ - -	/* endpoint */ -	0x07,	    /*	__u8  ep_bLength; */ -	0x05,	    /*	__u8  ep_bDescriptorType; Endpoint */ -	0x81,	    /*	__u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,	    /*	__u8  ep_bmAttributes; Interrupt */ -	0x02,	    /*	__u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x00, -	0xff	    /*	__u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_str_index0[] = -{ -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = -{ -	28,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'O',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'C',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'I',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -}; +#include <usbroothubdes.h>  /* Hub class-specific descriptor is constructed dynamically */ diff --git a/arch/sparc/cpu/leon3/usb_uhci.c b/arch/sparc/cpu/leon3/usb_uhci.c index c411ded86..ca7d6e86f 100644 --- a/arch/sparc/cpu/leon3/usb_uhci.c +++ b/arch/sparc/cpu/leon3/usb_uhci.c @@ -757,110 +757,9 @@ static void usb_display_Req(unsigned short req)  }  #endif -static unsigned char root_hub_dev_des[] = { -	0x12,			/*  __u8  bLength; */ -	0x01,			/*  __u8  bDescriptorType; Device */ -	0x00,			/*  __u16 bcdUSB; v1.0 */ -	0x01, -	0x09,			/*  __u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  bDeviceSubClass; */ -	0x00,			/*  __u8  bDeviceProtocol; */ -	0x08,			/*  __u8  bMaxPacketSize0; 8 Bytes */ -	0x00,			/*  __u16 idVendor; */ -	0x00, -	0x00,			/*  __u16 idProduct; */ -	0x00, -	0x00,			/*  __u16 bcdDevice; */ -	0x00, -	0x01,			/*  __u8  iManufacturer; */ -	0x00,			/*  __u8  iProduct; */ -	0x00,			/*  __u8  iSerialNumber; */ -	0x01			/*  __u8  bNumConfigurations; */ -}; - -/* Configuration descriptor */ -static unsigned char root_hub_config_des[] = { -	0x09,			/*  __u8  bLength; */ -	0x02,			/*  __u8  bDescriptorType; Configuration */ -	0x19,			/*  __u16 wTotalLength; */ -	0x00, -	0x01,			/*  __u8  bNumInterfaces; */ -	0x01,			/*  __u8  bConfigurationValue; */ -	0x00,			/*  __u8  iConfiguration; */ -	0x40,			/*  __u8  bmAttributes; -				   Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,			/*  __u8  MaxPower; */ - -	/* interface */ -	0x09,			/*  __u8  if_bLength; */ -	0x04,			/*  __u8  if_bDescriptorType; Interface */ -	0x00,			/*  __u8  if_bInterfaceNumber; */ -	0x00,			/*  __u8  if_bAlternateSetting; */ -	0x01,			/*  __u8  if_bNumEndpoints; */ -	0x09,			/*  __u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  if_bInterfaceSubClass; */ -	0x00,			/*  __u8  if_bInterfaceProtocol; */ -	0x00,			/*  __u8  if_iInterface; */ - -	/* endpoint */ -	0x07,			/*  __u8  ep_bLength; */ -	0x05,			/*  __u8  ep_bDescriptorType; Endpoint */ -	0x81,			/*  __u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,			/*  __u8  ep_bmAttributes; Interrupt */ -	0x08,			/*  __u16 ep_wMaxPacketSize; 8 Bytes */ -	0x00, -	0xff			/*  __u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_hub_des[] = { -	0x09,			/*  __u8  bLength; */ -	0x29,			/*  __u8  bDescriptorType; Hub-descriptor */ -	0x02,			/*  __u8  bNbrPorts; */ -	0x00,			/* __u16  wHubCharacteristics; */ -	0x00, -	0x01,			/*  __u8  bPwrOn2pwrGood; 2ms */ -	0x00,			/*  __u8  bHubContrCurrent; 0 mA */ -	0x00,			/*  __u8  DeviceRemovable; *** 7 Ports max *** */ -	0xff			/*  __u8  PortPwrCtrlMask; *** 7 ports max *** */ -}; - -static unsigned char root_hub_str_index0[] = { -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = { -	28,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'U',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'C',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'I',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -}; +#define WANT_USB_ROOT_HUB_HUB_DES +#include <usbroothubdes.h> +#undef WANT_USB_ROOT_HUB_HUB_DES  /*   * Root Hub Control Pipe (interrupt Pipes are not supported) diff --git a/board/mpl/common/usb_uhci.c b/board/mpl/common/usb_uhci.c index 6bbb527da..5590be196 100644 --- a/board/mpl/common/usb_uhci.c +++ b/board/mpl/common/usb_uhci.c @@ -640,118 +640,9 @@ static void usb_display_wValue(unsigned short wValue,unsigned short wIndex) {}  static void usb_display_Req(unsigned short req) {}  #endif -static unsigned char root_hub_dev_des[] = -{ -	0x12,			/*  __u8  bLength; */ -	0x01,			/*  __u8  bDescriptorType; Device */ -	0x00,			/*  __u16 bcdUSB; v1.0 */ -	0x01, -	0x09,			/*  __u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  bDeviceSubClass; */ -	0x00,			/*  __u8  bDeviceProtocol; */ -	0x08,			/*  __u8  bMaxPacketSize0; 8 Bytes */ -	0x00,			/*  __u16 idVendor; */ -	0x00, -	0x00,			/*  __u16 idProduct; */ -	0x00, -	0x00,			/*  __u16 bcdDevice; */ -	0x00, -	0x01,			/*  __u8  iManufacturer; */ -	0x00,			/*  __u8  iProduct; */ -	0x00,			/*  __u8  iSerialNumber; */ -	0x01			/*  __u8  bNumConfigurations; */ -}; - - -/* Configuration descriptor */ -static unsigned char root_hub_config_des[] = -{ -	0x09,			/*  __u8  bLength; */ -	0x02,			/*  __u8  bDescriptorType; Configuration */ -	0x19,			/*  __u16 wTotalLength; */ -	0x00, -	0x01,			/*  __u8  bNumInterfaces; */ -	0x01,			/*  __u8  bConfigurationValue; */ -	0x00,			/*  __u8  iConfiguration; */ -	0x40,			/*  __u8  bmAttributes; -				   Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,			/*  __u8  MaxPower; */ - -     /* interface */ -	0x09,			/*  __u8  if_bLength; */ -	0x04,			/*  __u8  if_bDescriptorType; Interface */ -	0x00,			/*  __u8  if_bInterfaceNumber; */ -	0x00,			/*  __u8  if_bAlternateSetting; */ -	0x01,			/*  __u8  if_bNumEndpoints; */ -	0x09,			/*  __u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  if_bInterfaceSubClass; */ -	0x00,			/*  __u8  if_bInterfaceProtocol; */ -	0x00,			/*  __u8  if_iInterface; */ - -     /* endpoint */ -	0x07,			/*  __u8  ep_bLength; */ -	0x05,			/*  __u8  ep_bDescriptorType; Endpoint */ -	0x81,			/*  __u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,			/*  __u8  ep_bmAttributes; Interrupt */ -	0x08,			/*  __u16 ep_wMaxPacketSize; 8 Bytes */ -	0x00, -	0xff			/*  __u8  ep_bInterval; 255 ms */ -}; - - -static unsigned char root_hub_hub_des[] = -{ -	0x09,			/*  __u8  bLength; */ -	0x29,			/*  __u8  bDescriptorType; Hub-descriptor */ -	0x02,			/*  __u8  bNbrPorts; */ -	0x00,			/* __u16  wHubCharacteristics; */ -	0x00, -	0x01,			/*  __u8  bPwrOn2pwrGood; 2ms */ -	0x00,			/*  __u8  bHubContrCurrent; 0 mA */ -	0x00,			/*  __u8  DeviceRemovable; *** 7 Ports max *** */ -	0xff			/*  __u8  PortPwrCtrlMask; *** 7 ports max *** */ -}; - -static unsigned char root_hub_str_index0[] = -{ -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = -{ -	28,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'U',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'C',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'I',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -}; - +#define WANT_USB_ROOT_HUB_HUB_DES +#include <usbroothubdes.h> +#undef WANT_USB_ROOT_HUB_HUB_DES  /*   * Root Hub Control Pipe (interrupt Pipes are not supported) diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c index 5aa190b52..46e4cee1d 100644 --- a/drivers/usb/host/isp116x-hcd.c +++ b/drivers/usb/host/isp116x-hcd.c @@ -254,105 +254,7 @@ static inline void dump_ptd_data(struct ptd *ptd, u8 * buf, int type)  /* --- Virtual Root Hub ---------------------------------------------------- */ -/* Device descriptor */ -static __u8 root_hub_dev_des[] = { -	0x12,			/*  __u8  bLength; */ -	0x01,			/*  __u8  bDescriptorType; Device */ -	0x10,			/*  __u16 bcdUSB; v1.1 */ -	0x01, -	0x09,			/*  __u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  bDeviceSubClass; */ -	0x00,			/*  __u8  bDeviceProtocol; */ -	0x08,			/*  __u8  bMaxPacketSize0; 8 Bytes */ -	0x00,			/*  __u16 idVendor; */ -	0x00, -	0x00,			/*  __u16 idProduct; */ -	0x00, -	0x00,			/*  __u16 bcdDevice; */ -	0x00, -	0x00,			/*  __u8  iManufacturer; */ -	0x01,			/*  __u8  iProduct; */ -	0x00,			/*  __u8  iSerialNumber; */ -	0x01			/*  __u8  bNumConfigurations; */ -}; - -/* Configuration descriptor */ -static __u8 root_hub_config_des[] = { -	0x09,			/*  __u8  bLength; */ -	0x02,			/*  __u8  bDescriptorType; Configuration */ -	0x19,			/*  __u16 wTotalLength; */ -	0x00, -	0x01,			/*  __u8  bNumInterfaces; */ -	0x01,			/*  __u8  bConfigurationValue; */ -	0x00,			/*  __u8  iConfiguration; */ -	0x40,			/*  __u8  bmAttributes; -				   Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,			/*  __u8  MaxPower; */ - -	/* interface */ -	0x09,			/*  __u8  if_bLength; */ -	0x04,			/*  __u8  if_bDescriptorType; Interface */ -	0x00,			/*  __u8  if_bInterfaceNumber; */ -	0x00,			/*  __u8  if_bAlternateSetting; */ -	0x01,			/*  __u8  if_bNumEndpoints; */ -	0x09,			/*  __u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  if_bInterfaceSubClass; */ -	0x00,			/*  __u8  if_bInterfaceProtocol; */ -	0x00,			/*  __u8  if_iInterface; */ - -	/* endpoint */ -	0x07,			/*  __u8  ep_bLength; */ -	0x05,			/*  __u8  ep_bDescriptorType; Endpoint */ -	0x81,			/*  __u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,			/*  __u8  ep_bmAttributes; Interrupt */ -	0x00,			/*  __u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x02, -	0xff			/*  __u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_str_index0[] = { -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = { -	0x22,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'I',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'S',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'P',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'1',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'1',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'6',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'x',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -}; +#include <usbroothubdes.h>  /*   * Hub class-specific descriptor is constructed dynamically diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 219d18232..dc0a4e317 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c @@ -1094,103 +1094,7 @@ static int dl_done_list(ohci_t *ohci)   * Virtual Root Hub   *-------------------------------------------------------------------------*/ -/* Device descriptor */ -static __u8 root_hub_dev_des[] = -{ -	0x12,	    /*	__u8  bLength; */ -	0x01,	    /*	__u8  bDescriptorType; Device */ -	0x10,	    /*	__u16 bcdUSB; v1.1 */ -	0x01, -	0x09,	    /*	__u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  bDeviceSubClass; */ -	0x00,	    /*	__u8  bDeviceProtocol; */ -	0x08,	    /*	__u8  bMaxPacketSize0; 8 Bytes */ -	0x00,	    /*	__u16 idVendor; */ -	0x00, -	0x00,	    /*	__u16 idProduct; */ -	0x00, -	0x00,	    /*	__u16 bcdDevice; */ -	0x00, -	0x00,	    /*	__u8  iManufacturer; */ -	0x01,	    /*	__u8  iProduct; */ -	0x00,	    /*	__u8  iSerialNumber; */ -	0x01	    /*	__u8  bNumConfigurations; */ -}; - -/* Configuration descriptor */ -static __u8 root_hub_config_des[] = -{ -	0x09,	    /*	__u8  bLength; */ -	0x02,	    /*	__u8  bDescriptorType; Configuration */ -	0x19,	    /*	__u16 wTotalLength; */ -	0x00, -	0x01,	    /*	__u8  bNumInterfaces; */ -	0x01,	    /*	__u8  bConfigurationValue; */ -	0x00,	    /*	__u8  iConfiguration; */ -	0x40,	    /*	__u8  bmAttributes; -	 Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,	    /*	__u8  MaxPower; */ - -	/* interface */ -	0x09,	    /*	__u8  if_bLength; */ -	0x04,	    /*	__u8  if_bDescriptorType; Interface */ -	0x00,	    /*	__u8  if_bInterfaceNumber; */ -	0x00,	    /*	__u8  if_bAlternateSetting; */ -	0x01,	    /*	__u8  if_bNumEndpoints; */ -	0x09,	    /*	__u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  if_bInterfaceSubClass; */ -	0x00,	    /*	__u8  if_bInterfaceProtocol; */ -	0x00,	    /*	__u8  if_iInterface; */ - -	/* endpoint */ -	0x07,	    /*	__u8  ep_bLength; */ -	0x05,	    /*	__u8  ep_bDescriptorType; Endpoint */ -	0x81,	    /*	__u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,	    /*	__u8  ep_bmAttributes; Interrupt */ -	0x02,	    /*	__u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x00, -	0xff	    /*	__u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_str_index0[] = -{ -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = -{ -	28,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'O',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'C',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'I',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -}; +#include <usbroothubdes.h>  /* Hub class-specific descriptor is constructed dynamically */ diff --git a/drivers/usb/host/ohci-s3c24xx.c b/drivers/usb/host/ohci-s3c24xx.c index 42e564ef5..3c659c60c 100644 --- a/drivers/usb/host/ohci-s3c24xx.c +++ b/drivers/usb/host/ohci-s3c24xx.c @@ -873,100 +873,7 @@ static int dl_done_list(struct ohci *ohci, struct td *td_list)   * Virtual Root Hub   *-------------------------------------------------------------------------*/ -/* Device descriptor */ -static __u8 root_hub_dev_des[] = { -	0x12,	/*  __u8  bLength; */ -	0x01,	/*  __u8  bDescriptorType; Device */ -	0x10,	/*  __u16 bcdUSB; v1.1 */ -	0x01, -	0x09,	/*  __u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,	/*  __u8  bDeviceSubClass; */ -	0x00,	/*  __u8  bDeviceProtocol; */ -	0x08,	/*  __u8  bMaxPacketSize0; 8 Bytes */ -	0x00,	/*  __u16 idVendor; */ -	0x00, -	0x00,	/*  __u16 idProduct; */ -	0x00, -	0x00,	/*  __u16 bcdDevice; */ -	0x00, -	0x00,	/*  __u8  iManufacturer; */ -	0x01,	/*  __u8  iProduct; */ -	0x00,	/*  __u8  iSerialNumber; */ -	0x01	/*  __u8  bNumConfigurations; */ -}; - -/* Configuration descriptor */ -static __u8 root_hub_config_des[] = { -	0x09,	/*  __u8  bLength; */ -	0x02,	/*  __u8  bDescriptorType; Configuration */ -	0x19,	/*  __u16 wTotalLength; */ -	0x00, -	0x01,	/*  __u8  bNumInterfaces; */ -	0x01,	/*  __u8  bConfigurationValue; */ -	0x00,	/*  __u8  iConfiguration; */ -	0x40,	/*  __u8  bmAttributes; -		   Bit 7: Bus-powered, 6: Self-powered, -		   5 Remote-wakwup, 4..0: resvd */ -	0x00,	/*  __u8  MaxPower; */ - -	/* interface */ -	0x09,	/*  __u8  if_bLength; */ -	0x04,	/*  __u8  if_bDescriptorType; Interface */ -	0x00,	/*  __u8  if_bInterfaceNumber; */ -	0x00,	/*  __u8  if_bAlternateSetting; */ -	0x01,	/*  __u8  if_bNumEndpoints; */ -	0x09,	/*  __u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,	/*  __u8  if_bInterfaceSubClass; */ -	0x00,	/*  __u8  if_bInterfaceProtocol; */ -	0x00,	/*  __u8  if_iInterface; */ - -	/* endpoint */ -	0x07,	/*  __u8  ep_bLength; */ -	0x05,	/*  __u8  ep_bDescriptorType; Endpoint */ -	0x81,	/*  __u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,	/*  __u8  ep_bmAttributes; Interrupt */ -	0x02,	/*  __u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x00, -	0xff	/*  __u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_str_index0[] = { -	0x04,	/*  __u8  bLength; */ -	0x03,	/*  __u8  bDescriptorType; String-descriptor */ -	0x09,	/*  __u8  lang ID */ -	0x04,	/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = { -	28,	/*  __u8  bLength; */ -	0x03,	/*  __u8  bDescriptorType; String-descriptor */ -	'O',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'H',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'C',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'I',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	' ',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'R',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'o',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'o',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	't',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	' ',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'H',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'u',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -	'b',	/*  __u8  Unicode */ -	0,	/*  __u8  Unicode */ -}; +#include <usbroothubdes.h>  /* Hub class-specific descriptor is constructed dynamically */ diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c index fd30d6726..dfe5423b8 100644 --- a/drivers/usb/host/r8a66597-hcd.c +++ b/drivers/usb/host/r8a66597-hcd.c @@ -557,109 +557,7 @@ static int check_usb_device_connecting(struct r8a66597 *r8a66597)   * Virtual Root Hub   *-------------------------------------------------------------------------*/ -/* Device descriptor */ -static __u8 root_hub_dev_des[] = -{ -	0x12,	    /*	__u8  bLength; */ -	0x01,	    /*	__u8  bDescriptorType; Device */ -	0x10,	    /*	__u16 bcdUSB; v1.1 */ -	0x01, -	0x09,	    /*	__u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  bDeviceSubClass; */ -	0x00,	    /*	__u8  bDeviceProtocol; */ -	0x08,	    /*	__u8  bMaxPacketSize0; 8 Bytes */ -	0x00,	    /*	__u16 idVendor; */ -	0x00, -	0x00,	    /*	__u16 idProduct; */ -	0x00, -	0x00,	    /*	__u16 bcdDevice; */ -	0x00, -	0x00,	    /*	__u8  iManufacturer; */ -	0x01,	    /*	__u8  iProduct; */ -	0x00,	    /*	__u8  iSerialNumber; */ -	0x01	    /*	__u8  bNumConfigurations; */ -}; - -/* Configuration descriptor */ -static __u8 root_hub_config_des[] = -{ -	0x09,	    /*	__u8  bLength; */ -	0x02,	    /*	__u8  bDescriptorType; Configuration */ -	0x19,	    /*	__u16 wTotalLength; */ -	0x00, -	0x01,	    /*	__u8  bNumInterfaces; */ -	0x01,	    /*	__u8  bConfigurationValue; */ -	0x00,	    /*	__u8  iConfiguration; */ -	0x40,	    /*	__u8  bmAttributes; */ - -	0x00,	    /*	__u8  MaxPower; */ - -	/* interface */ -	0x09,	    /*	__u8  if_bLength; */ -	0x04,	    /*	__u8  if_bDescriptorType; Interface */ -	0x00,	    /*	__u8  if_bInterfaceNumber; */ -	0x00,	    /*	__u8  if_bAlternateSetting; */ -	0x01,	    /*	__u8  if_bNumEndpoints; */ -	0x09,	    /*	__u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,	    /*	__u8  if_bInterfaceSubClass; */ -	0x00,	    /*	__u8  if_bInterfaceProtocol; */ -	0x00,	    /*	__u8  if_iInterface; */ - -	/* endpoint */ -	0x07,	    /*	__u8  ep_bLength; */ -	0x05,	    /*	__u8  ep_bDescriptorType; Endpoint */ -	0x81,	    /*	__u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,	    /*	__u8  ep_bmAttributes; Interrupt */ -	0x02,	    /*	__u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x00, -	0xff	    /*	__u8  ep_bInterval; 255 ms */ -}; - -static unsigned char root_hub_str_index0[] = -{ -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; - -static unsigned char root_hub_str_index1[] = -{ -	34,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'R',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'8',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'A',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'6',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'6',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'5',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'9',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'7',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,				/*  __u8  Unicode */ -}; +#include <usbroothubdes.h>  static int r8a66597_submit_rh_msg(struct usb_device *dev, unsigned long pipe,  			void *buffer, int transfer_len, struct devrequest *cmd) diff --git a/drivers/usb/musb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c index 799bd30e2..f0ba8aaaa 100644 --- a/drivers/usb/musb/musb_hcd.c +++ b/drivers/usb/musb/musb_hcd.c @@ -28,99 +28,8 @@ static const struct musb_epinfo epinfo[3] = {  static int rh_devnum;  static u32 port_status; -/* Device descriptor */ -static const u8 root_hub_dev_des[] = { -	0x12,			/*  __u8  bLength; */ -	0x01,			/*  __u8  bDescriptorType; Device */ -	0x00,			/*  __u16 bcdUSB; v1.1 */ -	0x02, -	0x09,			/*  __u8  bDeviceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  bDeviceSubClass; */ -	0x00,			/*  __u8  bDeviceProtocol; */ -	0x08,			/*  __u8  bMaxPacketSize0; 8 Bytes */ -	0x00,			/*  __u16 idVendor; */ -	0x00, -	0x00,			/*  __u16 idProduct; */ -	0x00, -	0x00,			/*  __u16 bcdDevice; */ -	0x00, -	0x00,			/*  __u8  iManufacturer; */ -	0x01,			/*  __u8  iProduct; */ -	0x00,			/*  __u8  iSerialNumber; */ -	0x01			/*  __u8  bNumConfigurations; */ -}; - -/* Configuration descriptor */ -static const u8 root_hub_config_des[] = { -	0x09,			/*  __u8  bLength; */ -	0x02,			/*  __u8  bDescriptorType; Configuration */ -	0x19,			/*  __u16 wTotalLength; */ -	0x00, -	0x01,			/*  __u8  bNumInterfaces; */ -	0x01,			/*  __u8  bConfigurationValue; */ -	0x00,			/*  __u8  iConfiguration; */ -	0x40,			/*  __u8  bmAttributes; -				   Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */ -	0x00,			/*  __u8  MaxPower; */ - -	/* interface */ -	0x09,			/*  __u8  if_bLength; */ -	0x04,			/*  __u8  if_bDescriptorType; Interface */ -	0x00,			/*  __u8  if_bInterfaceNumber; */ -	0x00,			/*  __u8  if_bAlternateSetting; */ -	0x01,			/*  __u8  if_bNumEndpoints; */ -	0x09,			/*  __u8  if_bInterfaceClass; HUB_CLASSCODE */ -	0x00,			/*  __u8  if_bInterfaceSubClass; */ -	0x00,			/*  __u8  if_bInterfaceProtocol; */ -	0x00,			/*  __u8  if_iInterface; */ - -	/* endpoint */ -	0x07,			/*  __u8  ep_bLength; */ -	0x05,			/*  __u8  ep_bDescriptorType; Endpoint */ -	0x81,			/*  __u8  ep_bEndpointAddress; IN Endpoint 1 */ -	0x03,			/*  __u8  ep_bmAttributes; Interrupt */ -	0x00,			/*  __u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ -	0x02, -	0xff			/*  __u8  ep_bInterval; 255 ms */ -}; - -static const unsigned char root_hub_str_index0[] = { -	0x04,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	0x09,			/*  __u8  lang ID */ -	0x04,			/*  __u8  lang ID */ -}; +#include <usbroothubdes.h> -static const unsigned char root_hub_str_index1[] = { -	0x1c,			/*  __u8  bLength; */ -	0x03,			/*  __u8  bDescriptorType; String-descriptor */ -	'M',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'U',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'S',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'B',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'R',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'o',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	't',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	' ',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'H',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'u',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -	'b',			/*  __u8  Unicode */ -	0,			/*  __u8  Unicode */ -};  #endif  /* diff --git a/include/usbroothubdes.h b/include/usbroothubdes.h new file mode 100644 index 000000000..adb70cd6a --- /dev/null +++ b/include/usbroothubdes.h @@ -0,0 +1,129 @@ +/* + * USB virtual root hub descriptors + * + * (C) Copyright 2014 + * Stephen Warren swarren@wwwdotorg.org + * + * Based on ohci-hcd.c + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __USBROOTHUBDES_H__ +#define __USBROOTHUBDES_H__ + +/* Device descriptor */ +static __u8 root_hub_dev_des[] = { +	0x12,		/* __u8  bLength; */ +	0x01,		/* __u8  bDescriptorType; Device */ +	0x10,		/* __u16 bcdUSB; v1.1 */ +	0x01, +	0x09,		/* __u8  bDeviceClass; HUB_CLASSCODE */ +	0x00,		/* __u8  bDeviceSubClass; */ +	0x00,		/* __u8  bDeviceProtocol; */ +	0x08,		/* __u8  bMaxPacketSize0; 8 Bytes */ +	0x00,		/* __u16 idVendor; */ +	0x00, +	0x00,		/* __u16 idProduct; */ +	0x00, +	0x00,		/* __u16 bcdDevice; */ +	0x00, +	0x00,		/* __u8  iManufacturer; */ +	0x01,		/* __u8  iProduct; */ +	0x00,		/* __u8  iSerialNumber; */ +	0x01,		/* __u8  bNumConfigurations; */ +}; + +/* Configuration descriptor */ +static __u8 root_hub_config_des[] = { +	0x09,		/* __u8  bLength; */ +	0x02,		/* __u8  bDescriptorType; Configuration */ +	0x19,		/* __u16 wTotalLength; */ +	0x00, +	0x01,		/* __u8  bNumInterfaces; */ +	0x01,		/* __u8  bConfigurationValue; */ +	0x00,		/* __u8  iConfiguration; */ +	0x40,		/* __u8  bmAttributes; +			 *       Bit 7: Bus-powered +			 *       6: Self-powered, +			 *       5 Remote-wakwup, +			 *       4..0: resvd +			 */ +	0x00,		/* __u8  MaxPower; */ +	/* interface */ +	0x09,		/* __u8  if_bLength; */ +	0x04,		/* __u8  if_bDescriptorType; Interface */ +	0x00,		/* __u8  if_bInterfaceNumber; */ +	0x00,		/* __u8  if_bAlternateSetting; */ +	0x01,		/* __u8  if_bNumEndpoints; */ +	0x09,		/* __u8  if_bInterfaceClass; HUB_CLASSCODE */ +	0x00,		/* __u8  if_bInterfaceSubClass; */ +	0x00,		/* __u8  if_bInterfaceProtocol; */ +	0x00,		/* __u8  if_iInterface; */ +	/* endpoint */ +	0x07,		/* __u8  ep_bLength; */ +	0x05,		/* __u8  ep_bDescriptorType; Endpoint */ +	0x81,		/* __u8  ep_bEndpointAddress; IN Endpoint 1 */ +	0x03,		/* __u8  ep_bmAttributes; Interrupt */ +	0x02,		/* __u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */ +	0x00, +	0xff,		/* __u8  ep_bInterval; 255 ms */ +}; + +#ifdef WANT_USB_ROOT_HUB_HUB_DES +static unsigned char root_hub_hub_des[] = { +	0x09,		/* __u8  bLength; */ +	0x29,		/* __u8  bDescriptorType; Hub-descriptor */ +	0x02,		/* __u8  bNbrPorts; */ +	0x00,		/* __u16 wHubCharacteristics; */ +	0x00, +	0x01,		/* __u8  bPwrOn2pwrGood; 2ms */ +	0x00,		/* __u8  bHubContrCurrent; 0 mA */ +	0x00,		/* __u8  DeviceRemovable; *** 7 Ports max *** */ +	0xff,		/* __u8  PortPwrCtrlMask; *** 7 ports max *** */ +}; +#endif + +static unsigned char root_hub_str_index0[] = { +	0x04,		/* __u8  bLength; */ +	0x03,		/* __u8  bDescriptorType; String-descriptor */ +	0x09,		/* __u8  lang ID */ +	0x04,		/* __u8  lang ID */ +}; + +static unsigned char root_hub_str_index1[] = { +	32,		/* __u8  bLength; */ +	0x03,		/* __u8  bDescriptorType; String-descriptor */ +	'U',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'-',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'B',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'o',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'o',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	't',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	' ',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'R',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'o',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'o',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	't',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	' ',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'H',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'u',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +	'b',		/* __u8  Unicode */ +	0,		/* __u8  Unicode */ +}; + +#endif |