From e64a4ab0693db25b92c237ef16603840c7baa4ca Mon Sep 17 00:00:00 2001 From: Francesco Dolcini Date: Tue, 28 Nov 2023 21:38:36 +0100 Subject: 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 --- ...rk-MMC_QUIRK_BROKEN_CACHE_FLUSH-for-Micro.patch | 115 --------------------- recipes-kernel/linux/linux-toradex-mainline_git.bb | 5 +- 2 files changed, 2 insertions(+), 118 deletions(-) delete mode 100644 recipes-kernel/linux/linux-toradex-mainline-git/0001-mmc-Add-quirk-MMC_QUIRK_BROKEN_CACHE_FLUSH-for-Micro.patch 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 -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 -Signed-off-by: Rafael Beims -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/20231030224809.59245-1-beanhuo@iokpp.de -Signed-off-by: Ulf Hansson ---- - 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" -- cgit v1.2.3