3.1 mmc_start_host mmc_start_host-> mmc_detect_change-> mmc_schedule_delayed_work(&host->detect, delay)-> mmc_rescan-> mmc_rescan_try_freq 可参考Linux mmc framework2: 基本组件之host3.1 mmc_add_host部分 TODO
void mmc_detect_change(struct mmc_host *host, unsigned long delay) 检测mmc卡的状态 void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq) mmc host在处理完一次request后需要调用此函数来进行后处理 static inline void mmc_signal_sdio_irq(struct mmc_host *host) void sdio_run_irq...
As mmc_claim_host() invokes pm_runtime_get_sync() for the mmc host device, it's important that the host is kept claimed for *all* accesses to it via the host_ops callbacks.
struct mmc_host是mmc core由host controller抽象出来的结构体,用于代表一个mmc host控制器。 数据结构如下: 代码语言:javascript 复制 struct mmc_host{struct device*parent;// 对应的host controller的devicestruct device class_dev;// mmc_host的device结构体,会挂在class/mmc_host下int index;// 该host的索引...
> void mmc_rescan(struct work_struct *work) > { > static const unsigned freqs[] = { 400000, 300000, 200000, 100000 }; > ... > for (i = 0; i < ARRAY_SIZE(freqs); i++) { > if (!mmc_rescan_try_freq(host, max(freqs[i], host->f_min))) ...
Part Start Sector Num Sectors UUID Type 1 8192 16384 0aad0b47-01 0c 2 24576 1949696 0aad0b47-02 83 => mmc dev switch to partitions #0, OK mmc1 is current device =>boot … usbcore: registered new interface driver ath3k sdhci: Secure Digital Host Controller Interf...
int rescan_entered; /* used with nonremovable devices */ // 是否已经rescan过的标识,对应不可移除的设备只能rescan一次 struct mmc_card *card; /* device attached to this host */ // 和该host绑定在一起的card wait_queue_head_t wq;
1、struct mmc_host struct mmc_host是mmc core由host controller抽象出来的结构体,用于代表一个mmc host控制器。 数据结构如下: 代码语言:javascript 复制 struct mmc_host{struct device*parent;// 对应的host controller的devicestruct device class_dev;// mmc_host的device结构体,会挂在class/mmc_host下int in...
Part Start Sector Num Sectors UUID Type 1 8192 16384 0aad0b47-01 0c 2 24576 1949696 0aad0b47-02 83 => mmc dev switch to partitions #0, OK mmc1 is current device =>boot … usbcore: registered new interface driver ath3k sdhci: Secure Digital Host Controller Inter...
> > void mmc_rescan(struct work_struct *work) > > { > > static const unsigned freqs[] = { 400000, 300000, 200000, 100000 }; > > ... > > for (i = 0; i < ARRAY_SIZE(freqs); i++) { > > if (!mmc_rescan_try_freq(host, max(freqs[i], host->f_min))) ...