Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2047e40d724d42928c0b5994a1568c1b738efdb7
Commit:     2047e40d724d42928c0b5994a1568c1b738efdb7
Parent:     4521ef42de8dbaa9bce3f60bbb5868564f752e98
Author:     Michael Hennerich <[EMAIL PROTECTED]>
AuthorDate: Tue Jan 22 15:29:18 2008 +0800
Committer:  Bryan Wu <[EMAIL PROTECTED]>
CommitDate: Tue Jan 22 15:29:18 2008 +0800

    [Blackfin] arch: set_bfin_dma_config shouldnt set SYNC or RESTART by 
default - add argument or option
    
    Signed-off-by: Michael Hennerich <[EMAIL PROTECTED]>
    Signed-off-by: Bryan Wu <[EMAIL PROTECTED]>
---
 arch/blackfin/kernel/bfin_dma_5xx.c |    4 ++--
 drivers/serial/bfin_5xx.c           |    6 ++++--
 drivers/video/bf54x-lq043fb.c       |    3 ++-
 include/asm-blackfin/dma.h          |    6 +++++-
 4 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c 
b/arch/blackfin/kernel/bfin_dma_5xx.c
index b544460..fa9debe 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -339,13 +339,13 @@ EXPORT_SYMBOL(set_dma_config);
 
 unsigned short
 set_bfin_dma_config(char direction, char flow_mode,
-                   char intr_mode, char dma_mode, char width)
+                   char intr_mode, char dma_mode, char width, char syncmode)
 {
        unsigned short config;
 
        config =
            ((direction << 1) | (width << 2) | (dma_mode << 4) |
-            (intr_mode << 6) | (flow_mode << 12) | RESTART);
+            (intr_mode << 6) | (flow_mode << 12) | (syncmode << 5));
        return config;
 }
 EXPORT_SYMBOL(set_bfin_dma_config);
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index 6f475b6..ac2a3ef 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -442,7 +442,8 @@ static void bfin_serial_dma_tx_chars(struct 
bfin_serial_port *uart)
                set_bfin_dma_config(DIR_READ, DMA_FLOW_STOP,
                        INTR_ON_BUF,
                        DIMENSION_LINEAR,
-                       DATA_SIZE_8));
+                       DATA_SIZE_8,
+                       DMA_SYNC_RESTART));
        set_dma_start_addr(uart->tx_dma_channel, (unsigned 
long)(xmit->buf+xmit->tail));
        set_dma_x_count(uart->tx_dma_channel, uart->tx_count);
        set_dma_x_modify(uart->tx_dma_channel, 1);
@@ -689,7 +690,8 @@ static int bfin_serial_startup(struct uart_port *port)
        set_dma_config(uart->rx_dma_channel,
                set_bfin_dma_config(DIR_WRITE, DMA_FLOW_AUTO,
                                INTR_ON_ROW, DIMENSION_2D,
-                               DATA_SIZE_8));
+                               DATA_SIZE_8,
+                               DMA_SYNC_RESTART));
        set_dma_x_count(uart->rx_dma_channel, DMA_RX_XCOUNT);
        set_dma_x_modify(uart->rx_dma_channel, 1);
        set_dma_y_count(uart->rx_dma_channel, DMA_RX_YCOUNT);
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 74d11c3..1b7e54d 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -224,7 +224,8 @@ static int config_dma(struct bfin_bf54xfb_info *fbi)
        set_dma_config(CH_EPPI0,
                       set_bfin_dma_config(DIR_READ, DMA_FLOW_AUTO,
                                           INTR_DISABLE, DIMENSION_2D,
-                                          DATA_SIZE_32));
+                                          DATA_SIZE_32,
+                                          DMA_NOSYNC_KEEP_DMA_BUF));
        set_dma_x_count(CH_EPPI0, (LCD_X_RES * LCD_BPP) / DMA_BUS_SIZE);
        set_dma_x_modify(CH_EPPI0, DMA_BUS_SIZE / 8);
        set_dma_y_count(CH_EPPI0, LCD_Y_RES);
diff --git a/include/asm-blackfin/dma.h b/include/asm-blackfin/dma.h
index b469505..5abaa2c 100644
--- a/include/asm-blackfin/dma.h
+++ b/include/asm-blackfin/dma.h
@@ -76,6 +76,9 @@ enum dma_chan_status {
 #define INTR_ON_BUF    2
 #define INTR_ON_ROW    3
 
+#define DMA_NOSYNC_KEEP_DMA_BUF        0
+#define DMA_SYNC_RESTART       1
+
 struct dmasg {
        unsigned long next_desc_addr;
        unsigned long start_addr;
@@ -157,7 +160,8 @@ void set_dma_y_count(unsigned int channel, unsigned short 
y_count);
 void set_dma_y_modify(unsigned int channel, short y_modify);
 void set_dma_config(unsigned int channel, unsigned short config);
 unsigned short set_bfin_dma_config(char direction, char flow_mode,
-                                  char intr_mode, char dma_mode, char width);
+                                  char intr_mode, char dma_mode, char width,
+                                  char syncmode);
 void set_dma_curr_addr(unsigned int channel, unsigned long addr);
 
 /* get curr status for polling */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to