summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancesco Dolcini <francesco.dolcini@toradex.com>2023-11-28 21:38:36 +0100
committerFrancesco Dolcini <francesco.dolcini@toradex.com>2023-11-29 15:24:45 +0100
commite64a4ab0693db25b92c237ef16603840c7baa4ca (patch)
tree6d1ab33236aba9cca15d2b83d862d8db45543059
parent620f5bbe0ca0743e682a69697cb8fb1d39550471 (diff)
linux-toradex-mainline: remove micron emcc quirk patch
Patch was applied to 6.1 stable kernel, remove it from the patches list since it's not required anymore and to fix a build failure. Recipe version is also updated to v6.1.64 that includes this patch. Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-git/0001-mmc-Add-quirk-MMC_QUIRK_BROKEN_CACHE_FLUSH-for-Micro.patch115
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline_git.bb5
2 files changed, 2 insertions, 118 deletions
diff --git a/recipes-kernel/linux/linux-toradex-mainline-git/0001-mmc-Add-quirk-MMC_QUIRK_BROKEN_CACHE_FLUSH-for-Micro.patch b/recipes-kernel/linux/linux-toradex-mainline-git/0001-mmc-Add-quirk-MMC_QUIRK_BROKEN_CACHE_FLUSH-for-Micro.patch
deleted file mode 100644
index f49f953..0000000
--- a/recipes-kernel/linux/linux-toradex-mainline-git/0001-mmc-Add-quirk-MMC_QUIRK_BROKEN_CACHE_FLUSH-for-Micro.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From e433e473498da8ee1c8d86b03eb38fbde9a2fb06 Mon Sep 17 00:00:00 2001
-From: Bean Huo <beanhuo@micron.com>
-Date: Mon, 30 Oct 2023 23:48:09 +0100
-Subject: [PATCH] mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC
- Q2J54A
-
-Micron MTFC4GACAJCN eMMC supports cache but requires that flush cache
-operation be allowed only after a write has occurred. Otherwise, the
-cache flush command or subsequent commands will time out.
-
-Upstream-Status: Backport [ed9009ad300c0f15a3ecfe9613547b1962bde02c]
-
-Signed-off-by: Bean Huo <beanhuo@micron.com>
-Signed-off-by: Rafael Beims <rafael.beims@toradex.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/r/20231030224809.59245-1-beanhuo@iokpp.de
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
----
- drivers/mmc/core/block.c | 4 +++-
- drivers/mmc/core/card.h | 4 ++++
- drivers/mmc/core/mmc.c | 8 ++++++--
- drivers/mmc/core/quirks.h | 7 ++++---
- include/linux/mmc/card.h | 2 ++
- 5 files changed, 19 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
-index cdd7f126d4ae..17487807dbc4 100644
---- a/drivers/mmc/core/block.c
-+++ b/drivers/mmc/core/block.c
-@@ -2380,8 +2380,10 @@ enum mmc_issued mmc_blk_mq_issue_rq(struct mmc_queue *mq, struct request *req)
- }
- ret = mmc_blk_cqe_issue_flush(mq, req);
- break;
-- case REQ_OP_READ:
- case REQ_OP_WRITE:
-+ card->written_flag = true;
-+ fallthrough;
-+ case REQ_OP_READ:
- if (host->cqe_enabled)
- ret = mmc_blk_cqe_issue_rw_rq(mq, req);
- else
-diff --git a/drivers/mmc/core/card.h b/drivers/mmc/core/card.h
-index 4edf9057fa79..b7754a1b8d97 100644
---- a/drivers/mmc/core/card.h
-+++ b/drivers/mmc/core/card.h
-@@ -280,4 +280,8 @@ static inline int mmc_card_broken_sd_cache(const struct mmc_card *c)
- return c->quirks & MMC_QUIRK_BROKEN_SD_CACHE;
- }
-
-+static inline int mmc_card_broken_cache_flush(const struct mmc_card *c)
-+{
-+ return c->quirks & MMC_QUIRK_BROKEN_CACHE_FLUSH;
-+}
- #endif
-diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
-index 4a4bab9aa726..6bcc323c1f4e 100644
---- a/drivers/mmc/core/mmc.c
-+++ b/drivers/mmc/core/mmc.c
-@@ -2081,13 +2081,17 @@ static int _mmc_flush_cache(struct mmc_host *host)
- {
- int err = 0;
-
-+ if (mmc_card_broken_cache_flush(host->card) && !host->card->written_flag)
-+ return 0;
-+
- if (_mmc_cache_enabled(host)) {
- err = mmc_switch(host->card, EXT_CSD_CMD_SET_NORMAL,
- EXT_CSD_FLUSH_CACHE, 1,
- CACHE_FLUSH_TIMEOUT_MS);
- if (err)
-- pr_err("%s: cache flush error %d\n",
-- mmc_hostname(host), err);
-+ pr_err("%s: cache flush error %d\n", mmc_hostname(host), err);
-+ else
-+ host->card->written_flag = false;
- }
-
- return err;
-diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h
-index 857315f185fc..ec760ac0b397 100644
---- a/drivers/mmc/core/quirks.h
-+++ b/drivers/mmc/core/quirks.h
-@@ -117,11 +117,12 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
- MMC_QUIRK_TRIM_BROKEN),
-
- /*
-- * Micron MTFC4GACAJCN-1M advertises TRIM but it does not seems to
-- * support being used to offload WRITE_ZEROES.
-+ * Micron MTFC4GACAJCN-1M supports TRIM but does not appear to support
-+ * WRITE_ZEROES offloading. It also supports caching, but the cache can
-+ * only be flushed after a write has occurred.
- */
- MMC_FIXUP("Q2J54A", CID_MANFID_MICRON, 0x014e, add_quirk_mmc,
-- MMC_QUIRK_TRIM_BROKEN),
-+ MMC_QUIRK_TRIM_BROKEN | MMC_QUIRK_BROKEN_CACHE_FLUSH),
-
- /*
- * Some SD cards reports discard support while they don't
-diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
-index daa2f40d9ce6..7b12eebc5586 100644
---- a/include/linux/mmc/card.h
-+++ b/include/linux/mmc/card.h
-@@ -295,7 +295,9 @@ struct mmc_card {
- #define MMC_QUIRK_BROKEN_HPI (1<<13) /* Disable broken HPI support */
- #define MMC_QUIRK_BROKEN_SD_DISCARD (1<<14) /* Disable broken SD discard support */
- #define MMC_QUIRK_BROKEN_SD_CACHE (1<<15) /* Disable broken SD cache support */
-+#define MMC_QUIRK_BROKEN_CACHE_FLUSH (1<<16) /* Don't flush cache until the write has occurred */
-
-+ bool written_flag; /* Indicates eMMC has been written since power on */
- bool reenable_cmdq; /* Re-enable Command Queue */
-
- unsigned int erase_size; /* erase size in sectors */
---
-2.34.1
-
diff --git a/recipes-kernel/linux/linux-toradex-mainline_git.bb b/recipes-kernel/linux/linux-toradex-mainline_git.bb
index 7f6852d..a324347 100644
--- a/recipes-kernel/linux/linux-toradex-mainline_git.bb
+++ b/recipes-kernel/linux/linux-toradex-mainline_git.bb
@@ -49,13 +49,12 @@ SRC_URI:append = " \
file://0003-dt-bindings-power-reset-gpio-poweroff-Add-priority-p.patch \
file://0004-power-reset-gpio-poweroff-make-sys-handler-priority-.patch \
file://0001-ARM-dts-imx6q-apalis-add-can-power-up-delay-on-ixora.patch \
- file://0001-mmc-Add-quirk-MMC_QUIRK_BROKEN_CACHE_FLUSH-for-Micro.patch \
"
-LINUX_VERSION ?= "6.1.60"
+LINUX_VERSION ?= "6.1.64"
KBRANCH = "linux-6.1.y"
KERNEL_VERSION_SANITY_SKIP = "1"
-SRCREV_machine = "32c9cdbe383c153af23cfa1df0a352b97ab3df7a"
+SRCREV_machine = "6ac30d748bb080752d4078d482534b68d62f685f"
SRCREV_machine:use-head-next = "${AUTOREV}"
S = "${WORKDIR}/git"