linux-ti33x-psp 3.2: backport PM and USB fixes from PSP
[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-ti33x-psp-3.2 / psp / 0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch
1 From 946a82d6042097a0b3c5e072df75da9ffcbbc44c Mon Sep 17 00:00:00 2001
2 From: Ajay Kumar Gupta <ajay.gupta@ti.com>
3 Date: Thu, 24 May 2012 15:45:45 +0530
4 Subject: [PATCH 12/18] usb: musb: cppi41: use dsb() to make sure PDs are
5  updated to memory
7 Before pushing the tx/rx cppi packet descriptors to respective input queues
8 of TX/RX DMA channels, use memory barrier dsb() to make sure the descriptors
9 contents are written to memory
11 Signed-off-by: Ravi B <ravibabu@ti.com>
12 ---
13  drivers/usb/musb/cppi41_dma.c |    7 +++++++
14  1 files changed, 7 insertions(+), 0 deletions(-)
16 diff --git a/drivers/usb/musb/cppi41_dma.c b/drivers/usb/musb/cppi41_dma.c
17 index 3665d0f..bf74cf3 100644
18 --- a/drivers/usb/musb/cppi41_dma.c
19 +++ b/drivers/usb/musb/cppi41_dma.c
20 @@ -653,6 +653,9 @@ static unsigned cppi41_next_tx_segment(struct cppi41_channel *tx_ch)
21                 dev_dbg(musb->controller, "TX PD %p: buf %08x, len %08x, pkt info %08x\n", curr_pd,
22                     hw_desc->buf_ptr, hw_desc->buf_len, hw_desc->pkt_info);
23  
24 +               /* make sure descriptor details are updated to memory*/
25 +               dsb();
26 +
27                 /* enable tx fifo empty interrupt */
28                 if (tx_ch->txfifo_intr_enable) {
29                         dev_dbg(musb->controller, "txs(%p %d) enable txFintr\n",
30 @@ -869,6 +872,10 @@ static unsigned cppi41_next_rx_segment(struct cppi41_channel *rx_ch)
31  
32                 if (en_bd_intr)
33                         hw_desc->orig_buf_len |= CPPI41_PKT_INTR_FLAG;
34 +
35 +               /* make sure descriptor details are updated to memory*/
36 +               dsb();
37 +
38                 /*
39                  * Push the free Rx packet descriptor
40                  * to the free descriptor/buffer queue.
41 -- 
42 1.7.7.6