Thread (8 messages) 8 messages, 4 authors, 2021-01-27

RE: [PATCH] mmc: core: Apply trim broken quirk to R1J57L

From: Wang, Xiaolei <hidden>
Date: 2021-01-21 09:55:56
Also in: linux-mmc

Hi
Are you sure this is an eMMC problem and not a mmc host driver issue?
Can you elaborate more what happens?
When I use the mkfs.f2fs tool to format the eMMC file system on the imx8qxp board, 
because mkfs.f2fs will use secdiscard first, when entering mmc_blk_issue_secdiscard_rq erase,
once the parameters are passed into MMC_SECURE_TRIM1_ARG, this function will take a long time to return .
The program has not ended, has been in TASK_UNINTERRUPTIBLE state.

I compared the mkfs.ext4 tool to format the file system. Because it directly uses mmc_blk_issue_discard_rq, 
this is a normal formatting phenomenon.

mmc_blk_issue_secdiscard_rq and mmc_blk_issue_discard_rq are just different commands and parameters sent by the host as a bus.
 I did not see the description of trim in the data sheet. Could the host driver cause this problem?

Note:
The host driver I use is sdhci-esdhc-imx.c

Thanks
Xiaolei

-----Original Message-----
From: Ulf Hansson <redacted> 
Sent: Wednesday, January 20, 2021 9:41 PM
To: Wang, Xiaolei <redacted>
Cc: Pali Rohár <pali@kernel.org>; Lee Jones <redacted>; linux-mmc@vger.kernel.org; Linux Kernel Mailing List <redacted>
Subject: Re: [PATCH] mmc: core: Apply trim broken quirk to R1J57L

[Please note this e-mail is from an EXTERNAL e-mail address]

On Mon, 18 Jan 2021 at 05:27, Xiaolei Wang [off-list ref] wrote:
R1J57L mmc chip hw capibility indicates that it supports trim 
function, but this function does not work properly, the SDIO bus does 
not respond, and the IO has been waiting so set quirks to skip trim
Are you sure this is an eMMC problem and not a mmc host driver issue?

Can you elaborate more what happens?

Kind regards
Uffe
quoted hunk ↗ jump to hunk
Signed-off-by: Xiaolei Wang <redacted>
---
 drivers/mmc/core/quirks.h | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h 
index d68e6e513a4f..63e02391c133 100644
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -89,6 +89,8 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
                  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
        MMC_FIXUP("VZL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
                  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+       MMC_FIXUP("R1J57L", CID_MANFID_MICRON, CID_OEMID_ANY, add_quirk_mmc,
+                 MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),

        /*
         *  On Some Kingston eMMCs, performing trim can result in @@ 
-98,6 +100,8 @@ static const struct mmc_fixup __maybe_unused mmc_blk_fixups[] = {
                  MMC_QUIRK_TRIM_BROKEN),
        MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc,
                  MMC_QUIRK_TRIM_BROKEN),
+       MMC_FIXUP("R1J57L", CID_MANFID_MICRON, CID_OEMID_ANY, add_quirk_mmc,
+                 MMC_QUIRK_TRIM_BROKEN),

        END_FIXUP
 };
--
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help