diff options
Diffstat (limited to 'drivers')
| -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 | 
7 files changed, 22 insertions, 10 deletions
| 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);  } |