On 22/07/17 12:26, Shawn Lin wrote: > Hi Adrian, > > On 2017/7/21 17:49, Adrian Hunter wrote: >> Add CQE support to the block driver, including: >> - optionally using DCMD for flush requests > > That doesn't seem to be fact when I was looking into > patch 10 as it always fire DCMD with QBR whenever seeing > !mrq->data. Do I miss something? The function that decides how to issue a request is mmc_cqe_issue_type() which checks mmc_cqe_can_dcmd(). <SNIP> >> +static inline bool mmc_cqe_can_dcmd(struct mmc_host *host) >> +{ >> + return host->caps2 & MMC_CAP2_CQE_DCMD; >> +} >> + >> +enum mmc_issue_type mmc_cqe_issue_type(struct mmc_host *host, >> + struct request *req) >> +{ >> + switch (req_op(req)) { >> + case REQ_OP_DRV_IN: >> + case REQ_OP_DRV_OUT: >> + case REQ_OP_DISCARD: >> + case REQ_OP_SECURE_ERASE: >> + return MMC_ISSUE_SYNC; >> + case REQ_OP_FLUSH: >> + return mmc_cqe_can_dcmd(host) ? MMC_ISSUE_DCMD : MMC_ISSUE_SYNC; >> + default: >> + return MMC_ISSUE_ASYNC; >> + } >> +} -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html