Lines Matching refs:cmd

168 	struct mmc_command	*cmd;		/* Current command */  member
192 static void bcm2835_dumpcmd(struct bcm2835_host *host, struct mmc_command *cmd, in bcm2835_dumpcmd() argument
197 if (!cmd) in bcm2835_dumpcmd()
201 (cmd == host->cmd) ? '>' : ' ', in bcm2835_dumpcmd()
202 label, cmd->opcode, cmd->arg, cmd->flags, in bcm2835_dumpcmd()
203 cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3], in bcm2835_dumpcmd()
204 cmd->error); in bcm2835_dumpcmd()
214 bcm2835_dumpcmd(host, mrq->cmd, "cmd"); in bcm2835_dumpregs()
540 void bcm2835_prepare_data(struct bcm2835_host *host, struct mmc_command *cmd) in bcm2835_prepare_data() argument
542 struct mmc_data *data = cmd->data; in bcm2835_prepare_data()
600 host->cmd = NULL; in bcm2835_finish_request()
619 bool bcm2835_send_command(struct bcm2835_host *host, struct mmc_command *cmd) in bcm2835_send_command() argument
625 WARN_ON(host->cmd); in bcm2835_send_command()
631 cmd->error = -EILSEQ; in bcm2835_send_command()
636 if (!cmd->data && cmd->busy_timeout > 9000) in bcm2835_send_command()
637 timeout = DIV_ROUND_UP(cmd->busy_timeout, 1000) * HZ + HZ; in bcm2835_send_command()
642 host->cmd = cmd; in bcm2835_send_command()
649 if ((cmd->flags & MMC_RSP_136) && (cmd->flags & MMC_RSP_BUSY)) { in bcm2835_send_command()
651 cmd->error = -EINVAL; in bcm2835_send_command()
656 bcm2835_prepare_data(host, cmd); in bcm2835_send_command()
658 writel(cmd->arg, host->ioaddr + SDARG); in bcm2835_send_command()
660 sdcmd = cmd->opcode & SDCMD_CMD_MASK; in bcm2835_send_command()
663 if (!(cmd->flags & MMC_RSP_PRESENT)) { in bcm2835_send_command()
666 if (cmd->flags & MMC_RSP_136) in bcm2835_send_command()
668 if (cmd->flags & MMC_RSP_BUSY) { in bcm2835_send_command()
674 if (cmd->data) { in bcm2835_send_command()
675 if (cmd->data->flags & MMC_DATA_WRITE) in bcm2835_send_command()
677 if (cmd->data->flags & MMC_DATA_READ) in bcm2835_send_command()
725 if (host->cmd) { in bcm2835_finish_data()
740 struct mmc_command *cmd = host->cmd; in bcm2835_finish_command() local
749 host->cmd->error = -EIO; in bcm2835_finish_command()
759 (host->cmd->opcode != MMC_SEND_OP_COND)) { in bcm2835_finish_command()
763 host->cmd->error = -ETIMEDOUT; in bcm2835_finish_command()
766 host->cmd->opcode); in bcm2835_finish_command()
768 host->cmd->error = -EILSEQ; in bcm2835_finish_command()
782 if (cmd->flags & MMC_RSP_PRESENT) { in bcm2835_finish_command()
783 if (cmd->flags & MMC_RSP_136) { in bcm2835_finish_command()
787 cmd->resp[3 - i] = in bcm2835_finish_command()
791 cmd->resp[0] = readl(host->ioaddr + SDRSP0); in bcm2835_finish_command()
795 if (cmd == host->mrq->sbc) { in bcm2835_finish_command()
797 host->cmd = NULL; in bcm2835_finish_command()
798 if (bcm2835_send_command(host, host->mrq->cmd)) { in bcm2835_finish_command()
808 } else if (cmd == host->mrq->stop) { in bcm2835_finish_command()
813 host->cmd = NULL; in bcm2835_finish_command()
840 if (host->cmd) in bcm2835_timeout()
841 host->cmd->error = -ETIMEDOUT; in bcm2835_timeout()
843 host->mrq->cmd->error = -ETIMEDOUT; in bcm2835_timeout()
859 if (!host->cmd) in bcm2835_check_cmd_error()
864 host->cmd->error = -EILSEQ; in bcm2835_check_cmd_error()
870 host->cmd->error = -EILSEQ; in bcm2835_check_cmd_error()
875 host->cmd->error = -ETIMEDOUT; in bcm2835_check_cmd_error()
877 host->cmd->error = -ETIMEDOUT; in bcm2835_check_cmd_error()
895 if (WARN_ON(!host->cmd)) { in bcm2835_busy_irq()
1161 if (mrq->cmd) in bcm2835_request()
1162 mrq->cmd->error = 0; in bcm2835_request()
1172 if (mrq->cmd) in bcm2835_request()
1173 mrq->cmd->error = -EINVAL; in bcm2835_request()
1194 if (mrq->cmd) in bcm2835_request()
1195 mrq->cmd->error = -EILSEQ; in bcm2835_request()
1212 } else if (mrq->cmd && bcm2835_send_command(host, mrq->cmd)) { in bcm2835_request()