diff options
| -rw-r--r-- | arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c | 2 | ||||
| -rw-r--r-- | arch/powerpc/cpu/mpc5xxx/usb_ohci.c | 2 | ||||
| -rw-r--r-- | arch/powerpc/cpu/ppc4xx/usb_ohci.c | 2 | ||||
| -rw-r--r-- | common/cmd_usb.c | 2 | ||||
| -rw-r--r-- | common/usb.c | 4 | ||||
| -rw-r--r-- | drivers/usb/host/ehci-hcd.c | 16 | ||||
| -rw-r--r-- | drivers/usb/host/isp116x-hcd.c | 2 | ||||
| -rw-r--r-- | drivers/usb/host/ohci-hcd.c | 2 | ||||
| -rw-r--r-- | drivers/usb/host/ohci-s3c24xx.c | 2 | ||||
| -rw-r--r-- | drivers/usb/host/sl811-hcd.c | 2 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_core.h | 3 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_hcd.c | 5 | ||||
| -rw-r--r-- | include/usb.h | 15 | ||||
| -rw-r--r-- | include/usb_defs.h | 6 | 
14 files changed, 31 insertions, 34 deletions
| diff --git a/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c b/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c index c747767e1..b9b0998d4 100644 --- a/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c +++ b/arch/mips/cpu/mips32/au1x00/au1x00_usb_ohci.c @@ -615,7 +615,7 @@ static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe)  			| usb_pipeendpoint (pipe) << 7  			| (usb_pipeisoc (pipe)? 0x8000: 0)  			| (usb_pipecontrol (pipe)? 0: (usb_pipeout (pipe)? 0x800: 0x1000)) -			| usb_pipeslow (pipe) << 13 +			| (usb_dev->speed == USB_SPEED_LOW) << 13  			| usb_maxpacket (usb_dev, pipe) << 16);  	return ed_ret; diff --git a/arch/powerpc/cpu/mpc5xxx/usb_ohci.c b/arch/powerpc/cpu/mpc5xxx/usb_ohci.c index 607034b7c..de07343d9 100644 --- a/arch/powerpc/cpu/mpc5xxx/usb_ohci.c +++ b/arch/powerpc/cpu/mpc5xxx/usb_ohci.c @@ -618,7 +618,7 @@ static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe)  			| usb_pipeendpoint (pipe) << 7  			| (usb_pipeisoc (pipe)? 0x8000: 0)  			| (usb_pipecontrol (pipe)? 0: (usb_pipeout (pipe)? 0x800: 0x1000)) -			| usb_pipeslow (pipe) << 13 +			| (usb_dev->speed == USB_SPEED_LOW) << 13  			| usb_maxpacket (usb_dev, pipe) << 16);  	return ed_ret; diff --git a/arch/powerpc/cpu/ppc4xx/usb_ohci.c b/arch/powerpc/cpu/ppc4xx/usb_ohci.c index 4ce272629..f820c37a8 100644 --- a/arch/powerpc/cpu/ppc4xx/usb_ohci.c +++ b/arch/powerpc/cpu/ppc4xx/usb_ohci.c @@ -621,7 +621,7 @@ static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe)  			| usb_pipeendpoint (pipe) << 7  			| (usb_pipeisoc (pipe)? 0x8000: 0)  			| (usb_pipecontrol (pipe)? 0: (usb_pipeout (pipe)? 0x800: 0x1000)) -			| usb_pipeslow (pipe) << 13 +			| (usb_dev->speed == USB_SPEED_LOW) << 13  			| usb_maxpacket (usb_dev, pipe) << 16);  	return ed_ret; diff --git a/common/cmd_usb.c b/common/cmd_usb.c index 8ad0b2305..dacdc2d5b 100644 --- a/common/cmd_usb.c +++ b/common/cmd_usb.c @@ -192,7 +192,7 @@ static void usb_display_desc(struct usb_device *dev)  } -static void usb_display_conf_desc(struct usb_configuration_descriptor *config, +static void usb_display_conf_desc(struct usb_config_descriptor *config,  				  struct usb_device *dev)  {  	printf("   Configuration: %d\n", config->bConfigurationValue); diff --git a/common/usb.c b/common/usb.c index 50b81752e..ac9b4ca8d 100644 --- a/common/usb.c +++ b/common/usb.c @@ -492,9 +492,9 @@ int usb_get_configuration_no(struct usb_device *dev,  {  	int result;  	unsigned int tmp; -	struct usb_configuration_descriptor *config; +	struct usb_config_descriptor *config; -	config = (struct usb_configuration_descriptor *)&buffer[0]; +	config = (struct usb_config_descriptor *)&buffer[0];  	result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, buffer, 9);  	if (result < 9) {  		if (result < 0) diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index d90e94d81..7f98a6354 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -210,6 +210,18 @@ static int ehci_td_buffer(struct qTD *td, void *buf, size_t sz)  	return 0;  } +static inline u8 ehci_encode_speed(enum usb_device_speed speed) +{ +	#define QH_HIGH_SPEED	2 +	#define QH_FULL_SPEED	0 +	#define QH_LOW_SPEED	1 +	if (speed == USB_SPEED_HIGH) +		return QH_HIGH_SPEED; +	if (speed == USB_SPEED_LOW) +		return QH_LOW_SPEED; +	return QH_FULL_SPEED; +} +  static int  ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,  		   int length, struct devrequest *req) @@ -318,12 +330,12 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,  	 * - qh_overlay.qt_altnext  	 */  	qh->qh_link = cpu_to_hc32((uint32_t)&ctrl->qh_list | QH_LINK_TYPE_QH); -	c = usb_pipespeed(pipe) != USB_SPEED_HIGH && !usb_pipeendpoint(pipe); +	c = (dev->speed != USB_SPEED_HIGH) && !usb_pipeendpoint(pipe);  	maxpacket = usb_maxpacket(dev, pipe);  	endpt = QH_ENDPT1_RL(8) | QH_ENDPT1_C(c) |  		QH_ENDPT1_MAXPKTLEN(maxpacket) | QH_ENDPT1_H(0) |  		QH_ENDPT1_DTC(QH_ENDPT1_DTC_DT_FROM_QTD) | -		QH_ENDPT1_EPS(usb_pipespeed(pipe)) | +		QH_ENDPT1_EPS(ehci_encode_speed(dev->speed)) |  		QH_ENDPT1_ENDPT(usb_pipeendpoint(pipe)) | QH_ENDPT1_I(0) |  		QH_ENDPT1_DEVADDR(usb_pipedevice(pipe));  	qh->qh_endpt1 = cpu_to_hc32(endpt); diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c index 19e16a4a8..289018c4f 100644 --- a/drivers/usb/host/isp116x-hcd.c +++ b/drivers/usb/host/isp116x-hcd.c @@ -617,7 +617,7 @@ static int isp116x_submit_job(struct usb_device *dev, unsigned long pipe,  	int epnum = usb_pipeendpoint(pipe);  	int max = usb_maxpacket(dev, pipe);  	int dir_out = usb_pipeout(pipe); -	int speed_low = usb_pipeslow(pipe); +	int speed_low = (dev->speed == USB_SPEED_LOW);  	int i, done = 0, stat, timeout, cc;  	/* 500 frames or 0.5s timeout when function is busy and NAKs transactions for a while */ diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index c2106adbd..bdbe250b0 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c @@ -803,7 +803,7 @@ static ed_t *ep_add_ed(struct usb_device *usb_dev, unsigned long pipe,  			| (usb_pipeisoc(pipe)? 0x8000: 0)  			| (usb_pipecontrol(pipe)? 0: \  					   (usb_pipeout(pipe)? 0x800: 0x1000)) -			| usb_pipeslow(pipe) << 13 +			| (usb_dev->speed == USB_SPEED_LOW) << 13  			| usb_maxpacket(usb_dev, pipe) << 16);  	if (ed->type == PIPE_INTERRUPT && ed->state == ED_UNLINK) { diff --git a/drivers/usb/host/ohci-s3c24xx.c b/drivers/usb/host/ohci-s3c24xx.c index 03cd4c3d2..dde076403 100644 --- a/drivers/usb/host/ohci-s3c24xx.c +++ b/drivers/usb/host/ohci-s3c24xx.c @@ -620,7 +620,7 @@ static struct ed *ep_add_ed(struct usb_device *usb_dev, unsigned long pipe)  			      | (usb_pipeisoc(pipe) ? 0x8000 : 0)  			      | (usb_pipecontrol(pipe) ? 0 :  				 (usb_pipeout(pipe) ? 0x800 : 0x1000)) -			      | usb_pipeslow(pipe) << 13 | +			      | (usb_dev->speed == USB_SPEED_LOW) << 13 |  			      usb_maxpacket(usb_dev, pipe) << 16);  	return ed_ret; diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index 283061604..417f1a8ab 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c @@ -234,7 +234,7 @@ static int sl811_send_packet(struct usb_device *dev, unsigned long pipe, __u8 *b  	__u16 status = 0;  	int err = 0, time_start = get_timer(0);  	int need_preamble = !(rh_status.wPortStatus & USB_PORT_STAT_LOW_SPEED) && -		usb_pipeslow(pipe); +		(dev->speed == USB_SPEED_LOW);  	if (len > 239)  		return -1; diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h index e91436929..ec8a038c7 100644 --- a/drivers/usb/musb/musb_core.h +++ b/drivers/usb/musb/musb_core.h @@ -34,7 +34,6 @@  #ifndef __MUSB_HDRC_DEFS_H__  #define __MUSB_HDRC_DEFS_H__ -#include <usb.h>  #include <usb_defs.h>  #include <asm/io.h> @@ -145,7 +144,7 @@ struct musb_regs {  		struct musb_epN_regs epN;  	} ep[16]; -} __attribute__((packed, aligned(USB_DMA_MINALIGN))); +} __attribute__((packed));  #endif  /* diff --git a/drivers/usb/musb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c index 06be38d1c..60e03a4bf 100644 --- a/drivers/usb/musb/musb_hcd.c +++ b/drivers/usb/musb/musb_hcd.c @@ -22,6 +22,7 @@   */  #include <common.h> +#include <usb.h>  #include "musb_hcd.h"  /* MSC control transfers */ @@ -485,8 +486,8 @@ static int ctrlreq_in_status_phase(struct usb_device *dev)   */  static u8 get_dev_speed(struct usb_device *dev)  { -	return (dev->speed & USB_SPEED_HIGH) ? MUSB_TYPE_SPEED_HIGH : -		((dev->speed & USB_SPEED_LOW) ? MUSB_TYPE_SPEED_LOW : +	return (dev->speed == USB_SPEED_HIGH) ? MUSB_TYPE_SPEED_HIGH : +		((dev->speed == USB_SPEED_LOW) ? MUSB_TYPE_SPEED_LOW :  						MUSB_TYPE_SPEED_FULL);  } diff --git a/include/usb.h b/include/usb.h index 9dd879194..4689db624 100644 --- a/include/usb.h +++ b/include/usb.h @@ -27,7 +27,7 @@  #define _USB_H_  #include <usb_defs.h> -#include <usbdescriptors.h> +#include <linux/usb/ch9.h>  /*   * The EHCI spec says that we must align to at least 32 bytes.  However, @@ -67,12 +67,6 @@ struct devrequest {  	unsigned short	length;  } __attribute__ ((packed)); -/* All standard descriptors have these 2 fields in common */ -struct usb_descriptor_header { -	unsigned char	bLength; -	unsigned char	bDescriptorType; -} __attribute__ ((packed)); -  /* Interface */  struct usb_interface {  	struct usb_interface_descriptor desc; @@ -86,7 +80,7 @@ struct usb_interface {  /* Configuration information.. */  struct usb_config { -	struct usb_configuration_descriptor desc; +	struct usb_config_descriptor desc;  	unsigned char	no_of_if;	/* number of interfaces */  	struct usb_interface if_desc[USB_MAXINTERFACES]; @@ -285,7 +279,6 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);   *  - device:		bits 8-14   *  - endpoint:		bits 15-18   *  - Data0/1:		bit 19 - *  - speed:		bit 26		(0 = Full, 1 = Low Speed, 2 = High)   *  - pipe type:	bits 30-31	(00 = isochronous, 01 = interrupt,   *					 10 = control, 11 = bulk)   * @@ -297,7 +290,7 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);  /* Create various pipes... */  #define create_pipe(dev,endpoint) \  		(((dev)->devnum << 8) | ((endpoint) << 15) | \ -		((dev)->speed << 26) | (dev)->maxpacketsize) +		(dev)->maxpacketsize)  #define default_pipe(dev) ((dev)->speed << 26)  #define usb_sndctrlpipe(dev, endpoint)	((PIPE_CONTROL << 30) | \ @@ -348,8 +341,6 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate);  #define usb_pipe_endpdev(pipe)	(((pipe) >> 8) & 0x7ff)  #define usb_pipeendpoint(pipe)	(((pipe) >> 15) & 0xf)  #define usb_pipedata(pipe)	(((pipe) >> 19) & 1) -#define usb_pipespeed(pipe)	(((pipe) >> 26) & 3) -#define usb_pipeslow(pipe)	(usb_pipespeed(pipe) == USB_SPEED_LOW)  #define usb_pipetype(pipe)	(((pipe) >> 30) & 3)  #define usb_pipeisoc(pipe)	(usb_pipetype((pipe)) == PIPE_ISOCHRONOUS)  #define usb_pipeint(pipe)	(usb_pipetype((pipe)) == PIPE_INTERRUPT) diff --git a/include/usb_defs.h b/include/usb_defs.h index 8032e5712..9502544b2 100644 --- a/include/usb_defs.h +++ b/include/usb_defs.h @@ -80,12 +80,6 @@  #define USB_DIR_OUT           0  #define USB_DIR_IN            0x80 -/* USB device speeds */ -#define USB_SPEED_FULL		0x0	/* 12Mbps */ -#define USB_SPEED_LOW		0x1	/* 1.5Mbps */ -#define USB_SPEED_HIGH		0x2	/* 480Mbps */ -#define USB_SPEED_RESERVED	0x3 -  /* Descriptor types */  #define USB_DT_DEVICE        0x01  #define USB_DT_CONFIG        0x02 |