brq 1210 drivers/mmc/core/block.c static inline void mmc_apply_rel_rw(struct mmc_blk_request *brq, brq 1217 drivers/mmc/core/block.c brq->data.blocks = 1; brq 1219 drivers/mmc/core/block.c if (brq->data.blocks > card->ext_csd.rel_sectors) brq 1220 drivers/mmc/core/block.c brq->data.blocks = card->ext_csd.rel_sectors; brq 1221 drivers/mmc/core/block.c else if (brq->data.blocks < card->ext_csd.rel_sectors) brq 1222 drivers/mmc/core/block.c brq->data.blocks = 1; brq 1238 drivers/mmc/core/block.c static void mmc_blk_eval_resp_error(struct mmc_blk_request *brq) brq 1268 drivers/mmc/core/block.c if (!brq->stop.error) { brq 1272 drivers/mmc/core/block.c val = brq->stop.resp[0] & CMD_ERRORS; brq 1273 drivers/mmc/core/block.c oor_with_open_end = val & R1_OUT_OF_RANGE && !brq->mrq.sbc; brq 1276 drivers/mmc/core/block.c brq->stop.error = -EIO; brq 1286 drivers/mmc/core/block.c struct mmc_blk_request *brq = &mqrq->brq; brq 1298 drivers/mmc/core/block.c memset(brq, 0, sizeof(struct mmc_blk_request)); brq 1300 drivers/mmc/core/block.c brq->mrq.data = &brq->data; brq 1301 drivers/mmc/core/block.c brq->mrq.tag = req->tag; brq 1303 drivers/mmc/core/block.c brq->stop.opcode = MMC_STOP_TRANSMISSION; brq 1304 drivers/mmc/core/block.c brq->stop.arg = 0; brq 1307 drivers/mmc/core/block.c brq->data.flags = MMC_DATA_READ; brq 1308 drivers/mmc/core/block.c brq->stop.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_AC; brq 1310 drivers/mmc/core/block.c brq->data.flags = MMC_DATA_WRITE; brq 1311 drivers/mmc/core/block.c brq->stop.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; brq 1314 drivers/mmc/core/block.c brq->data.blksz = 512; brq 1315 drivers/mmc/core/block.c brq->data.blocks = blk_rq_sectors(req); brq 1316 drivers/mmc/core/block.c brq->data.blk_addr = blk_rq_pos(req); brq 1330 drivers/mmc/core/block.c if (brq->data.blocks > card->host->max_blk_count) brq 1331 drivers/mmc/core/block.c brq->data.blocks = card->host->max_blk_count; brq 1333 drivers/mmc/core/block.c if (brq->data.blocks > 1) { brq 1342 drivers/mmc/core/block.c brq->data.blocks--; brq 1350 drivers/mmc/core/block.c brq->data.blocks = 1; brq 1357 drivers/mmc/core/block.c brq->data.blocks = card->host->ops->multi_io_quirk(card, brq 1360 drivers/mmc/core/block.c brq->data.blocks); brq 1364 drivers/mmc/core/block.c mmc_apply_rel_rw(brq, card, req); brq 1365 drivers/mmc/core/block.c brq->data.flags |= MMC_DATA_REL_WR; brq 1375 drivers/mmc/core/block.c ((brq->data.blocks * brq->data.blksz) >= brq 1379 drivers/mmc/core/block.c brq->data.flags |= MMC_DATA_DAT_TAG; brq 1381 drivers/mmc/core/block.c mmc_set_data_timeout(&brq->data, card); brq 1383 drivers/mmc/core/block.c brq->data.sg = mqrq->sg; brq 1384 drivers/mmc/core/block.c brq->data.sg_len = mmc_queue_map_sg(mq, mqrq); brq 1390 drivers/mmc/core/block.c if (brq->data.blocks != blk_rq_sectors(req)) { brq 1391 drivers/mmc/core/block.c int i, data_size = brq->data.blocks << 9; brq 1394 drivers/mmc/core/block.c for_each_sg(brq->data.sg, sg, brq->data.sg_len, i) { brq 1402 drivers/mmc/core/block.c brq->data.sg_len = i; brq 1417 drivers/mmc/core/block.c struct mmc_request *mrq = &mqrq->brq.mrq; brq 1485 drivers/mmc/core/block.c brq.mrq); brq 1511 drivers/mmc/core/block.c struct mmc_blk_request *brq = &mqrq->brq; brq 1513 drivers/mmc/core/block.c memset(brq, 0, sizeof(*brq)); brq 1515 drivers/mmc/core/block.c brq->mrq.cmd = &brq->cmd; brq 1516 drivers/mmc/core/block.c brq->mrq.tag = req->tag; brq 1518 drivers/mmc/core/block.c return &brq->mrq; brq 1542 drivers/mmc/core/block.c return mmc_blk_cqe_start_req(mq->card->host, &mqrq->brq.mrq); brq 1551 drivers/mmc/core/block.c struct mmc_blk_request *brq = &mqrq->brq; brq 1558 drivers/mmc/core/block.c brq->mrq.cmd = &brq->cmd; brq 1560 drivers/mmc/core/block.c brq->cmd.arg = blk_rq_pos(req); brq 1562 drivers/mmc/core/block.c brq->cmd.arg <<= 9; brq 1563 drivers/mmc/core/block.c brq->cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; brq 1565 drivers/mmc/core/block.c if (brq->data.blocks > 1 || do_rel_wr) { brq 1571 drivers/mmc/core/block.c brq->mrq.stop = &brq->stop; brq 1575 drivers/mmc/core/block.c brq->mrq.stop = NULL; brq 1579 drivers/mmc/core/block.c brq->cmd.opcode = rq_data_dir(req) == READ ? readcmd : writecmd; brq 1599 drivers/mmc/core/block.c if ((md->flags & MMC_BLK_CMD23) && mmc_op_multi(brq->cmd.opcode) && brq 1602 drivers/mmc/core/block.c brq->sbc.opcode = MMC_SET_BLOCK_COUNT; brq 1603 drivers/mmc/core/block.c brq->sbc.arg = brq->data.blocks | brq 1606 drivers/mmc/core/block.c brq->sbc.flags = MMC_RSP_R1 | MMC_CMD_AC; brq 1607 drivers/mmc/core/block.c brq->mrq.sbc = &brq->sbc; brq 1630 drivers/mmc/core/block.c struct mmc_blk_request *brq = &mqrq->brq; brq 1631 drivers/mmc/core/block.c unsigned int timeout = mmc_blk_data_timeout_ms(card->host, &brq->data); brq 1651 drivers/mmc/core/block.c struct mmc_request *mrq = &mqrq->brq.mrq; brq 1701 drivers/mmc/core/block.c static inline bool mmc_blk_oor_valid(struct mmc_blk_request *brq) brq 1703 drivers/mmc/core/block.c return !!brq->mrq.sbc; brq 1706 drivers/mmc/core/block.c static inline u32 mmc_blk_stop_err_bits(struct mmc_blk_request *brq) brq 1708 drivers/mmc/core/block.c return mmc_blk_oor_valid(brq) ? CMD_ERRORS : CMD_ERRORS_EXCL_OOR; brq 1718 drivers/mmc/core/block.c struct mmc_blk_request *brq = &mqrq->brq; brq 1725 drivers/mmc/core/block.c stop_err_bits = mmc_blk_stop_err_bits(brq); brq 1727 drivers/mmc/core/block.c return brq->cmd.resp[0] & CMD_ERRORS || brq 1728 drivers/mmc/core/block.c brq->stop.resp[0] & stop_err_bits || brq 1733 drivers/mmc/core/block.c static inline bool mmc_blk_cmd_started(struct mmc_blk_request *brq) brq 1735 drivers/mmc/core/block.c return !brq->sbc.error && !brq->cmd.error && brq 1736 drivers/mmc/core/block.c !(brq->cmd.resp[0] & CMD_ERRORS); brq 1759 drivers/mmc/core/block.c struct mmc_blk_request *brq = &mqrq->brq; brq 1772 drivers/mmc/core/block.c brq->data.bytes_xfered = 0; brq 1799 drivers/mmc/core/block.c if (!err && mmc_blk_cmd_started(brq) && mmc_card_sd(card) && brq 1802 drivers/mmc/core/block.c brq->data.bytes_xfered = 0; brq 1804 drivers/mmc/core/block.c brq->data.bytes_xfered = blocks << 9; brq 1819 drivers/mmc/core/block.c if (brq->data.bytes_xfered) brq 1827 drivers/mmc/core/block.c if (brq->sbc.error || brq->cmd.error) brq 1838 drivers/mmc/core/block.c brq->data.blocks > 1) { brq 1845 drivers/mmc/core/block.c static inline bool mmc_blk_rq_error(struct mmc_blk_request *brq) brq 1847 drivers/mmc/core/block.c mmc_blk_eval_resp_error(brq); brq 1849 drivers/mmc/core/block.c return brq->sbc.error || brq->cmd.error || brq->stop.error || brq 1850 drivers/mmc/core/block.c brq->data.error || brq->cmd.resp[0] & CMD_ERRORS; brq 1868 drivers/mmc/core/block.c if (status & mmc_blk_stop_err_bits(&mqrq->brq)) { brq 1869 drivers/mmc/core/block.c mqrq->brq.data.bytes_xfered = 0; brq 1875 drivers/mmc/core/block.c mqrq->brq.cmd.resp[0] |= R1_EXCEPTION_EVENT; brq 1891 drivers/mmc/core/block.c unsigned int nr_bytes = mqrq->brq.data.bytes_xfered; brq 1913 drivers/mmc/core/block.c (mqrq->brq.cmd.resp[0] & R1_EXCEPTION_EVENT || brq 1914 drivers/mmc/core/block.c mqrq->brq.stop.resp[0] & R1_EXCEPTION_EVENT); brq 1940 drivers/mmc/core/block.c if (mmc_blk_rq_error(&mqrq->brq) || brq 1971 drivers/mmc/core/block.c struct mmc_request *mrq = &mqrq->brq.mrq; brq 1997 drivers/mmc/core/block.c if (mmc_blk_rq_error(&mqrq->brq)) { brq 2042 drivers/mmc/core/block.c brq.mrq); brq 2079 drivers/mmc/core/block.c if (mmc_blk_rq_error(&mqrq->brq) || brq 2142 drivers/mmc/core/block.c mqrq->brq.mrq.done = mmc_blk_mq_req_done; brq 2144 drivers/mmc/core/block.c mmc_pre_req(host, &mqrq->brq.mrq); brq 2152 drivers/mmc/core/block.c err = mmc_start_request(host, &mqrq->brq.mrq); brq 2166 drivers/mmc/core/block.c mmc_post_req(host, &mqrq->brq.mrq, err); brq 85 drivers/mmc/core/queue.c brq.mrq); brq 99 drivers/mmc/core/queue.c struct mmc_request *mrq = &mqrq->brq.mrq; brq 65 drivers/mmc/core/queue.h struct mmc_blk_request brq;