Chinaunix首页 | 论坛 | 博客
  • 博客访问: 957297
  • 博文数量: 376
  • 博客积分: 154
  • 博客等级: 入伍新兵
  • 技术积分: 1558
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-13 08:42
文章分类

全部博文(376)

文章存档

2014年(11)

2013年(88)

2012年(260)

2011年(17)

分类:

2012-02-09 10:44:20

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


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数组。指明了读/写的各个段的长度,及其偏移地址

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