Lines Matching refs:mmc
125 struct mmc_host *mmc; member
135 struct mmc_host * mmc; member
220 while (host->mmc != NULL) { in mmc_omap_select_slot()
222 wait_event(host->slot_wq, host->mmc == NULL); in mmc_omap_select_slot()
225 host->mmc = slot->mmc; in mmc_omap_select_slot()
235 host->pdata->switch_slot(mmc_dev(slot->mmc), slot->id); in mmc_omap_select_slot()
276 BUG_ON(slot == NULL || host->mmc == NULL); in mmc_omap_release_slot()
301 host->mmc = new_slot->mmc; in mmc_omap_release_slot()
307 host->mmc = NULL; in mmc_omap_release_slot()
316 return slot->pdata->get_cover_state(mmc_dev(slot->mmc), in mmc_omap_cover_is_open()
325 struct mmc_host *mmc = container_of(dev, struct mmc_host, class_dev); in mmc_omap_show_cover_switch() local
326 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_show_cover_switch()
338 struct mmc_host *mmc = container_of(dev, struct mmc_host, class_dev); in mmc_omap_show_slot_name() local
339 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_show_slot_name()
374 dev_err(mmc_dev(host->mmc), "Invalid response type: %04x\n", mmc_resp_type(cmd)); in mmc_omap_start_command()
418 struct device *dev = mmc_dev(host->mmc); in mmc_omap_release_dma()
468 struct mmc_host *mmc; in mmc_omap_xfer_done() local
471 mmc = host->mmc; in mmc_omap_xfer_done()
473 mmc_request_done(mmc, data->mrq); in mmc_omap_xfer_done()
591 struct mmc_host *mmc; in mmc_omap_cmd_done() local
596 mmc = host->mmc; in mmc_omap_cmd_done()
598 mmc_request_done(mmc, cmd->mrq); in mmc_omap_cmd_done()
612 dev_dbg(mmc_dev(host->mmc), "Aborting stuck command CMD%d\n", in mmc_omap_abort_command()
620 struct mmc_host *mmc; in mmc_omap_abort_command() local
627 mmc = host->mmc; in mmc_omap_abort_command()
629 mmc_request_done(mmc, cmd->mrq); in mmc_omap_abort_command()
722 dev_vdbg(mmc_dev(host->mmc), "%s\n", res); in mmc_omap_report_irq()
741 dev_info(mmc_dev(host->slots[0]->mmc), in mmc_omap_irq()
763 dev_dbg(mmc_dev(host->mmc), "MMC IRQ %04x (CMD %d): ", in mmc_omap_irq()
779 dev_dbg(mmc_dev(host->mmc), "data timeout (CMD%d)\n", in mmc_omap_irq()
790 dev_dbg(mmc_dev(host->mmc), in mmc_omap_irq()
795 dev_dbg(mmc_dev(host->mmc), "data CRC error\n"); in mmc_omap_irq()
806 dev_err(mmc_dev(host->mmc), in mmc_omap_irq()
817 dev_err(mmc_dev(host->mmc), in mmc_omap_irq()
824 dev_err(mmc_dev(host->mmc), in mmc_omap_irq()
829 dev_dbg(mmc_dev(host->mmc), in mmc_omap_irq()
881 sysfs_notify(&slot->mmc->class_dev.kobj, NULL, "cover_switch"); in omap_mmc_notify_cover_event()
898 mmc_detect_change(slot->mmc, 0); in mmc_omap_cover_handler()
906 if (slot->mmc->card == NULL || !mmc_card_present(slot->mmc->card)) in mmc_omap_cover_handler()
1095 static void mmc_omap_request(struct mmc_host *mmc, struct mmc_request *req) in mmc_omap_request() argument
1097 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_request()
1102 if (host->mmc != NULL) { in mmc_omap_request()
1108 host->mmc = mmc; in mmc_omap_request()
1122 slot->pdata->set_power(mmc_dev(slot->mmc), slot->id, power_on, in mmc_omap_set_power()
1137 static int mmc_omap_calc_divisor(struct mmc_host *mmc, struct mmc_ios *ios) in mmc_omap_calc_divisor() argument
1139 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_calc_divisor()
1165 static void mmc_omap_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in mmc_omap_set_ios() argument
1167 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_set_ios()
1174 dsor = mmc_omap_calc_divisor(mmc, ios); in mmc_omap_set_ios()
1197 slot->pdata->set_bus_mode(mmc_dev(mmc), slot->id, in mmc_omap_set_ios()
1236 struct mmc_host *mmc; in mmc_omap_new_slot() local
1239 mmc = mmc_alloc_host(sizeof(struct mmc_omap_slot), host->dev); in mmc_omap_new_slot()
1240 if (mmc == NULL) in mmc_omap_new_slot()
1243 slot = mmc_priv(mmc); in mmc_omap_new_slot()
1245 slot->mmc = mmc; in mmc_omap_new_slot()
1251 mmc->caps = 0; in mmc_omap_new_slot()
1253 mmc->caps |= MMC_CAP_4_BIT_DATA; in mmc_omap_new_slot()
1255 mmc->ops = &mmc_omap_ops; in mmc_omap_new_slot()
1256 mmc->f_min = 400000; in mmc_omap_new_slot()
1259 mmc->f_max = 48000000; in mmc_omap_new_slot()
1261 mmc->f_max = 24000000; in mmc_omap_new_slot()
1263 mmc->f_max = min(host->pdata->max_freq, mmc->f_max); in mmc_omap_new_slot()
1264 mmc->ocr_avail = slot->pdata->ocr_mask; in mmc_omap_new_slot()
1270 mmc->max_segs = 32; in mmc_omap_new_slot()
1271 mmc->max_blk_size = 2048; /* BLEN is 11 bits (+1) */ in mmc_omap_new_slot()
1272 mmc->max_blk_count = 2048; /* NBLK is 11 bits (+1) */ in mmc_omap_new_slot()
1273 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; in mmc_omap_new_slot()
1274 mmc->max_seg_size = mmc->max_req_size; in mmc_omap_new_slot()
1276 r = mmc_add_host(mmc); in mmc_omap_new_slot()
1281 r = device_create_file(&mmc->class_dev, in mmc_omap_new_slot()
1288 r = device_create_file(&mmc->class_dev, in mmc_omap_new_slot()
1304 device_remove_file(&mmc->class_dev, &dev_attr_slot_name); in mmc_omap_new_slot()
1306 mmc_remove_host(mmc); in mmc_omap_new_slot()
1307 mmc_free_host(mmc); in mmc_omap_new_slot()
1313 struct mmc_host *mmc = slot->mmc; in mmc_omap_remove_slot() local
1316 device_remove_file(&mmc->class_dev, &dev_attr_slot_name); in mmc_omap_remove_slot()
1318 device_remove_file(&mmc->class_dev, &dev_attr_cover_switch); in mmc_omap_remove_slot()
1324 mmc_remove_host(mmc); in mmc_omap_remove_slot()
1325 mmc_free_host(mmc); in mmc_omap_remove_slot()
1547 ret = mmc_suspend_host(slot->mmc); in mmc_omap_suspend()
1551 mmc_resume_host(slot->mmc); in mmc_omap_suspend()
1571 ret = mmc_resume_host(slot->mmc); in mmc_omap_resume()