summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0013-musb_host-refactor-musb_save_toggle-take-2.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0013-musb_host-refactor-musb_save_toggle-take-2.patch
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0013-musb_host-refactor-musb_save_toggle-take-2.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0013-musb_host-refactor-musb_save_toggle-take-2.patch91
1 files changed, 91 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0013-musb_host-refactor-musb_save_toggle-take-2.patch b/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0013-musb_host-refactor-musb_save_toggle-take-2.patch
new file mode 100644
index 0000000000..0202871d41
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0013-musb_host-refactor-musb_save_toggle-take-2.patch
@@ -0,0 +1,91 @@
1From 2658f7c9029967501cd4d749364f2e02d02eebd5 Mon Sep 17 00:00:00 2001
2From: Sergei Shtylyov <sshtylyov-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
3Date: Fri, 27 Mar 2009 12:54:21 -0700
4Subject: [PATCH] musb_host: refactor musb_save_toggle() (take 2)
5
6Refactor musb_save_toggle() as follows:
7
8 - replace 'struct musb_hw_ep *ep' parameter by 'struct
9 musb_qh *qh' to avoid re-calculating this value
10
11 - move usb_settogle() call out of the *if* operator.
12
13This is a net minor shrink of source and object code.
14
15Signed-off-by: Sergei Shtylyov <sshtylyov-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
16Signed-off-by: David Brownell <dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
17---
18 drivers/usb/musb/musb_host.c | 35 ++++++++++++-----------------------
19 1 files changed, 12 insertions(+), 23 deletions(-)
20
21diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
22index f6e84a0..dc32ce4 100644
23--- a/drivers/usb/musb/musb_host.c
24+++ b/drivers/usb/musb/musb_host.c
25@@ -318,35 +318,24 @@ __acquires(musb->lock)
26 spin_lock(&musb->lock);
27 }
28
29-/* for bulk/interrupt endpoints only */
30-static inline void
31-musb_save_toggle(struct musb_hw_ep *ep, int is_in, struct urb *urb)
32+/* For bulk/interrupt endpoints only */
33+static inline void musb_save_toggle(struct musb_qh *qh, int is_in,
34+ struct urb *urb)
35 {
36- struct usb_device *udev = urb->dev;
37+ void __iomem *epio = qh->hw_ep->regs;
38 u16 csr;
39- void __iomem *epio = ep->regs;
40- struct musb_qh *qh;
41
42- /* FIXME: the current Mentor DMA code seems to have
43+ /*
44+ * FIXME: the current Mentor DMA code seems to have
45 * problems getting toggle correct.
46 */
47
48- if (is_in || ep->is_shared_fifo)
49- qh = ep->in_qh;
50+ if (is_in)
51+ csr = musb_readw(epio, MUSB_RXCSR) & MUSB_RXCSR_H_DATATOGGLE;
52 else
53- qh = ep->out_qh;
54+ csr = musb_readw(epio, MUSB_TXCSR) & MUSB_TXCSR_H_DATATOGGLE;
55
56- if (!is_in) {
57- csr = musb_readw(epio, MUSB_TXCSR);
58- usb_settoggle(udev, qh->epnum, 1,
59- (csr & MUSB_TXCSR_H_DATATOGGLE)
60- ? 1 : 0);
61- } else {
62- csr = musb_readw(epio, MUSB_RXCSR);
63- usb_settoggle(udev, qh->epnum, 0,
64- (csr & MUSB_RXCSR_H_DATATOGGLE)
65- ? 1 : 0);
66- }
67+ usb_settoggle(urb->dev, qh->epnum, !is_in, csr ? 1 : 0);
68 }
69
70 /* caller owns controller lock, irqs are blocked */
71@@ -362,7 +351,7 @@ musb_giveback(struct musb_qh *qh, struct urb *urb, int status)
72 switch (qh->type) {
73 case USB_ENDPOINT_XFER_BULK:
74 case USB_ENDPOINT_XFER_INT:
75- musb_save_toggle(ep, is_in, urb);
76+ musb_save_toggle(qh, is_in, urb);
77 break;
78 case USB_ENDPOINT_XFER_ISOC:
79 if (status == 0 && urb->error_count)
80@@ -1362,7 +1351,7 @@ static void musb_bulk_rx_nak_timeout(struct musb *musb, struct musb_hw_ep *ep)
81 urb->actual_length += dma->actual_len;
82 dma->actual_len = 0L;
83 }
84- musb_save_toggle(ep, 1, urb);
85+ musb_save_toggle(cur_qh, 1, urb);
86
87 /* move cur_qh to end of queue */
88 list_move_tail(&cur_qh->ring, &musb->in_bulk);
89--
901.6.0.4
91