Chinaunix首页 | 论坛 | 博客
  • 博客访问: 357916
  • 博文数量: 49
  • 博客积分: 3229
  • 博客等级: 中校
  • 技术积分: 616
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-26 21:46
文章分类

全部博文(49)

文章存档

2011年(8)

2010年(2)

2009年(3)

2008年(36)

我的朋友

分类:

2008-08-17 09:53:46

下面就驱动移植时需要注意的地方进行分析。


static void s3cmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
mrq所指的struct mmc_request中的值在mmc_blk_issue_rq函数中被设置:

        brq.mrq.cmd = &brq.cmd;
        brq.mrq.data = &brq.data;

        brq.cmd.arg = req->sector << 9;
        brq.cmd.flags = MMC_RSP_R1 | MMC_CMD_ADTC;
        brq.data.blksz = 1 << md->block_bits;
        brq.data.blocks = req->nr_sectors >> (md->block_bits - 9);
        brq.stop.opcode = MMC_STOP_TRANSMISSION;
        brq.stop.arg = 0;
        brq.stop.flags = MMC_RSP_R1B | MMC_CMD_AC;
        ...
       
        brq.data.sg = mq->sg;
        brq.data.sg_len = blk_rq_map_sg(req->q, req, brq.data.sg);//从指定的要求中获得全部的段,然后把他们填写到给定的表中
        mmc_wait_for_req(card->host, &brq.mrq);

        brq.data.sg是个struct scatterlist数组。指明了读/写的各个段的长度,及其偏移地址

--------------------胡乱记一下,有待整理-----------------------------------------
阅读(2794) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~