实现S3C6410 DMA memory to memory 操作方式

Linux 3.0.1中缺少DMA 内存到内存的操作方式,本文提供了添加改特性的方法。

打开文件添加宏定义,用于新传输方式的支持。

linux-3.0.1/arch/arm/plat-samsung/include/plat/dma.h

enum s3c2410_dmasrc {

         S3C2410_DMASRC_HW,                 /* source is memory */

         S3C2410_DMASRC_MEM,             /* source is hardware */

         S3C2410_DMASRC_MEM2MEM          /* memory to memory */

};

在文件dma.c中添加内存到内存的配置,修改函数s3c2410_dma_devconfig如下:

linux-3.0.1/arch/arm/mach-s3c64xx/dma.c

         switch (source) {

         case S3C2410_DMASRC_HW:

                   config = 2 << PL080_CONFIG_FLOW_CONTROL_SHIFT;

                   config |= peripheral << PL080_CONFIG_SRC_SEL_SHIFT;

                   break;

         case S3C2410_DMASRC_MEM:

                   config = 1 << PL080_CONFIG_FLOW_CONTROL_SHIFT;

      &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值