diff options
Diffstat (limited to 'drivers/usb/host')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/ehci-mem.c | 6 | ||||
-rw-r--r-- | drivers/usb/host/ehci-q.c | 6 | ||||
-rw-r--r-- | drivers/usb/host/ehci-sched.c | 14 | ||||
-rw-r--r-- | drivers/usb/host/isp116x-hcd.c | 5 | ||||
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/ohci-lh7a404.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/ohci-mem.c | 4 | ||||
-rw-r--r-- | drivers/usb/host/ohci-omap.c | 1 | ||||
-rw-r--r-- | drivers/usb/host/ohci-s3c2410.c | 1 | ||||
-rw-r--r-- | drivers/usb/host/sl811-hcd.c | 18 | ||||
-rw-r--r-- | drivers/usb/host/uhci-q.c | 2 |
12 files changed, 36 insertions, 27 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index b948ffd94f45..f5eb9e7b5b18 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -983,7 +983,7 @@ static int ehci_urb_enqueue ( | |||
983 | struct usb_hcd *hcd, | 983 | struct usb_hcd *hcd, |
984 | struct usb_host_endpoint *ep, | 984 | struct usb_host_endpoint *ep, |
985 | struct urb *urb, | 985 | struct urb *urb, |
986 | unsigned mem_flags | 986 | gfp_t mem_flags |
987 | ) { | 987 | ) { |
988 | struct ehci_hcd *ehci = hcd_to_ehci (hcd); | 988 | struct ehci_hcd *ehci = hcd_to_ehci (hcd); |
989 | struct list_head qtd_list; | 989 | struct list_head qtd_list; |
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c index 5c38ad869485..91c2ab43cbcc 100644 --- a/drivers/usb/host/ehci-mem.c +++ b/drivers/usb/host/ehci-mem.c | |||
@@ -45,7 +45,7 @@ static inline void ehci_qtd_init (struct ehci_qtd *qtd, dma_addr_t dma) | |||
45 | INIT_LIST_HEAD (&qtd->qtd_list); | 45 | INIT_LIST_HEAD (&qtd->qtd_list); |
46 | } | 46 | } |
47 | 47 | ||
48 | static struct ehci_qtd *ehci_qtd_alloc (struct ehci_hcd *ehci, int flags) | 48 | static struct ehci_qtd *ehci_qtd_alloc (struct ehci_hcd *ehci, gfp_t flags) |
49 | { | 49 | { |
50 | struct ehci_qtd *qtd; | 50 | struct ehci_qtd *qtd; |
51 | dma_addr_t dma; | 51 | dma_addr_t dma; |
@@ -79,7 +79,7 @@ static void qh_destroy (struct kref *kref) | |||
79 | dma_pool_free (ehci->qh_pool, qh, qh->qh_dma); | 79 | dma_pool_free (ehci->qh_pool, qh, qh->qh_dma); |
80 | } | 80 | } |
81 | 81 | ||
82 | static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, int flags) | 82 | static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, gfp_t flags) |
83 | { | 83 | { |
84 | struct ehci_qh *qh; | 84 | struct ehci_qh *qh; |
85 | dma_addr_t dma; | 85 | dma_addr_t dma; |
@@ -161,7 +161,7 @@ static void ehci_mem_cleanup (struct ehci_hcd *ehci) | |||
161 | } | 161 | } |
162 | 162 | ||
163 | /* remember to add cleanup code (above) if you add anything here */ | 163 | /* remember to add cleanup code (above) if you add anything here */ |
164 | static int ehci_mem_init (struct ehci_hcd *ehci, int flags) | 164 | static int ehci_mem_init (struct ehci_hcd *ehci, gfp_t flags) |
165 | { | 165 | { |
166 | int i; | 166 | int i; |
167 | 167 | ||
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c index 940d38ca7d91..5bb872c3496d 100644 --- a/drivers/usb/host/ehci-q.c +++ b/drivers/usb/host/ehci-q.c | |||
@@ -477,7 +477,7 @@ qh_urb_transaction ( | |||
477 | struct ehci_hcd *ehci, | 477 | struct ehci_hcd *ehci, |
478 | struct urb *urb, | 478 | struct urb *urb, |
479 | struct list_head *head, | 479 | struct list_head *head, |
480 | int flags | 480 | gfp_t flags |
481 | ) { | 481 | ) { |
482 | struct ehci_qtd *qtd, *qtd_prev; | 482 | struct ehci_qtd *qtd, *qtd_prev; |
483 | dma_addr_t buf; | 483 | dma_addr_t buf; |
@@ -629,7 +629,7 @@ static struct ehci_qh * | |||
629 | qh_make ( | 629 | qh_make ( |
630 | struct ehci_hcd *ehci, | 630 | struct ehci_hcd *ehci, |
631 | struct urb *urb, | 631 | struct urb *urb, |
632 | int flags | 632 | gfp_t flags |
633 | ) { | 633 | ) { |
634 | struct ehci_qh *qh = ehci_qh_alloc (ehci, flags); | 634 | struct ehci_qh *qh = ehci_qh_alloc (ehci, flags); |
635 | u32 info1 = 0, info2 = 0; | 635 | u32 info1 = 0, info2 = 0; |
@@ -906,7 +906,7 @@ submit_async ( | |||
906 | struct usb_host_endpoint *ep, | 906 | struct usb_host_endpoint *ep, |
907 | struct urb *urb, | 907 | struct urb *urb, |
908 | struct list_head *qtd_list, | 908 | struct list_head *qtd_list, |
909 | unsigned mem_flags | 909 | gfp_t mem_flags |
910 | ) { | 910 | ) { |
911 | struct ehci_qtd *qtd; | 911 | struct ehci_qtd *qtd; |
912 | int epnum; | 912 | int epnum; |
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c index ccc7300baa6d..f0c8aa1ccd5d 100644 --- a/drivers/usb/host/ehci-sched.c +++ b/drivers/usb/host/ehci-sched.c | |||
@@ -589,7 +589,7 @@ static int intr_submit ( | |||
589 | struct usb_host_endpoint *ep, | 589 | struct usb_host_endpoint *ep, |
590 | struct urb *urb, | 590 | struct urb *urb, |
591 | struct list_head *qtd_list, | 591 | struct list_head *qtd_list, |
592 | unsigned mem_flags | 592 | gfp_t mem_flags |
593 | ) { | 593 | ) { |
594 | unsigned epnum; | 594 | unsigned epnum; |
595 | unsigned long flags; | 595 | unsigned long flags; |
@@ -634,7 +634,7 @@ done: | |||
634 | /* ehci_iso_stream ops work with both ITD and SITD */ | 634 | /* ehci_iso_stream ops work with both ITD and SITD */ |
635 | 635 | ||
636 | static struct ehci_iso_stream * | 636 | static struct ehci_iso_stream * |
637 | iso_stream_alloc (unsigned mem_flags) | 637 | iso_stream_alloc (gfp_t mem_flags) |
638 | { | 638 | { |
639 | struct ehci_iso_stream *stream; | 639 | struct ehci_iso_stream *stream; |
640 | 640 | ||
@@ -851,7 +851,7 @@ iso_stream_find (struct ehci_hcd *ehci, struct urb *urb) | |||
851 | /* ehci_iso_sched ops can be ITD-only or SITD-only */ | 851 | /* ehci_iso_sched ops can be ITD-only or SITD-only */ |
852 | 852 | ||
853 | static struct ehci_iso_sched * | 853 | static struct ehci_iso_sched * |
854 | iso_sched_alloc (unsigned packets, unsigned mem_flags) | 854 | iso_sched_alloc (unsigned packets, gfp_t mem_flags) |
855 | { | 855 | { |
856 | struct ehci_iso_sched *iso_sched; | 856 | struct ehci_iso_sched *iso_sched; |
857 | int size = sizeof *iso_sched; | 857 | int size = sizeof *iso_sched; |
@@ -924,7 +924,7 @@ itd_urb_transaction ( | |||
924 | struct ehci_iso_stream *stream, | 924 | struct ehci_iso_stream *stream, |
925 | struct ehci_hcd *ehci, | 925 | struct ehci_hcd *ehci, |
926 | struct urb *urb, | 926 | struct urb *urb, |
927 | unsigned mem_flags | 927 | gfp_t mem_flags |
928 | ) | 928 | ) |
929 | { | 929 | { |
930 | struct ehci_itd *itd; | 930 | struct ehci_itd *itd; |
@@ -1418,7 +1418,7 @@ itd_complete ( | |||
1418 | /*-------------------------------------------------------------------------*/ | 1418 | /*-------------------------------------------------------------------------*/ |
1419 | 1419 | ||
1420 | static int itd_submit (struct ehci_hcd *ehci, struct urb *urb, | 1420 | static int itd_submit (struct ehci_hcd *ehci, struct urb *urb, |
1421 | unsigned mem_flags) | 1421 | gfp_t mem_flags) |
1422 | { | 1422 | { |
1423 | int status = -EINVAL; | 1423 | int status = -EINVAL; |
1424 | unsigned long flags; | 1424 | unsigned long flags; |
@@ -1529,7 +1529,7 @@ sitd_urb_transaction ( | |||
1529 | struct ehci_iso_stream *stream, | 1529 | struct ehci_iso_stream *stream, |
1530 | struct ehci_hcd *ehci, | 1530 | struct ehci_hcd *ehci, |
1531 | struct urb *urb, | 1531 | struct urb *urb, |
1532 | unsigned mem_flags | 1532 | gfp_t mem_flags |
1533 | ) | 1533 | ) |
1534 | { | 1534 | { |
1535 | struct ehci_sitd *sitd; | 1535 | struct ehci_sitd *sitd; |
@@ -1779,7 +1779,7 @@ sitd_complete ( | |||
1779 | 1779 | ||
1780 | 1780 | ||
1781 | static int sitd_submit (struct ehci_hcd *ehci, struct urb *urb, | 1781 | static int sitd_submit (struct ehci_hcd *ehci, struct urb *urb, |
1782 | unsigned mem_flags) | 1782 | gfp_t mem_flags) |
1783 | { | 1783 | { |
1784 | int status = -EINVAL; | 1784 | int status = -EINVAL; |
1785 | unsigned long flags; | 1785 | unsigned long flags; |
diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c index 41bbae83fc71..2548d94fcd72 100644 --- a/drivers/usb/host/isp116x-hcd.c +++ b/drivers/usb/host/isp116x-hcd.c | |||
@@ -326,7 +326,8 @@ static void postproc_atl_queue(struct isp116x *isp116x) | |||
326 | usb_settoggle(udev, ep->epnum, | 326 | usb_settoggle(udev, ep->epnum, |
327 | ep->nextpid == | 327 | ep->nextpid == |
328 | USB_PID_OUT, | 328 | USB_PID_OUT, |
329 | PTD_GET_TOGGLE(ptd) ^ 1); | 329 | PTD_GET_TOGGLE(ptd)); |
330 | urb->actual_length += PTD_GET_COUNT(ptd); | ||
330 | urb->status = cc_to_error[TD_DATAUNDERRUN]; | 331 | urb->status = cc_to_error[TD_DATAUNDERRUN]; |
331 | spin_unlock(&urb->lock); | 332 | spin_unlock(&urb->lock); |
332 | continue; | 333 | continue; |
@@ -693,7 +694,7 @@ static int balance(struct isp116x *isp116x, u16 period, u16 load) | |||
693 | 694 | ||
694 | static int isp116x_urb_enqueue(struct usb_hcd *hcd, | 695 | static int isp116x_urb_enqueue(struct usb_hcd *hcd, |
695 | struct usb_host_endpoint *hep, struct urb *urb, | 696 | struct usb_host_endpoint *hep, struct urb *urb, |
696 | unsigned mem_flags) | 697 | gfp_t mem_flags) |
697 | { | 698 | { |
698 | struct isp116x *isp116x = hcd_to_isp116x(hcd); | 699 | struct isp116x *isp116x = hcd_to_isp116x(hcd); |
699 | struct usb_device *udev = urb->dev; | 700 | struct usb_device *udev = urb->dev; |
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 67c1aa5eb1c1..f8da8c7af7c6 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
@@ -180,7 +180,7 @@ static int ohci_urb_enqueue ( | |||
180 | struct usb_hcd *hcd, | 180 | struct usb_hcd *hcd, |
181 | struct usb_host_endpoint *ep, | 181 | struct usb_host_endpoint *ep, |
182 | struct urb *urb, | 182 | struct urb *urb, |
183 | unsigned mem_flags | 183 | gfp_t mem_flags |
184 | ) { | 184 | ) { |
185 | struct ohci_hcd *ohci = hcd_to_ohci (hcd); | 185 | struct ohci_hcd *ohci = hcd_to_ohci (hcd); |
186 | struct ed *ed; | 186 | struct ed *ed; |
diff --git a/drivers/usb/host/ohci-lh7a404.c b/drivers/usb/host/ohci-lh7a404.c index 817620d73841..859aca7be753 100644 --- a/drivers/usb/host/ohci-lh7a404.c +++ b/drivers/usb/host/ohci-lh7a404.c | |||
@@ -17,8 +17,6 @@ | |||
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <asm/hardware.h> | 19 | #include <asm/hardware.h> |
20 | #include <asm/mach-types.h> | ||
21 | #include <asm/arch/hardware.h> | ||
22 | 20 | ||
23 | 21 | ||
24 | extern int usb_disabled(void); | 22 | extern int usb_disabled(void); |
diff --git a/drivers/usb/host/ohci-mem.c b/drivers/usb/host/ohci-mem.c index fd3c4d3714bd..9fb83dfb1eb4 100644 --- a/drivers/usb/host/ohci-mem.c +++ b/drivers/usb/host/ohci-mem.c | |||
@@ -84,7 +84,7 @@ dma_to_td (struct ohci_hcd *hc, dma_addr_t td_dma) | |||
84 | 84 | ||
85 | /* TDs ... */ | 85 | /* TDs ... */ |
86 | static struct td * | 86 | static struct td * |
87 | td_alloc (struct ohci_hcd *hc, unsigned mem_flags) | 87 | td_alloc (struct ohci_hcd *hc, gfp_t mem_flags) |
88 | { | 88 | { |
89 | dma_addr_t dma; | 89 | dma_addr_t dma; |
90 | struct td *td; | 90 | struct td *td; |
@@ -118,7 +118,7 @@ td_free (struct ohci_hcd *hc, struct td *td) | |||
118 | 118 | ||
119 | /* EDs ... */ | 119 | /* EDs ... */ |
120 | static struct ed * | 120 | static struct ed * |
121 | ed_alloc (struct ohci_hcd *hc, unsigned mem_flags) | 121 | ed_alloc (struct ohci_hcd *hc, gfp_t mem_flags) |
122 | { | 122 | { |
123 | dma_addr_t dma; | 123 | dma_addr_t dma; |
124 | struct ed *ed; | 124 | struct ed *ed; |
diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c index 5cde76faab93..d8f3ba7ad52e 100644 --- a/drivers/usb/host/ohci-omap.c +++ b/drivers/usb/host/ohci-omap.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
19 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
20 | 20 | ||
21 | #include <asm/arch/hardware.h> | ||
22 | #include <asm/arch/mux.h> | 21 | #include <asm/arch/mux.h> |
23 | #include <asm/arch/irqs.h> | 22 | #include <asm/arch/irqs.h> |
24 | #include <asm/arch/gpio.h> | 23 | #include <asm/arch/gpio.h> |
diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c index 3d9bcf78a9a4..da7d5478f74d 100644 --- a/drivers/usb/host/ohci-s3c2410.c +++ b/drivers/usb/host/ohci-s3c2410.c | |||
@@ -20,7 +20,6 @@ | |||
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <asm/hardware.h> | 22 | #include <asm/hardware.h> |
23 | #include <asm/mach-types.h> | ||
24 | #include <asm/hardware/clock.h> | 23 | #include <asm/hardware/clock.h> |
25 | #include <asm/arch/usb-control.h> | 24 | #include <asm/arch/usb-control.h> |
26 | 25 | ||
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index d2a1fd40dfcb..cad858575cea 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c | |||
@@ -782,6 +782,9 @@ retry: | |||
782 | /* usb 1.1 says max 90% of a frame is available for periodic transfers. | 782 | /* usb 1.1 says max 90% of a frame is available for periodic transfers. |
783 | * this driver doesn't promise that much since it's got to handle an | 783 | * this driver doesn't promise that much since it's got to handle an |
784 | * IRQ per packet; irq handling latencies also use up that time. | 784 | * IRQ per packet; irq handling latencies also use up that time. |
785 | * | ||
786 | * NOTE: the periodic schedule is a sparse tree, with the load for | ||
787 | * each branch minimized. see fig 3.5 in the OHCI spec for example. | ||
785 | */ | 788 | */ |
786 | #define MAX_PERIODIC_LOAD 500 /* out of 1000 usec */ | 789 | #define MAX_PERIODIC_LOAD 500 /* out of 1000 usec */ |
787 | 790 | ||
@@ -815,7 +818,7 @@ static int sl811h_urb_enqueue( | |||
815 | struct usb_hcd *hcd, | 818 | struct usb_hcd *hcd, |
816 | struct usb_host_endpoint *hep, | 819 | struct usb_host_endpoint *hep, |
817 | struct urb *urb, | 820 | struct urb *urb, |
818 | unsigned mem_flags | 821 | gfp_t mem_flags |
819 | ) { | 822 | ) { |
820 | struct sl811 *sl811 = hcd_to_sl811(hcd); | 823 | struct sl811 *sl811 = hcd_to_sl811(hcd); |
821 | struct usb_device *udev = urb->dev; | 824 | struct usb_device *udev = urb->dev; |
@@ -843,6 +846,7 @@ static int sl811h_urb_enqueue( | |||
843 | if (!(sl811->port1 & (1 << USB_PORT_FEAT_ENABLE)) | 846 | if (!(sl811->port1 & (1 << USB_PORT_FEAT_ENABLE)) |
844 | || !HC_IS_RUNNING(hcd->state)) { | 847 | || !HC_IS_RUNNING(hcd->state)) { |
845 | retval = -ENODEV; | 848 | retval = -ENODEV; |
849 | kfree(ep); | ||
846 | goto fail; | 850 | goto fail; |
847 | } | 851 | } |
848 | 852 | ||
@@ -911,8 +915,16 @@ static int sl811h_urb_enqueue( | |||
911 | case PIPE_ISOCHRONOUS: | 915 | case PIPE_ISOCHRONOUS: |
912 | case PIPE_INTERRUPT: | 916 | case PIPE_INTERRUPT: |
913 | urb->interval = ep->period; | 917 | urb->interval = ep->period; |
914 | if (ep->branch < PERIODIC_SIZE) | 918 | if (ep->branch < PERIODIC_SIZE) { |
919 | /* NOTE: the phase is correct here, but the value | ||
920 | * needs offsetting by the transfer queue depth. | ||
921 | * All current drivers ignore start_frame, so this | ||
922 | * is unlikely to ever matter... | ||
923 | */ | ||
924 | urb->start_frame = (sl811->frame & (PERIODIC_SIZE - 1)) | ||
925 | + ep->branch; | ||
915 | break; | 926 | break; |
927 | } | ||
916 | 928 | ||
917 | retval = balance(sl811, ep->period, ep->load); | 929 | retval = balance(sl811, ep->period, ep->load); |
918 | if (retval < 0) | 930 | if (retval < 0) |
@@ -1122,7 +1134,7 @@ sl811h_hub_descriptor ( | |||
1122 | desc->wHubCharacteristics = (__force __u16)cpu_to_le16(temp); | 1134 | desc->wHubCharacteristics = (__force __u16)cpu_to_le16(temp); |
1123 | 1135 | ||
1124 | /* two bitmaps: ports removable, and legacy PortPwrCtrlMask */ | 1136 | /* two bitmaps: ports removable, and legacy PortPwrCtrlMask */ |
1125 | desc->bitmap[0] = 1 << 1; | 1137 | desc->bitmap[0] = 0 << 1; |
1126 | desc->bitmap[1] = ~0; | 1138 | desc->bitmap[1] = ~0; |
1127 | } | 1139 | } |
1128 | 1140 | ||
diff --git a/drivers/usb/host/uhci-q.c b/drivers/usb/host/uhci-q.c index ea0d168a8c67..4e0fbe2c1a9a 100644 --- a/drivers/usb/host/uhci-q.c +++ b/drivers/usb/host/uhci-q.c | |||
@@ -1164,7 +1164,7 @@ static struct urb *uhci_find_urb_ep(struct uhci_hcd *uhci, struct urb *urb) | |||
1164 | 1164 | ||
1165 | static int uhci_urb_enqueue(struct usb_hcd *hcd, | 1165 | static int uhci_urb_enqueue(struct usb_hcd *hcd, |
1166 | struct usb_host_endpoint *ep, | 1166 | struct usb_host_endpoint *ep, |
1167 | struct urb *urb, unsigned mem_flags) | 1167 | struct urb *urb, gfp_t mem_flags) |
1168 | { | 1168 | { |
1169 | int ret; | 1169 | int ret; |
1170 | struct uhci_hcd *uhci = hcd_to_uhci(hcd); | 1170 | struct uhci_hcd *uhci = hcd_to_uhci(hcd); |