ag71xx: fix memory corruption issues on ar7240 on ethernet start/stop
[openwrt.git] / target / linux / s3c24xx / patches-2.6.30 / 010-s3c-dma.patch
index 6ed16f5..e0ff7c4 100644 (file)
@@ -1,7 +1,5 @@
-Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/mach-s3c2410/include/mach/dma.h     2009-05-16 06:12:57.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h  2009-05-18 19:08:29.000000000 +0200
+--- a/arch/arm/mach-s3c2410/include/mach/dma.h
++++ b/arch/arm/mach-s3c2410/include/mach/dma.h
 @@ -3,7 +3,7 @@
   * Copyright (C) 2003,2004,2006 Simtec Electronics
   *    Ben Dooks <ben@simtec.co.uk>
 @@ -3,7 +3,7 @@
   * Copyright (C) 2003,2004,2006 Simtec Electronics
   *    Ben Dooks <ben@simtec.co.uk>
@@ -21,7 +19,7 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
  
  #define MAX_DMA_TRANSFER_SIZE   0x100000 /* Data Unit is half word  */
  
  
  #define MAX_DMA_TRANSFER_SIZE   0x100000 /* Data Unit is half word  */
  
-@@ -55,9 +55,9 @@
+@@ -55,9 +55,9 @@ enum dma_ch {
  
  /* we have 4 dma channels */
  #ifndef CONFIG_CPU_S3C2443
  
  /* we have 4 dma channels */
  #ifndef CONFIG_CPU_S3C2443
@@ -33,7 +31,7 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
  #endif
  
  /* types */
  #endif
  
  /* types */
-@@ -68,7 +68,6 @@
+@@ -68,7 +68,6 @@ enum s3c2410_dma_state {
        S3C2410_DMA_PAUSED
  };
  
        S3C2410_DMA_PAUSED
  };
  
@@ -41,7 +39,7 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
  /* enum s3c2410_dma_loadst
   *
   * This represents the state of the DMA engine, wrt to the loaded / running
  /* enum s3c2410_dma_loadst
   *
   * This represents the state of the DMA engine, wrt to the loaded / running
-@@ -104,32 +103,6 @@
+@@ -104,32 +103,6 @@ enum s3c2410_dma_loadst {
        S3C2410_DMALOAD_1LOADED_1RUNNING,
  };
  
        S3C2410_DMALOAD_1LOADED_1RUNNING,
  };
  
@@ -74,7 +72,7 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
  
  /* flags */
  
  
  /* flags */
  
