Lines Matching refs:mmc

115 	struct mmc_host		*mmc;  member
124 struct mmc_host * mmc; member
207 while (host->mmc != NULL) { in mmc_omap_select_slot()
209 wait_event(host->slot_wq, host->mmc == NULL); in mmc_omap_select_slot()
212 host->mmc = slot->mmc; in mmc_omap_select_slot()
222 host->pdata->switch_slot(mmc_dev(slot->mmc), slot->id); in mmc_omap_select_slot()
263 BUG_ON(slot == NULL || host->mmc == NULL); in mmc_omap_release_slot()
288 host->mmc = new_slot->mmc; in mmc_omap_release_slot()
294 host->mmc = NULL; in mmc_omap_release_slot()
303 return slot->pdata->get_cover_state(mmc_dev(slot->mmc), in mmc_omap_cover_is_open()
312 struct mmc_host *mmc = container_of(dev, struct mmc_host, class_dev); in mmc_omap_show_cover_switch() local
313 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_show_cover_switch()
325 struct mmc_host *mmc = container_of(dev, struct mmc_host, class_dev); in mmc_omap_show_slot_name() local
326 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_show_slot_name()
362 dev_err(mmc_dev(host->mmc), "Invalid response type: %04x\n", mmc_resp_type(cmd)); in mmc_omap_start_command()
408 struct device *dev = mmc_dev(host->mmc); in mmc_omap_release_dma()
458 struct mmc_host *mmc; in mmc_omap_xfer_done() local
461 mmc = host->mmc; in mmc_omap_xfer_done()
463 mmc_request_done(mmc, data->mrq); in mmc_omap_xfer_done()
581 struct mmc_host *mmc; in mmc_omap_cmd_done() local
586 mmc = host->mmc; in mmc_omap_cmd_done()
588 mmc_request_done(mmc, cmd->mrq); in mmc_omap_cmd_done()
602 dev_dbg(mmc_dev(host->mmc), "Aborting stuck command CMD%d\n", in mmc_omap_abort_command()
610 struct mmc_host *mmc; in mmc_omap_abort_command() local
617 mmc = host->mmc; in mmc_omap_abort_command()
619 mmc_request_done(mmc, cmd->mrq); in mmc_omap_abort_command()
712 dev_vdbg(mmc_dev(host->mmc), "%s\n", res); in mmc_omap_report_irq()
731 dev_info(mmc_dev(host->slots[0]->mmc), in mmc_omap_irq()
753 dev_dbg(mmc_dev(host->mmc), "MMC IRQ %04x (CMD %d): ", in mmc_omap_irq()
769 dev_dbg(mmc_dev(host->mmc), "data timeout (CMD%d)\n", in mmc_omap_irq()
780 dev_dbg(mmc_dev(host->mmc), in mmc_omap_irq()
785 dev_dbg(mmc_dev(host->mmc), "data CRC error\n"); in mmc_omap_irq()
796 dev_err(mmc_dev(host->mmc), in mmc_omap_irq()
807 dev_err(mmc_dev(host->mmc), in mmc_omap_irq()
814 dev_err(mmc_dev(host->mmc), in mmc_omap_irq()
819 dev_dbg(mmc_dev(host->mmc), in mmc_omap_irq()
871 sysfs_notify(&slot->mmc->class_dev.kobj, NULL, "cover_switch"); in omap_mmc_notify_cover_event()
888 mmc_detect_change(slot->mmc, 0); in mmc_omap_cover_handler()
896 if (slot->mmc->card == NULL) in mmc_omap_cover_handler()
1085 static void mmc_omap_request(struct mmc_host *mmc, struct mmc_request *req) in mmc_omap_request() argument
1087 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_request()
1092 if (host->mmc != NULL) { in mmc_omap_request()
1098 host->mmc = mmc; in mmc_omap_request()
1112 slot->pdata->set_power(mmc_dev(slot->mmc), slot->id, power_on, in mmc_omap_set_power()
1127 static int mmc_omap_calc_divisor(struct mmc_host *mmc, struct mmc_ios *ios) in mmc_omap_calc_divisor() argument
1129 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_calc_divisor()
1155 static void mmc_omap_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in mmc_omap_set_ios() argument
1157 struct mmc_omap_slot *slot = mmc_priv(mmc); in mmc_omap_set_ios()
1164 dsor = mmc_omap_calc_divisor(mmc, ios); in mmc_omap_set_ios()
1187 slot->pdata->set_bus_mode(mmc_dev(mmc), slot->id, in mmc_omap_set_ios()
1226 struct mmc_host *mmc; in mmc_omap_new_slot() local
1229 mmc = mmc_alloc_host(sizeof(struct mmc_omap_slot), host->dev); in mmc_omap_new_slot()
1230 if (mmc == NULL) in mmc_omap_new_slot()
1233 slot = mmc_priv(mmc); in mmc_omap_new_slot()
1235 slot->mmc = mmc; in mmc_omap_new_slot()
1241 mmc->caps = 0; in mmc_omap_new_slot()
1243 mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_ERASE; in mmc_omap_new_slot()
1245 mmc->ops = &mmc_omap_ops; in mmc_omap_new_slot()
1246 mmc->f_min = 400000; in mmc_omap_new_slot()
1249 mmc->f_max = 48000000; in mmc_omap_new_slot()
1251 mmc->f_max = 24000000; in mmc_omap_new_slot()
1253 mmc->f_max = min(host->pdata->max_freq, mmc->f_max); in mmc_omap_new_slot()
1254 mmc->ocr_avail = slot->pdata->ocr_mask; in mmc_omap_new_slot()
1260 mmc->max_segs = 32; in mmc_omap_new_slot()
1261 mmc->max_blk_size = 2048; /* BLEN is 11 bits (+1) */ in mmc_omap_new_slot()
1262 mmc->max_blk_count = 2048; /* NBLK is 11 bits (+1) */ in mmc_omap_new_slot()
1263 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; in mmc_omap_new_slot()
1264 mmc->max_seg_size = mmc->max_req_size; in mmc_omap_new_slot()
1272 r = mmc_add_host(mmc); in mmc_omap_new_slot()
1277 r = device_create_file(&mmc->class_dev, in mmc_omap_new_slot()
1284 r = device_create_file(&mmc->class_dev, in mmc_omap_new_slot()
1295 device_remove_file(&mmc->class_dev, &dev_attr_slot_name); in mmc_omap_new_slot()
1297 mmc_remove_host(mmc); in mmc_omap_new_slot()
1298 mmc_free_host(mmc); in mmc_omap_new_slot()
1304 struct mmc_host *mmc = slot->mmc; in mmc_omap_remove_slot() local
1307 device_remove_file(&mmc->class_dev, &dev_attr_slot_name); in mmc_omap_remove_slot()
1309 device_remove_file(&mmc->class_dev, &dev_attr_cover_switch); in mmc_omap_remove_slot()
1315 mmc_remove_host(mmc); in mmc_omap_remove_slot()
1316 mmc_free_host(mmc); in mmc_omap_remove_slot()