summaryrefslogtreecommitdiff
path: root/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0016-musb_host-factor-out-musb_ep_-get-set-_qh.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0016-musb_host-factor-out-musb_ep_-get-set-_qh.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0016-musb_host-factor-out-musb_ep_-get-set-_qh.patch146
1 files changed, 0 insertions, 146 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0016-musb_host-factor-out-musb_ep_-get-set-_qh.patch b/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0016-musb_host-factor-out-musb_ep_-get-set-_qh.patch
deleted file mode 100644
index a2f54ff47..000000000
--- a/meta/recipes-kernel/linux/linux-omap-2.6.29/musb/0016-musb_host-factor-out-musb_ep_-get-set-_qh.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From f9ca8154cf395ec00129f12016697ef610a826ff Mon Sep 17 00:00:00 2001
-From: Sergei Shtylyov <sshtylyov-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
-Date: Fri, 27 Mar 2009 12:55:16 -0700
-Subject: [PATCH] musb_host: factor out musb_ep_{get|set}_qh()
-
-Factor out the often used code to get/set the active 'qh'
-pointer for the hardware endpoint. Change the way the case
-of a shared FIFO is handled by setting *both* 'in_qh' and
-'out_qh' fields of 'struct musb_hw_ep'. That seems more
-consistent and makes getting to the current 'qh' easy when
-the code knows the direction beforehand.
-
-While at it, turn some assignments into intializers and
-fix declaration style in the vicinity.
-
-Signed-off-by: Sergei Shtylyov <sshtylyov-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
-Signed-off-by: David Brownell <dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
----
- drivers/usb/musb/musb_host.c | 56 ++++++++++++++++-------------------------
- 1 files changed, 22 insertions(+), 34 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index dc32ce4..bc89079 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -178,6 +178,19 @@ static inline void cppi_host_txdma_start(struct musb_hw_ep *ep)
- musb_writew(ep->regs, MUSB_TXCSR, txcsr);
- }
-
-+static void musb_ep_set_qh(struct musb_hw_ep *ep, int is_in, struct musb_qh *qh)
-+{
-+ if (is_in != 0 || ep->is_shared_fifo)
-+ ep->in_qh = qh;
-+ if (is_in == 0 || ep->is_shared_fifo)
-+ ep->out_qh = qh;
-+}
-+
-+static struct musb_qh *musb_ep_get_qh(struct musb_hw_ep *ep, int is_in)
-+{
-+ return is_in ? ep->in_qh : ep->out_qh;
-+}
-+
- /*
- * Start the URB at the front of an endpoint's queue
- * end must be claimed from the caller.
-@@ -207,7 +220,6 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
- case USB_ENDPOINT_XFER_CONTROL:
- /* control transfers always start with SETUP */
- is_in = 0;
-- hw_ep->out_qh = qh;
- musb->ep0_stage = MUSB_EP0_START;
- buf = urb->setup_packet;
- len = 8;
-@@ -236,10 +248,7 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
- epnum, buf + offset, len);
-
- /* Configure endpoint */
-- if (is_in || hw_ep->is_shared_fifo)
-- hw_ep->in_qh = qh;
-- else
-- hw_ep->out_qh = qh;
-+ musb_ep_set_qh(hw_ep, is_in, qh);
- musb_ep_program(musb, epnum, urb, !is_in, buf, offset, len);
-
- /* transmit may have more work: start it when it is time */
-@@ -374,11 +383,8 @@ musb_giveback(struct musb_qh *qh, struct urb *urb, int status)
- else
- ep->tx_reinit = 1;
-
-- /* clobber old pointers to this qh */
-- if (is_in || ep->is_shared_fifo)
-- ep->in_qh = NULL;
-- else
-- ep->out_qh = NULL;
-+ /* Clobber old pointers to this qh */
-+ musb_ep_set_qh(ep, is_in, NULL);
- qh->hep->hcpriv = NULL;
-
- switch (qh->type) {
-@@ -421,12 +427,7 @@ static void
- musb_advance_schedule(struct musb *musb, struct urb *urb,
- struct musb_hw_ep *hw_ep, int is_in)
- {
-- struct musb_qh *qh;
--
-- if (is_in || hw_ep->is_shared_fifo)
-- qh = hw_ep->in_qh;
-- else
-- qh = hw_ep->out_qh;
-+ struct musb_qh *qh = musb_ep_get_qh(hw_ep, is_in);
-
- if (urb->status == -EINPROGRESS)
- qh = musb_giveback(qh, urb, 0);
-@@ -689,15 +690,8 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
- void __iomem *mbase = musb->mregs;
- struct musb_hw_ep *hw_ep = musb->endpoints + epnum;
- void __iomem *epio = hw_ep->regs;
-- struct musb_qh *qh;
-- u16 packet_sz;
--
-- if (!is_out || hw_ep->is_shared_fifo)
-- qh = hw_ep->in_qh;
-- else
-- qh = hw_ep->out_qh;
--
-- packet_sz = qh->maxpacket;
-+ struct musb_qh *qh = musb_ep_get_qh(hw_ep, !is_out);
-+ u16 packet_sz = qh->maxpacket;
-
- DBG(3, "%s hw%d urb %p spd%d dev%d ep%d%s "
- "h_addr%02x h_port%02x bytes %d\n",
-@@ -1114,17 +1108,14 @@ void musb_host_tx(struct musb *musb, u8 epnum)
- u16 tx_csr;
- size_t length = 0;
- size_t offset = 0;
-- struct urb *urb;
- struct musb_hw_ep *hw_ep = musb->endpoints + epnum;
- void __iomem *epio = hw_ep->regs;
-- struct musb_qh *qh = hw_ep->is_shared_fifo ? hw_ep->in_qh
-- : hw_ep->out_qh;
-+ struct musb_qh *qh = hw_ep->out_qh;
-+ struct urb *urb = next_urb(qh);
- u32 status = 0;
- void __iomem *mbase = musb->mregs;
- struct dma_channel *dma;
-
-- urb = next_urb(qh);
--
- musb_ep_select(mbase, epnum);
- tx_csr = musb_readw(epio, MUSB_TXCSR);
-
-@@ -1741,10 +1732,7 @@ static int musb_schedule(
- epnum++, hw_ep++) {
- int diff;
-
-- if (is_in || hw_ep->is_shared_fifo) {
-- if (hw_ep->in_qh != NULL)
-- continue;
-- } else if (hw_ep->out_qh != NULL)
-+ if (musb_ep_get_qh(hw_ep, is_in) != NULL)
- continue;
-
- if (hw_ep == musb->bulk_ep)
---
-1.6.0.4
-