-@@ -137,19 +110,18 @@
+@@ -137,19 +110,18 @@ enum s3c2410_chan_op {
                                            * waiting for reloads */
  #define S3C2410_DMAF_AUTOSTART    (1<<1)   /* auto-start if buffer queued */
  
                                            * waiting for reloads */
  #define S3C2410_DMAF_AUTOSTART    (1<<1)   /* auto-start if buffer queued */
  
@@ -98,7 +96,7 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
  struct s3c2410_dma_buf {
        struct s3c2410_dma_buf  *next;
        int                      magic;         /* magic */
  struct s3c2410_dma_buf {
        struct s3c2410_dma_buf  *next;
        int                      magic;         /* magic */
-@@ -161,20 +133,6 @@
+@@ -161,20 +133,6 @@ struct s3c2410_dma_buf {
  
  /* [1] is this updated for both recv/send modes? */
  
  
  /* [1] is this updated for both recv/send modes? */
  
@@ -119,7 +117,7 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
  struct s3c2410_dma_stats {
        unsigned long           loads;
        unsigned long           timeout_longest;
  struct s3c2410_dma_stats {
        unsigned long           loads;
        unsigned long           timeout_longest;
-@@ -206,10 +164,10 @@
+@@ -206,10 +164,10 @@ struct s3c2410_dma_chan {
  
        /* channel configuration */
        enum s3c2410_dmasrc      source;
  
        /* channel configuration */
        enum s3c2410_dmasrc      source;
@@ -131,7 +129,7 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
  
        struct s3c24xx_dma_map  *map;           /* channel hw maps */
  
  
        struct s3c24xx_dma_map  *map;           /* channel hw maps */
  
-@@ -236,213 +194,12 @@
+@@ -236,213 +194,12 @@ struct s3c2410_dma_chan {
        struct sys_device       dev;
  };
  
        struct sys_device       dev;
  };
  
@@ -349,11 +347,9 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/include/mach/dma.h
 +}
  
  #endif /* __ASM_ARCH_DMA_H */
 +}
  
  #endif /* __ASM_ARCH_DMA_H */
-Index: linux-2.6.30-rc6/arch/arm/mach-s3c2442/Kconfig
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/mach-s3c2442/Kconfig        2009-05-16 06:12:57.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/mach-s3c2442/Kconfig     2009-05-18 19:08:29.000000000 +0200
-@@ -11,6 +11,7 @@
+--- a/arch/arm/mach-s3c2442/Kconfig
++++ b/arch/arm/mach-s3c2442/Kconfig
+@@ -11,6 +11,7 @@ config CPU_S3C2442
        select S3C2410_CLOCK
        select S3C2410_GPIO
        select S3C2410_PM if PM
        select S3C2410_CLOCK
        select S3C2410_GPIO
        select S3C2410_PM if PM
@@ -361,10 +357,8 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2442/Kconfig
        select CPU_S3C244X
        select CPU_LLSERIAL_S3C2440
        help
        select CPU_S3C244X
        select CPU_LLSERIAL_S3C2440
        help
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c/dma.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c/dma.c   2009-05-18 19:08:29.000000000 +0200
+--- /dev/null
++++ b/arch/arm/plat-s3c/dma.c
 @@ -0,0 +1,86 @@
 +/* linux/arch/arm/plat-s3c/dma.c
 + *
 @@ -0,0 +1,86 @@
 +/* linux/arch/arm/plat-s3c/dma.c
 + *
@@ -452,10 +446,8 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c/dma.c
 +      return 0;
 +}
 +EXPORT_SYMBOL(s3c2410_dma_setflags);
 +      return 0;
 +}
 +EXPORT_SYMBOL(s3c2410_dma_setflags);
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c/include/plat/dma-core.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c/include/plat/dma-core.h 2009-05-18 19:08:29.000000000 +0200
+--- /dev/null
++++ b/arch/arm/plat-s3c/include/plat/dma-core.h
 @@ -0,0 +1,22 @@
 +/* arch/arm/plat-s3c/include/plat/dma.h
 + *
 @@ -0,0 +1,22 @@
 +/* arch/arm/plat-s3c/include/plat/dma.h
 + *
@@ -479,10 +471,8 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c/include/plat/dma-core.h
 +extern struct s3c2410_dma_chan s3c2410_chans[];
 +
 +
 +extern struct s3c2410_dma_chan s3c2410_chans[];
 +
 +
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c/include/plat/dma.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c/include/plat/dma.h      2009-05-18 19:08:29.000000000 +0200
+--- /dev/null
++++ b/arch/arm/plat-s3c/include/plat/dma.h
 @@ -0,0 +1,128 @@
 +/* arch/arm/plat-s3c/include/plat/dma.h
 + *
 @@ -0,0 +1,128 @@
 +/* arch/arm/plat-s3c/include/plat/dma.h
 + *
@@ -612,11 +602,9 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c/include/plat/dma.h
 +extern int s3c2410_dma_set_buffdone_fn(unsigned int, s3c2410_dma_cbfn_t rtn);
 +
 +
 +extern int s3c2410_dma_set_buffdone_fn(unsigned int, s3c2410_dma_cbfn_t rtn);
 +
 +
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c/Kconfig
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/plat-s3c/Kconfig    2009-05-16 06:12:57.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c/Kconfig 2009-05-18 19:08:29.000000000 +0200
-@@ -150,6 +150,13 @@
+--- a/arch/arm/plat-s3c/Kconfig
++++ b/arch/arm/plat-s3c/Kconfig
+@@ -150,6 +150,13 @@ config S3C_GPIO_CFG_S3C64XX
          Internal configuration to enable S3C64XX style GPIO configuration
          functions.
  
          Internal configuration to enable S3C64XX style GPIO configuration
          functions.
  
@@ -630,11 +618,9 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c/Kconfig
  # device definitions to compile in
  
  config S3C_DEV_HSMMC
  # device definitions to compile in
  
  config S3C_DEV_HSMMC
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c/Makefile
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/plat-s3c/Makefile   2009-05-18 19:07:48.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c/Makefile        2009-05-18 19:08:29.000000000 +0200
-@@ -18,6 +18,10 @@
+--- a/arch/arm/plat-s3c/Makefile
++++ b/arch/arm/plat-s3c/Makefile
+@@ -18,6 +18,10 @@ obj-y                               += pwm-clock.o
  obj-y                         += gpio.o
  obj-y                         += gpio-config.o
  
  obj-y                         += gpio.o
  obj-y                         += gpio-config.o
  
@@ -645,16 +631,14 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c/Makefile
  # PM support
  
  obj-$(CONFIG_PM)              += pm.o
  # PM support
  
  obj-$(CONFIG_PM)              += pm.o
-@@ -31,3 +35,5 @@
+@@ -31,3 +35,5 @@ obj-$(CONFIG_S3C_DEV_HSMMC1) += dev-hsmm
  obj-y                         += dev-i2c0.o
  obj-$(CONFIG_S3C_DEV_I2C1)    += dev-i2c1.o
  obj-$(CONFIG_S3C_DEV_FB)      += dev-fb.o
 +obj-$(CONFIG_S3C_DMA)         += dma.o
 +
  obj-y                         += dev-i2c0.o
  obj-$(CONFIG_S3C_DEV_I2C1)    += dev-i2c1.o
  obj-$(CONFIG_S3C_DEV_FB)      += dev-fb.o
 +obj-$(CONFIG_S3C_DMA)         += dma.o
 +
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/plat-s3c24xx/dma.c  2009-05-16 06:12:57.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c       2009-05-18 19:08:29.000000000 +0200
+--- a/arch/arm/plat-s3c24xx/dma.c
++++ b/arch/arm/plat-s3c24xx/dma.c
 @@ -31,10 +31,11 @@
  #include <asm/irq.h>
  #include <mach/hardware.h>
 @@ -31,10 +31,11 @@
  #include <asm/irq.h>
  #include <mach/hardware.h>
@@ -669,7 +653,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
  /* io map for dma */
  static void __iomem *dma_base;
  
  /* io map for dma */
  static void __iomem *dma_base;
-@@ -44,8 +45,6 @@
+@@ -44,8 +45,6 @@ static int dma_channels;
  
  static struct s3c24xx_dma_selection dma_sel;
  
  
  static struct s3c24xx_dma_selection dma_sel;
  
@@ -678,7 +662,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
  /* debugging functions */
  
  
  /* debugging functions */
  
-@@ -135,21 +134,6 @@
+@@ -135,21 +134,6 @@ dmadbg_showregs(const char *fname, int l
  #define dbg_showchan(chan) do { } while(0)
  #endif /* CONFIG_S3C2410_DMA_DEBUG */
  
  #define dbg_showchan(chan) do { } while(0)
  #endif /* CONFIG_S3C2410_DMA_DEBUG */
  
@@ -700,7 +684,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  /* s3c2410_dma_stats_timeout
   *
   * Update DMA stats from timeout info
  /* s3c2410_dma_stats_timeout
   *
   * Update DMA stats from timeout info
-@@ -214,8 +198,6 @@
+@@ -214,8 +198,6 @@ s3c2410_dma_waitforload(struct s3c2410_d
        return 0;
  }
  
        return 0;
  }
  
@@ -709,7 +693,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  /* s3c2410_dma_loadbuffer
   *
   * load a buffer, and update the channel state
  /* s3c2410_dma_loadbuffer
   *
   * load a buffer, and update the channel state
-@@ -453,7 +435,7 @@
+@@ -453,7 +435,7 @@ s3c2410_dma_canload(struct s3c2410_dma_c
  int s3c2410_dma_enqueue(unsigned int channel, void *id,
                        dma_addr_t data, int size)
  {
  int s3c2410_dma_enqueue(unsigned int channel, void *id,
                        dma_addr_t data, int size)
  {
@@ -718,7 +702,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
        struct s3c2410_dma_buf *buf;
        unsigned long flags;
  
        struct s3c2410_dma_buf *buf;
        unsigned long flags;
  
-@@ -804,7 +786,7 @@
+@@ -804,7 +786,7 @@ EXPORT_SYMBOL(s3c2410_dma_request);
  
  int s3c2410_dma_free(unsigned int channel, struct s3c2410_dma_client *client)
  {
  
  int s3c2410_dma_free(unsigned int channel, struct s3c2410_dma_client *client)
  {
@@ -727,7 +711,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
        unsigned long flags;
  
        if (chan == NULL)
        unsigned long flags;
  
        if (chan == NULL)
-@@ -836,7 +818,7 @@
+@@ -836,7 +818,7 @@ int s3c2410_dma_free(unsigned int channe
        chan->irq_claimed = 0;
  
        if (!(channel & DMACH_LOW_LEVEL))
        chan->irq_claimed = 0;
  
        if (!(channel & DMACH_LOW_LEVEL))
@@ -736,7 +720,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        local_irq_restore(flags);
  
  
        local_irq_restore(flags);
  
-@@ -995,7 +977,7 @@
+@@ -995,7 +977,7 @@ static int s3c2410_dma_started(struct s3
  int
  s3c2410_dma_ctrl(unsigned int channel, enum s3c2410_chan_op op)
  {
  int
  s3c2410_dma_ctrl(unsigned int channel, enum s3c2410_chan_op op)
  {
@@ -745,7 +729,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        if (chan == NULL)
                return -EINVAL;
  
        if (chan == NULL)
                return -EINVAL;
-@@ -1038,14 +1020,13 @@
+@@ -1038,14 +1020,13 @@ EXPORT_SYMBOL(s3c2410_dma_ctrl);
  /* s3c2410_dma_config
   *
   * xfersize:     size of unit in bytes (1,2,4)
  /* s3c2410_dma_config
   *
   * xfersize:     size of unit in bytes (1,2,4)
@@ -763,7 +747,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n",
                 __func__, channel, xferunit, dcon);
  
        pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n",
                 __func__, channel, xferunit, dcon);
-@@ -1055,10 +1036,33 @@
+@@ -1055,10 +1036,33 @@ int s3c2410_dma_config(unsigned int chan
  
        pr_debug("%s: Initial dcon is %08x\n", __func__, dcon);
  
  
        pr_debug("%s: Initial dcon is %08x\n", __func__, dcon);
  
@@ -798,7 +782,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
        switch (xferunit) {
        case 1:
                dcon |= S3C2410_DCON_BYTE;
        switch (xferunit) {
        case 1:
                dcon |= S3C2410_DCON_BYTE;
-@@ -1089,10 +1093,10 @@
+@@ -1089,10 +1093,10 @@ int s3c2410_dma_config(unsigned int chan
  }
  
  EXPORT_SYMBOL(s3c2410_dma_config);
  }
  
  EXPORT_SYMBOL(s3c2410_dma_config);
@@ -811,7 +795,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        if (chan == NULL)
                return -EINVAL;
  
        if (chan == NULL)
                return -EINVAL;
-@@ -1105,43 +1109,7 @@
+@@ -1105,43 +1109,7 @@ int s3c2410_dma_setflags(unsigned int ch
  }
  
  EXPORT_SYMBOL(s3c2410_dma_setflags);
  }
  
  EXPORT_SYMBOL(s3c2410_dma_setflags);
@@ -856,7 +840,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
  /* s3c2410_dma_devconfig
   *
  
  /* s3c2410_dma_devconfig
   *
-@@ -1150,29 +1118,38 @@
+@@ -1150,29 +1118,38 @@ EXPORT_SYMBOL(s3c2410_dma_set_buffdone_f
   * source:    S3C2410_DMASRC_HW: source is hardware
   *            S3C2410_DMASRC_MEM: source is memory
   *
   * source:    S3C2410_DMASRC_HW: source is hardware
   *            S3C2410_DMASRC_MEM: source is memory
   *
@@ -904,7 +888,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        switch (source) {
        case S3C2410_DMASRC_HW:
  
        switch (source) {
        case S3C2410_DMASRC_HW:
-@@ -1219,7 +1196,7 @@
+@@ -1219,7 +1196,7 @@ EXPORT_SYMBOL(s3c2410_dma_devconfig);
  
  int s3c2410_dma_getposition(unsigned int channel, dma_addr_t *src, dma_addr_t *dst)
  {
  
  int s3c2410_dma_getposition(unsigned int channel, dma_addr_t *src, dma_addr_t *dst)
  {
@@ -913,7 +897,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        if (chan == NULL)
                return -EINVAL;
  
        if (chan == NULL)
                return -EINVAL;
-@@ -1278,8 +1255,8 @@
+@@ -1278,8 +1255,8 @@ static int s3c2410_dma_resume(struct sys
  
        printk(KERN_INFO "dma%d: restoring configuration\n", cp->number);
  
  
        printk(KERN_INFO "dma%d: restoring configuration\n", cp->number);
  
@@ -924,7 +908,7 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        /* re-select the dma source for this channel */
  
  
        /* re-select the dma source for this channel */
  
-@@ -1476,7 +1453,8 @@
+@@ -1476,7 +1453,8 @@ static struct s3c2410_dma_chan *s3c2410_
   found:
        dmach = &s3c2410_chans[ch];
        dmach->map = ch_map;
   found:
        dmach = &s3c2410_chans[ch];
        dmach->map = ch_map;
@@ -934,10 +918,8 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/dma.c
  
        /* select the channel */
  
  
        /* select the channel */
  
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/dma.h
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/plat-s3c24xx/include/plat/dma.h     2009-05-16 06:12:57.000000000 +0200
-+++ /dev/null  1970-01-01 00:00:00.000000000 +0000
+--- a/arch/arm/plat-s3c24xx/include/plat/dma.h
++++ /dev/null
 @@ -1,82 +0,0 @@
 -/* linux/include/asm-arm/plat-s3c24xx/dma.h
 - *
 @@ -1,82 +0,0 @@
 -/* linux/include/asm-arm/plat-s3c24xx/dma.h
 - *
@@ -1021,10 +1003,8 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/dma.h
 -
 -extern int s3c24xx_dma_init(unsigned int channels, unsigned int irq,
 -                          unsigned int stride);
 -
 -extern int s3c24xx_dma_init(unsigned int channels, unsigned int irq,
 -                          unsigned int stride);
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/dma-plat.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/dma-plat.h     2009-05-18 19:08:29.000000000 +0200
+--- /dev/null
++++ b/arch/arm/plat-s3c24xx/include/plat/dma-plat.h
 @@ -0,0 +1,84 @@
 +/* linux/arch/arm/plat-s3c24xx/include/plat/dma-plat.h
 + *
 @@ -0,0 +1,84 @@
 +/* linux/arch/arm/plat-s3c24xx/include/plat/dma-plat.h
 + *
@@ -1110,10 +1090,8 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/dma-plat.h
 +
 +extern int s3c24xx_dma_init(unsigned int channels, unsigned int irq,
 +                          unsigned int stride);
 +
 +extern int s3c24xx_dma_init(unsigned int channels, unsigned int irq,
 +                          unsigned int stride);
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/regs-dma.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/regs-dma.h     2009-05-18 19:08:29.000000000 +0200
+--- /dev/null
++++ b/arch/arm/plat-s3c24xx/include/plat/regs-dma.h
 @@ -0,0 +1,145 @@
 +/* arch/arm/mach-s3c2410/include/mach/dma.h
 + *
 @@ -0,0 +1,145 @@
 +/* arch/arm/mach-s3c2410/include/mach/dma.h
 + *
@@ -1260,11 +1238,9 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/include/plat/regs-dma.h
 +#define S3C2443_DMAREQSEL_PCMOUT      S3C2443_DMAREQSEL_SRC(27)
 +#define S3C2443_DMAREQSEL_PCMIN       S3C2443_DMAREQSEL_SRC(28)
 +#define S3C2443_DMAREQSEL_MICIN               S3C2443_DMAREQSEL_SRC(29)
 +#define S3C2443_DMAREQSEL_PCMOUT      S3C2443_DMAREQSEL_SRC(27)
 +#define S3C2443_DMAREQSEL_PCMIN       S3C2443_DMAREQSEL_SRC(28)
 +#define S3C2443_DMAREQSEL_MICIN               S3C2443_DMAREQSEL_SRC(29)
-Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/Kconfig
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/plat-s3c24xx/Kconfig        2009-05-16 06:12:57.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/plat-s3c24xx/Kconfig     2009-05-18 19:08:29.000000000 +0200
-@@ -71,6 +71,7 @@
+--- a/arch/arm/plat-s3c24xx/Kconfig
++++ b/arch/arm/plat-s3c24xx/Kconfig
+@@ -71,6 +71,7 @@ config PM_SIMTEC
  config S3C2410_DMA
        bool "S3C2410 DMA support"
        depends on ARCH_S3C2410
  config S3C2410_DMA
        bool "S3C2410 DMA support"
        depends on ARCH_S3C2410
@@ -1272,10 +1248,8 @@ Index: linux-2.6.30-rc6/arch/arm/plat-s3c24xx/Kconfig
        help
          S3C2410 DMA support. This is needed for drivers like sound which
          use the S3C2410's DMA system to move data to and from the
        help
          S3C2410 DMA support. This is needed for drivers like sound which
          use the S3C2410's DMA system to move data to and from the
-Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/dma.c
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/mach-s3c2410/dma.c  2009-05-16 06:12:57.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/mach-s3c2410/dma.c       2009-05-18 19:08:29.000000000 +0200
+--- a/arch/arm/mach-s3c2410/dma.c
++++ b/arch/arm/mach-s3c2410/dma.c
 @@ -17,14 +17,16 @@
  #include <linux/sysdev.h>
  #include <linux/serial_core.h>
 @@ -17,14 +17,16 @@
  #include <linux/sysdev.h>
  #include <linux/serial_core.h>
@@ -1294,10 +1268,8 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2410/dma.c
  #include <mach/regs-mem.h>
  #include <mach/regs-lcd.h>
  #include <mach/regs-sdi.h>
  #include <mach/regs-mem.h>
  #include <mach/regs-lcd.h>
  #include <mach/regs-sdi.h>
-Index: linux-2.6.30-rc6/arch/arm/mach-s3c2440/dma.c
-===================================================================
---- linux-2.6.30-rc6.orig/arch/arm/mach-s3c2440/dma.c  2009-05-16 06:12:57.000000000 +0200
-+++ linux-2.6.30-rc6/arch/arm/mach-s3c2440/dma.c       2009-05-18 19:08:29.000000000 +0200
+--- a/arch/arm/mach-s3c2440/dma.c
++++ b/arch/arm/mach-s3c2440/dma.c
 @@ -17,14 +17,16 @@
  #include <linux/sysdev.h>
  #include <linux/serial_core.h>
 @@ -17,14 +17,16 @@
  #include <linux/sysdev.h>
  #include <linux/serial_core.h>
@@ -1316,3 +1288,37 @@ Index: linux-2.6.30-rc6/arch/arm/mach-s3c2440/dma.c
  #include <mach/regs-mem.h>
  #include <mach/regs-lcd.h>
  #include <mach/regs-sdi.h>
  #include <mach/regs-mem.h>
  #include <mach/regs-lcd.h>
  #include <mach/regs-sdi.h>
+--- a/sound/soc/s3c24xx/s3c24xx-pcm.c
++++ b/sound/soc/s3c24xx/s3c24xx-pcm.c
+@@ -218,24 +218,17 @@ static int s3c24xx_pcm_prepare(struct sn
+        * sync to pclk, half-word transfers to the IIS-FIFO. */
+       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+               s3c2410_dma_devconfig(prtd->params->channel,
+-                              S3C2410_DMASRC_MEM, S3C2410_DISRCC_INC |
+-                              S3C2410_DISRCC_APB, prtd->params->dma_addr);
+-
+-              s3c2410_dma_config(prtd->params->channel,
+-                              prtd->params->dma_size,
+-                              S3C2410_DCON_SYNC_PCLK |
+-                              S3C2410_DCON_HANDSHAKE);
++                                    S3C2410_DMASRC_MEM,
++                                    prtd->params->dma_addr);
+       } else {
+-              s3c2410_dma_config(prtd->params->channel,
+-                              prtd->params->dma_size,
+-                              S3C2410_DCON_HANDSHAKE |
+-                              S3C2410_DCON_SYNC_PCLK);
+-
+               s3c2410_dma_devconfig(prtd->params->channel,
+-                                      S3C2410_DMASRC_HW, 0x3,
+-                                      prtd->params->dma_addr);
++                                    S3C2410_DMASRC_HW,
++                                    prtd->params->dma_addr);
+       }
++      s3c2410_dma_config(prtd->params->channel,
++                         prtd->params->dma_size);
++
+       /* flush the DMA channel */
+       s3c2410_dma_ctrl(prtd->params->channel, S3C2410_DMAOP_FLUSH);
+       prtd->dma_loaded = 0;
This page took 0.037179 seconds and 4 git commands to generate.