转自:http://blog.csdn.net/liuhaoyutz
内核版本:3.10.1
一,s3cmci_ops分析
在上一篇文章中,我们分析了它Mini2440 MMC / SD驱动探针函数s3cmci_probe。结构在函数中初始化mmc_host指针变量mmc,其中,设置mmc-> ops为s3cmci_ops,s3cmci_ops定义在drivers / mmc / host / s3cmci.c文件中:
struct mmc_host是mmc core层与主机层的接口,mmc_host.ops是控制主机完成用户请求的接口函数集,其类型是struct mmc_host_ops,该结构体定义在include / linux / mmc / host.h文件中:
请求函数用于处理用户的请求。
set_ios函数用于设置SDI的控制参数,如时钟,总线宽度等等。
get_ro函数用于探测SD卡是否有写保护。
get_cd函数用于探测卡是否已插入插槽。
enable_sdio_irq函数用于启动或禁用SDI中断。
需要注意的是,为什么没有对MMC / SD进行读写的读取和写入函数呢?这是因为Linux的块设备的读写操作是通过请求函数完成的。
那么对于mini2440的,它的s3cmci_ops中的成员函数在什么时候会被调用呢举例如下?
在驱动器/ MMC /核心/ core.c文件中: