diff options
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.patch | 146 |
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 - |