aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2017-09-22 08:36:54 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2017-10-30 06:45:51 -0400
commitf690f4409ddd79a481efddaf6e4cb65cf1a747cb (patch)
tree0dff38b76072a85249762d7506060ae1bc245746
parent98d4f7809d99bbf456f93816ef9895616cdd1b2d (diff)
mmc: mmc: Enable CQE's
Enable or disable CQE when a card is added or removed respectively. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r--drivers/mmc/core/bus.c7
-rw-r--r--drivers/mmc/core/mmc.c12
2 files changed, 19 insertions, 0 deletions
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index 301246513a37..a4b49e25fe96 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -369,10 +369,17 @@ int mmc_add_card(struct mmc_card *card)
369 */ 369 */
370void mmc_remove_card(struct mmc_card *card) 370void mmc_remove_card(struct mmc_card *card)
371{ 371{
372 struct mmc_host *host = card->host;
373
372#ifdef CONFIG_DEBUG_FS 374#ifdef CONFIG_DEBUG_FS
373 mmc_remove_card_debugfs(card); 375 mmc_remove_card_debugfs(card);
374#endif 376#endif
375 377
378 if (host->cqe_enabled) {
379 host->cqe_ops->cqe_disable(host);
380 host->cqe_enabled = false;
381 }
382
376 if (mmc_card_present(card)) { 383 if (mmc_card_present(card)) {
377 if (mmc_host_is_spi(card->host)) { 384 if (mmc_host_is_spi(card->host)) {
378 pr_info("%s: SPI card removed\n", 385 pr_info("%s: SPI card removed\n",
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 8e11526c5092..44d67ee8bf7b 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -1809,6 +1809,18 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
1809 */ 1809 */
1810 card->reenable_cmdq = card->ext_csd.cmdq_en; 1810 card->reenable_cmdq = card->ext_csd.cmdq_en;
1811 1811
1812 if (card->ext_csd.cmdq_en && !host->cqe_enabled) {
1813 err = host->cqe_ops->cqe_enable(host, card);
1814 if (err) {
1815 pr_err("%s: Failed to enable CQE, error %d\n",
1816 mmc_hostname(host), err);
1817 } else {
1818 host->cqe_enabled = true;
1819 pr_info("%s: Command Queue Engine enabled\n",
1820 mmc_hostname(host));
1821 }
1822 }
1823
1812 if (!oldcard) 1824 if (!oldcard)
1813 host->card = card; 1825 host->card = card;
1814 1826