论坛风格切换切换到宽版
  • 700阅读
  • 0回复

[聊天]mbt shoes chapa uda1341 drivet 修正 [复制链接]

上一主题 下一主题
离线zasw81826
 
发帖
2
C币
9
威望
0
贡献值
0
银元
0
铜钱
7
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-05-30
static int __init audio_init_dma(audio_stream_t * s, char *desc)
{
        int ret ;
        s3c2410_dmasrc_t source;
        int hwcfg;
        unsigned long devaddr;
        dmach_t channel;
        int dcon;
        unsigned int flags = 0;
        if(s->dma_ch == DMACH_I2S_OUT){//modify by zhb
               channel = DMACH_I2S_OUT;
               source = S3C2410_DMASRC_MEM;
               hwcfg = 3;
               devaddr = 0x55000010;
               dcon = 0xa0800000;
               flags = S3C2410_DMAF_AUTOSTART;
  if(s3c24xx_dma_map(channel) != 0)//add by zhb
    return 1;//error
               s3c2410_dma_devconfig(channel, source, hwcfg, devaddr);
               s3c2410_dma_config(channel, 2,mbt safiri black 新词语“中华丽利坚”的背地, dcon);
               s3c2410_dma_set_buffdone_fn(channel, audio_dmaout_done_callback);
               s3c2410_dma_setflags(channel, flags);
               ret = s3c2410_dma_request(s->dma_ch, &s3c2410iis_dma_out,mbt sapatu black, NULL);
              s3c2410_dma_config(channel, 2, dcon);//add
               s->dma_ok = 1;
               return ret;
        }
        else if(s->dma_ch == DMACH_I2S_IN){
               channel =DMACH_I2S_IN;
               source =S3C2410_DMASRC_HW;
               hwcfg =3;
               devaddr = 0x55000010;
               dcon = 0xa2900000;
               flags = S3C2410_DMAF_AUTOSTART;
  if(s3c24xx_dma_map(channel) ,mbt shoes austin texas nZT-女人最大的资本是教养!= 0)//add by zhb
    return 1;//error
               s3c2410_dma_devconfig(channel,mbt rocker shoes discount, source, hwcfg, devaddr);
               s3c2410_dma_config(channel, 2, dcon);
               s3c2410_dma_set_buffdone_fn(channel, audio_dmain_done_callback);
               s3c2410_dma_setflags(channel, flags);
               ret = s3c2410_dma_request(s->dma_ch, &s3c2410iis_dma_in,mbt shoes chapa, NULL);
s3c2410_dma_config(channel, 2, dcon);//add
               s->dma_ok =1;
               return ret ;
        }
else
return 1;
}
在ret = s3c2410_dma_request(s->dma_ch, &s3c2410iis_dma_out, NULL);之后增加
s3c2410_dma_config(channel,mbt women's sport 2, 2, dcon);//add
由于经由s3c2410_dma_request()调用之后,对dma中的存放器dcon进行了赋值,这样就把本来设的dcon中的值冲掉了,因而要从新调用s3c2410_dma_config(channel, 2, dcon)一次.
if(s3c24xx_dma_map(channel) != 0)//add by zhb
    return 1;//error
这一句的意思是先对dma通道进行隐射,mbt karani 吴新涛,否则下面一开端初始化的值不空间存储,只有映射后的通道才有空间.该函数是我在dmarch/arm/plat-s3c24xx/dma.c中增添的,其内容为
arch/arm/plat-s3c24xx/dma.c
int s3c24xx_dma_map(dmach_t channel)
{
struct s3c2410_dma_chan *chan;
chan = s3c2410_dma_map_channel(channel);
if(chan == NULL)
  {
  printk("can't not map the channel");
  return -EBUSY;
  }
else return 0;
}
EXPORT_SYMBOL(s3c24xx_dma_map);
还必需extern出来
include/asm-arm/arch-s3c2410/dma.h
extern int s3c24xx_dma_map(dmach_t channel);
还有就是下面的修改在dma.c中有两处
s3c2410_dma_ctrl(chan->number ,mbt tupu coffee, S3C2410_DMAOP_START);
修正为
s3c2410_dma_ctrl(chan->number | DMACH_LOW_LEVEL, S3C2410_DMAOP_START);
    
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个