]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mmc: core: Adjust MDT beyond 2025
authorAvri Altman <avri.altman@sandisk.com>
Fri, 28 Nov 2025 05:20:10 +0000 (07:20 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 23 Feb 2026 11:06:52 +0000 (12:06 +0100)
JEDEC JESD84-B51B which was released in September 2025, increases the
manufacturing year limit for eMMC devices. The eMMC manufacturing year
is stored in a 4-bit field in the CID register. Originally, it covered
1997–2012. Later, with EXT_CSD_REV=8, it was extended up to 2025. Now,
with EXT_CSD_REV=9, the range is rolled over by another 16 years, up to
2038.

The mapping is as follows:
cid[8..11] | rev ≤ 4 | 8 ≥ rev > 4 | rev > 8
---------------------------------------------
0          | 1997    | 2013        | 2029
1          | 1998    | 2014        | 2030
2          | 1999    | 2015        | 2031
3          | 2000    | 2016        | 2032
4          | 2001    | 2017        | 2033
5          | 2002    | 2018        | 2034
6          | 2003    | 2019        | 2035
7          | 2004    | 2020        | 2036
8          | 2005    | 2021        | 2037
9          | 2006    | 2022        | 2038
10         | 2007    | 2023        |
11         | 2008    | 2024        |
12         | 2009    | 2025        |
13         | 2010    |             | 2026
14         | 2011    |             | 2027
15         | 2012    |             | 2028

Signed-off-by: Avri Altman <avri.altman@sandisk.com>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/mmc.c

index 7c86efb1044a3752787312fd20d1da483a90bced..f744dd501842821dba982b2ecf40f3d9a8c034ac 100644 (file)
@@ -671,7 +671,14 @@ static int mmc_decode_ext_csd(struct mmc_card *card, u8 *ext_csd)
                card->ext_csd.enhanced_rpmb_supported =
                                        (card->ext_csd.rel_param &
                                         EXT_CSD_WR_REL_PARAM_EN_RPMB_REL_WR);
+
+               if (card->ext_csd.rev >= 9) {
+                       /* Adjust production date as per JEDEC JESD84-B51B September 2025 */
+                       if (card->cid.year < 2023)
+                               card->cid.year += 16;
+               }
        }
+
 out:
        return err;
 }