Lines Matching refs:cmd
38 static int imx_usdhc_send_cmd(struct mmc_cmd *cmd);
199 static bool is_data_transfer_to_card(const struct mmc_cmd *cmd) in is_data_transfer_to_card() argument
201 unsigned int cmd_idx = cmd->cmd_idx; in is_data_transfer_to_card()
206 static bool is_data_transfer_cmd(const struct mmc_cmd *cmd) in is_data_transfer_cmd() argument
209 unsigned int cmd_idx = cmd->cmd_idx; in is_data_transfer_cmd()
218 if ((ADTC_MASK_SD & BIT_32(cmd->cmd_idx)) != 0U) { in is_data_transfer_cmd()
225 static int get_xfr_type(const struct mmc_cmd *cmd, bool data, uint32_t *xfertype) in get_xfr_type() argument
227 *xfertype = XFERTYPE_CMD(cmd->cmd_idx); in get_xfr_type()
229 switch (cmd->resp_type) { in get_xfr_type()
250 ERROR("Invalid CMD response: %u\n", cmd->resp_type); in get_xfr_type()
261 static int imx_usdhc_send_cmd(struct mmc_cmd *cmd) in imx_usdhc_send_cmd() argument
270 assert(cmd); in imx_usdhc_send_cmd()
272 data = is_data_transfer_cmd(cmd); in imx_usdhc_send_cmd()
274 err = get_xfr_type(cmd, data, &xfertype); in imx_usdhc_send_cmd()
305 if (!is_data_transfer_to_card(cmd)) { in imx_usdhc_send_cmd()
309 if ((cmd->cmd_idx != MMC_CMD(55)) && imx_usdhc_is_buf_valid()) { in imx_usdhc_send_cmd()
319 mmio_write_32(reg_base + CMDARG, cmd->cmd_arg); in imx_usdhc_send_cmd()
332 cmd->cmd_idx, intstat, err); in imx_usdhc_send_cmd()
337 if (cmd->resp_type & MMC_RSP_136) { in imx_usdhc_send_cmd()
344 cmd->resp_data[3] = (cmdrsp3 << 8) | (cmdrsp2 >> 24); in imx_usdhc_send_cmd()
345 cmd->resp_data[2] = (cmdrsp2 << 8) | (cmdrsp1 >> 24); in imx_usdhc_send_cmd()
346 cmd->resp_data[1] = (cmdrsp1 << 8) | (cmdrsp0 >> 24); in imx_usdhc_send_cmd()
347 cmd->resp_data[0] = (cmdrsp0 << 8); in imx_usdhc_send_cmd()
349 cmd->resp_data[0] = mmio_read_32(reg_base + CMDRSP0); in imx_usdhc_send_cmd()