Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3d53d0d authored by Adrian Hunter's avatar Adrian Hunter Committed by Ulf Hansson
Browse files

mmc: core: Add parameter use_blk_mq



Until mmc has blk-mq support fully implemented and tested, add a parameter
use_blk_mq, set to true if config option MMC_MQ_DEFAULT is selected, which
it is by default.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Tested-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 6d3898a6
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -12,6 +12,16 @@ menuconfig MMC
	  If you want MMC/SD/SDIO support, you should say Y here and
	  also to your specific host controller driver.

config MMC_MQ_DEFAULT
	bool "MMC: use blk-mq I/O path by default"
	depends on MMC && BLOCK
	default y
	---help---
	  This option enables the new blk-mq based I/O path for MMC block
	  devices by default.  With the option the mmc_core.use_blk_mq
	  module/boot option defaults to Y, without it to N, but it can
	  still be overridden either way.

if MMC

source "drivers/mmc/core/Kconfig"
+7 −0
Original line number Diff line number Diff line
@@ -66,6 +66,13 @@ static const unsigned freqs[] = { 400000, 300000, 200000, 100000 };
bool use_spi_crc = 1;
module_param(use_spi_crc, bool, 0);

#ifdef CONFIG_MMC_MQ_DEFAULT
bool mmc_use_blk_mq = true;
#else
bool mmc_use_blk_mq = false;
#endif
module_param_named(use_blk_mq, mmc_use_blk_mq, bool, S_IWUSR | S_IRUGO);

static int mmc_schedule_delayed_work(struct delayed_work *work,
				     unsigned long delay)
{
+2 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@ struct mmc_bus_ops {
	int (*reset)(struct mmc_host *);
};

extern bool mmc_use_blk_mq;

void mmc_attach_bus(struct mmc_host *host, const struct mmc_bus_ops *ops);
void mmc_detach_bus(struct mmc_host *host);

+2 −0
Original line number Diff line number Diff line
@@ -404,6 +404,8 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)

	host->fixed_drv_type = -EINVAL;

	host->use_blk_mq = mmc_use_blk_mq;

	return host;
}

+4 −0
Original line number Diff line number Diff line
@@ -74,6 +74,10 @@ static inline bool mmc_card_hs400es(struct mmc_card *card)
	return card->host->ios.enhanced_strobe;
}

static inline bool mmc_host_use_blk_mq(struct mmc_host *host)
{
	return host->use_blk_mq;
}

#endif
Loading