diff options
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch')
-rw-r--r-- | recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch new file mode 100644 index 00000000..0edb2557 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch | |||
@@ -0,0 +1,43 @@ | |||
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 | ||
6 | |||
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 | ||
10 | |||
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(-) | ||
15 | |||
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 | ||
43 | |||