1 首先将s3c2410-uda1341复制到sound/oss 目录下 bitfield 复制到 include/asm-arm/arch-s3c2410/目录下
2 修改 arch/arm/mach-s3c2410/dma.c
添加如下代码:
int s3c24xx_dma_map(dmach_t channel)
{
struct s3c2410_dma_chan *chan;
chan=&s3c2410_chans[channel];
if(chan == NULL)
{
printk("can't not map the channel");
return -EBUSY;
}
else return 0;
}
EXPORT_SYMBOL(s3c24xx_dma_map);
3 修该如下代码:
s3c2410_dma_ctrl(chan->number , S3C2410_DMAOP_START);
修改为
s3c2410_dma_ctrl(chan->number | DMACH_LOW_LEVEL, S3C2410_DMAOP_START);
4 修改include/asm-arm/mach-s3c2410/dma.h
在dma.h开头添加定义DMACH_LOW_LEVEL
#define DMACH_LOW_LEVEL (1<<28)
5 dma.h添加代码:
extern int s3c24xx_dma_map(dmach_t channel);
好啦需要改的文件都改好了下面我们修改配制代码!!!
6 修改sound/oss/Kconfig
添加
config S3C2410_UDA1341
bool "S3C2410 UDA1341 driver (S3C2410)"
depends on SOUND_PRIME!=n && SOUND && ARM && ARCH_SMDK2410
help
7 修改sound/oss/Makefile
添加
obj-$(CONFIG_S3C2410_UDA1341) += s3c2410-uda1341.o
一切搞定!!!
该代码在2.6.18.6上已经测试成功了!!
8 make menuconfig 中将Device driver->sound->Open Sound System ->S3C2410 UDA1341 driver (S3C2410)选中
9 make zImage 搞定了!!