Message ID | 1371212744-31596-1-git-send-email-romain.izard.pro@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Romain, On Fri, Jun 14 2013, Romain Izard wrote: > The field containing the production date in the CID register only uses > 4 bits to encode the year, starting from 1997 in the original standard. > In 2013, the production year field contains 0, and the kernel reports a > 1997 production date. > > The eMMC 4.51 specification adds a new interpretation rule. For all > devices implementing the 4.41 specification or later, the production > year field will be interpreted as a value between 2010 and 2025, with > 0 corresponding to 2013. > > Signed-off-by: Romain Izard <romain.izard.pro@gmail.com> > --- > drivers/mmc/core/mmc.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c > index 3a69b94..3914523 100644 > --- a/drivers/mmc/core/mmc.c > +++ b/drivers/mmc/core/mmc.c > @@ -482,6 +482,10 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) > } > > if (card->ext_csd.rev >= 5) { > + /* Adjust production date as per JEDEC JESD84-B451 */ > + if (card->cid.year < 2010) > + card->cid.year += 16; > + > /* check whether the eMMC card supports BKOPS */ > if (ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1) { > card->ext_csd.bkops = 1; Thanks, pushed to mmc-next for 3.11. - Chris.
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 3a69b94..3914523 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -482,6 +482,10 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) } if (card->ext_csd.rev >= 5) { + /* Adjust production date as per JEDEC JESD84-B451 */ + if (card->cid.year < 2010) + card->cid.year += 16; + /* check whether the eMMC card supports BKOPS */ if (ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1) { card->ext_csd.bkops = 1;
The field containing the production date in the CID register only uses 4 bits to encode the year, starting from 1997 in the original standard. In 2013, the production year field contains 0, and the kernel reports a 1997 production date. The eMMC 4.51 specification adds a new interpretation rule. For all devices implementing the 4.41 specification or later, the production year field will be interpreted as a value between 2010 and 2025, with 0 corresponding to 2013. Signed-off-by: Romain Izard <romain.izard.pro@gmail.com> --- drivers/mmc/core/mmc.c | 4 ++++ 1 file changed, 4 insertions(+)