Lines Matching refs:cmd

48 	struct mmc_command		*cmd;  member
118 host->cmd->opcode); in meson_mx_sdhc_wait_cmd_ready()
129 host->cmd->opcode); in meson_mx_sdhc_wait_cmd_ready()
135 struct mmc_command *cmd) in meson_mx_sdhc_start_cmd() argument
142 host->cmd = cmd; in meson_mx_sdhc_start_cmd()
148 send = FIELD_PREP(MESON_SDHC_SEND_CMD_INDEX, cmd->opcode); in meson_mx_sdhc_start_cmd()
150 if (cmd->data) { in meson_mx_sdhc_start_cmd()
153 cmd->data->blocks - 1); in meson_mx_sdhc_start_cmd()
155 if (cmd->data->blksz < MESON_SDHC_MAX_BLK_SIZE) in meson_mx_sdhc_start_cmd()
156 pack_len = cmd->data->blksz; in meson_mx_sdhc_start_cmd()
160 if (cmd->data->flags & MMC_DATA_WRITE) in meson_mx_sdhc_start_cmd()
170 cmd->data->flags & MMC_DATA_WRITE) in meson_mx_sdhc_start_cmd()
185 manual_stop = cmd->data->blocks > 1 && in meson_mx_sdhc_start_cmd()
186 cmd->opcode == SD_IO_RW_EXTENDED; in meson_mx_sdhc_start_cmd()
197 if (cmd->opcode == MMC_STOP_TRANSMISSION) in meson_mx_sdhc_start_cmd()
200 if (cmd->flags & MMC_RSP_PRESENT) in meson_mx_sdhc_start_cmd()
203 if (cmd->flags & MMC_RSP_136) { in meson_mx_sdhc_start_cmd()
208 if (!(cmd->flags & MMC_RSP_CRC)) in meson_mx_sdhc_start_cmd()
211 if (cmd->flags & MMC_RSP_BUSY) in meson_mx_sdhc_start_cmd()
218 regmap_write(host->regmap, MESON_SDHC_ARGU, cmd->arg); in meson_mx_sdhc_start_cmd()
224 if (cmd->data) in meson_mx_sdhc_start_cmd()
226 sg_dma_address(cmd->data->sg)); in meson_mx_sdhc_start_cmd()
230 if (cmd->data) in meson_mx_sdhc_start_cmd()
386 struct mmc_command *cmd = mrq->cmd; in meson_mx_sdhc_request() local
392 cmd->error = host->error; in meson_mx_sdhc_request()
399 meson_mx_sdhc_start_cmd(mmc, mrq->cmd); in meson_mx_sdhc_request()
519 host->cmd = NULL; in meson_mx_sdhc_request_done()
543 struct mmc_command *cmd = host->cmd; in meson_mx_sdhc_irq() local
554 cmd->error = -EIO; in meson_mx_sdhc_irq()
556 cmd->error = -EILSEQ; in meson_mx_sdhc_irq()
558 cmd->error = -ETIMEDOUT; in meson_mx_sdhc_irq()
560 if (cmd->data) { in meson_mx_sdhc_irq()
562 cmd->data->error = -EILSEQ; in meson_mx_sdhc_irq()
564 cmd->data->error = -ETIMEDOUT; in meson_mx_sdhc_irq()
567 if (cmd->error || (cmd->data && cmd->data->error)) in meson_mx_sdhc_irq()
569 cmd->opcode, ista); in meson_mx_sdhc_irq()
577 struct mmc_command *cmd; in meson_mx_sdhc_irq_thread() local
580 cmd = host->cmd; in meson_mx_sdhc_irq_thread()
581 if (WARN_ON(!cmd)) in meson_mx_sdhc_irq_thread()
584 if (cmd->data && !cmd->data->error) { in meson_mx_sdhc_irq_thread()
586 cmd->data->flags & MMC_DATA_READ) { in meson_mx_sdhc_irq_thread()
603 dma_unmap_sg(mmc_dev(host->mmc), cmd->data->sg, in meson_mx_sdhc_irq_thread()
604 cmd->data->sg_len, mmc_get_dma_dir(cmd->data)); in meson_mx_sdhc_irq_thread()
606 cmd->data->bytes_xfered = cmd->data->blksz * cmd->data->blocks; in meson_mx_sdhc_irq_thread()
611 if (cmd->flags & MMC_RSP_136) { in meson_mx_sdhc_irq_thread()
612 cmd->resp[0] = meson_mx_sdhc_read_response(host, 4); in meson_mx_sdhc_irq_thread()
613 cmd->resp[1] = meson_mx_sdhc_read_response(host, 3); in meson_mx_sdhc_irq_thread()
614 cmd->resp[2] = meson_mx_sdhc_read_response(host, 2); in meson_mx_sdhc_irq_thread()
615 cmd->resp[3] = meson_mx_sdhc_read_response(host, 1); in meson_mx_sdhc_irq_thread()
617 cmd->resp[0] = meson_mx_sdhc_read_response(host, 0); in meson_mx_sdhc_irq_thread()
620 if (cmd->error == -EIO || cmd->error == -ETIMEDOUT) in meson_mx_sdhc_irq_thread()
622 else if (cmd->data) in meson_mx_sdhc_irq_thread()
656 if (host->cmd->data->flags & MMC_DATA_WRITE) in meson_mx_sdhc_set_pdma_meson8()
672 if (host->cmd->data->flags & MMC_DATA_WRITE) in meson_mx_sdhc_set_pdma_meson8()
692 if (host->cmd->data && host->cmd->data->flags & MMC_DATA_WRITE) { in meson_mx_sdhc_wait_before_send_meson8()