diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 91d3bbecf307..d46e6db5cd08 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -2236,10 +2236,6 @@ enum mmc_issued mmc_blk_mq_issue_rq(struct mmc_queue *mq, struct request *req) case MMC_ISSUE_ASYNC: switch (req_op(req)) { case REQ_OP_FLUSH: - if (!mmc_cache_enabled(host)) { - blk_mq_end_request(req, BLK_STS_OK); - return MMC_REQ_FINISHED; - } ret = mmc_blk_cqe_issue_flush(mq, req); break; case REQ_OP_READ: diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h index db3c9c68875d..8032451abaea 100644 --- a/drivers/mmc/core/core.h +++ b/drivers/mmc/core/core.h @@ -29,7 +29,6 @@ struct mmc_bus_ops { int (*shutdown)(struct mmc_host *); int (*hw_reset)(struct mmc_host *); int (*sw_reset)(struct mmc_host *); - bool (*cache_enabled)(struct mmc_host *); }; void mmc_attach_bus(struct mmc_host *host, const struct mmc_bus_ops *ops); @@ -164,12 +163,4 @@ static inline void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq, host->ops->post_req(host, mrq, err); } -static inline bool mmc_cache_enabled(struct mmc_host *host) -{ - if (host->bus_ops->cache_enabled) - return host->bus_ops->cache_enabled(host); - - return false; -} - #endif diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 7494d595035e..9ce34e880033 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -2033,12 +2033,6 @@ static void mmc_detect(struct mmc_host *host) } } -static bool _mmc_cache_enabled(struct mmc_host *host) -{ - return host->card->ext_csd.cache_size > 0 && - host->card->ext_csd.cache_ctrl & 1; -} - static int _mmc_suspend(struct mmc_host *host, bool is_suspend) { int err = 0; @@ -2218,7 +2212,6 @@ static const struct mmc_bus_ops mmc_ops = { .alive = mmc_alive, .shutdown = mmc_shutdown, .hw_reset = _mmc_hw_reset, - .cache_enabled = _mmc_cache_enabled, }; /* diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c index ebad70e4481a..baa6314f69b4 100644 --- a/drivers/mmc/core/mmc_ops.c +++ b/drivers/mmc/core/mmc_ops.c @@ -988,7 +988,9 @@ int mmc_flush_cache(struct mmc_card *card) { int err = 0; - if (mmc_cache_enabled(card->host)) { + if (mmc_card_mmc(card) && + (card->ext_csd.cache_size > 0) && + (card->ext_csd.cache_ctrl & 1)) { err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_FLUSH_CACHE, 1, MMC_CACHE_FLUSH_TIMEOUT_MS);