Lines Matching refs:host
78 struct mxs_mmc_host *host = mmc_priv(mmc); in mxs_mmc_get_cd() local
79 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_get_cd()
82 if (host->broken_cd) in mxs_mmc_get_cd()
99 static int mxs_mmc_reset(struct mxs_mmc_host *host) in mxs_mmc_reset() argument
101 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_reset()
125 if (host->sdio_irq_en) { in mxs_mmc_reset()
135 static void mxs_mmc_start_cmd(struct mxs_mmc_host *host,
138 static void mxs_mmc_request_done(struct mxs_mmc_host *host) in mxs_mmc_request_done() argument
140 struct mmc_command *cmd = host->cmd; in mxs_mmc_request_done()
141 struct mmc_data *data = host->data; in mxs_mmc_request_done()
142 struct mmc_request *mrq = host->mrq; in mxs_mmc_request_done()
143 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_request_done()
157 dma_unmap_sg(mmc_dev(host->mmc), data->sg, in mxs_mmc_request_done()
168 host->data = NULL; in mxs_mmc_request_done()
170 mxs_mmc_start_cmd(host, mrq->stop); in mxs_mmc_request_done()
175 host->mrq = NULL; in mxs_mmc_request_done()
176 mmc_request_done(host->mmc, mrq); in mxs_mmc_request_done()
181 struct mxs_mmc_host *host = param; in mxs_mmc_dma_irq_callback() local
183 mxs_mmc_request_done(host); in mxs_mmc_dma_irq_callback()
188 struct mxs_mmc_host *host = dev_id; in mxs_mmc_irq_handler() local
189 struct mmc_command *cmd = host->cmd; in mxs_mmc_irq_handler()
190 struct mmc_data *data = host->data; in mxs_mmc_irq_handler()
191 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_irq_handler()
194 spin_lock(&host->lock); in mxs_mmc_irq_handler()
200 spin_unlock(&host->lock); in mxs_mmc_irq_handler()
203 mmc_signal_sdio_irq(host->mmc); in mxs_mmc_irq_handler()
225 struct mxs_mmc_host *host, unsigned long flags) in mxs_mmc_prep_dma() argument
227 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_prep_dma()
229 struct mmc_data *data = host->data; in mxs_mmc_prep_dma()
235 dma_map_sg(mmc_dev(host->mmc), data->sg, in mxs_mmc_prep_dma()
249 desc->callback_param = host; in mxs_mmc_prep_dma()
252 dma_unmap_sg(mmc_dev(host->mmc), data->sg, in mxs_mmc_prep_dma()
259 static void mxs_mmc_bc(struct mxs_mmc_host *host) in mxs_mmc_bc() argument
261 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_bc()
262 struct mmc_command *cmd = host->cmd; in mxs_mmc_bc()
270 if (host->sdio_irq_en) { in mxs_mmc_bc()
280 desc = mxs_mmc_prep_dma(host, DMA_CTRL_ACK); in mxs_mmc_bc()
289 dev_warn(mmc_dev(host->mmc), in mxs_mmc_bc()
293 static void mxs_mmc_ac(struct mxs_mmc_host *host) in mxs_mmc_ac() argument
295 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_ac()
296 struct mmc_command *cmd = host->cmd; in mxs_mmc_ac()
312 if (host->sdio_irq_en) { in mxs_mmc_ac()
322 desc = mxs_mmc_prep_dma(host, DMA_CTRL_ACK); in mxs_mmc_ac()
331 dev_warn(mmc_dev(host->mmc), in mxs_mmc_ac()
351 static void mxs_mmc_adtc(struct mxs_mmc_host *host) in mxs_mmc_adtc() argument
353 struct mmc_command *cmd = host->cmd; in mxs_mmc_adtc()
365 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_adtc()
387 ctrl0 = BF_SSP(host->bus_width, CTRL0_BUS_WIDTH) | in mxs_mmc_adtc()
426 if (host->sdio_irq_en) { in mxs_mmc_adtc()
444 desc = mxs_mmc_prep_dma(host, 0); in mxs_mmc_adtc()
449 WARN_ON(host->data != NULL); in mxs_mmc_adtc()
450 host->data = data; in mxs_mmc_adtc()
453 desc = mxs_mmc_prep_dma(host, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); in mxs_mmc_adtc()
461 dev_warn(mmc_dev(host->mmc), in mxs_mmc_adtc()
465 static void mxs_mmc_start_cmd(struct mxs_mmc_host *host, in mxs_mmc_start_cmd() argument
468 host->cmd = cmd; in mxs_mmc_start_cmd()
472 mxs_mmc_bc(host); in mxs_mmc_start_cmd()
475 mxs_mmc_ac(host); in mxs_mmc_start_cmd()
478 mxs_mmc_ac(host); in mxs_mmc_start_cmd()
481 mxs_mmc_adtc(host); in mxs_mmc_start_cmd()
484 dev_warn(mmc_dev(host->mmc), in mxs_mmc_start_cmd()
492 struct mxs_mmc_host *host = mmc_priv(mmc); in mxs_mmc_request() local
494 WARN_ON(host->mrq != NULL); in mxs_mmc_request()
495 host->mrq = mrq; in mxs_mmc_request()
496 mxs_mmc_start_cmd(host, mrq->cmd); in mxs_mmc_request()
501 struct mxs_mmc_host *host = mmc_priv(mmc); in mxs_mmc_set_ios() local
504 host->bus_width = 2; in mxs_mmc_set_ios()
506 host->bus_width = 1; in mxs_mmc_set_ios()
508 host->bus_width = 0; in mxs_mmc_set_ios()
511 mxs_ssp_set_clk_rate(&host->ssp, ios->clock); in mxs_mmc_set_ios()
516 struct mxs_mmc_host *host = mmc_priv(mmc); in mxs_mmc_enable_sdio_irq() local
517 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_enable_sdio_irq()
520 spin_lock_irqsave(&host->lock, flags); in mxs_mmc_enable_sdio_irq()
522 host->sdio_irq_en = enable; in mxs_mmc_enable_sdio_irq()
536 spin_unlock_irqrestore(&host->lock, flags); in mxs_mmc_enable_sdio_irq()
540 mmc_signal_sdio_irq(host->mmc); in mxs_mmc_enable_sdio_irq()
577 struct mxs_mmc_host *host; in mxs_mmc_probe() local
592 host = mmc_priv(mmc); in mxs_mmc_probe()
593 ssp = &host->ssp; in mxs_mmc_probe()
604 host->mmc = mmc; in mxs_mmc_probe()
605 host->sdio_irq_en = 0; in mxs_mmc_probe()
626 ret = mxs_mmc_reset(host); in mxs_mmc_probe()
634 dev_err(mmc_dev(host->mmc), in mxs_mmc_probe()
645 host->broken_cd = of_property_read_bool(np, "broken-cd"); in mxs_mmc_probe()
665 dev_name(&pdev->dev), host); in mxs_mmc_probe()
669 spin_lock_init(&host->lock); in mxs_mmc_probe()
675 dev_info(mmc_dev(host->mmc), "initialized\n"); in mxs_mmc_probe()
691 struct mxs_mmc_host *host = mmc_priv(mmc); in mxs_mmc_remove() local
692 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_remove()
710 struct mxs_mmc_host *host = mmc_priv(mmc); in mxs_mmc_suspend() local
711 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_suspend()
720 struct mxs_mmc_host *host = mmc_priv(mmc); in mxs_mmc_resume() local
721 struct mxs_ssp *ssp = &host->ssp; in mxs_mmc_resume()