Message ID | 20231103004220.1666641-1-asmadeus@codewreck.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Revert "mmc: core: Capture correct oemid-bits for eMMC cards" | expand |
> From: Dominique Martinet <dominique.martinet@atmark-techno.com> > > This reverts commit 84ee19bffc9306128cd0f1c650e89767079efeff. > > The commit above made quirks with an OEMID fail to be applied, as they > were checking card->cid.oemid for the full 16 bits defined in MMC_FIXUP > macros but the field would only contain the bottom 8 bits. > > eMMC v5.1A might have bogus values in OEMID's higher bits so another fix > will be made, but it has been decided to revert this until that is ready. > > Fixes: 84ee19bffc93 ("mmc: core: Capture correct oemid-bits for eMMC > cards") > Link: https://lkml.kernel.org/r/ZToJsSLHr8RnuTHz@codewreck.org > Link: > https://lkml.kernel.org/r/CAPDyKFqkKibcXnwjnhc3+W1iJBHLeqQ9BpcZrSwh > W2u9K2oUtg@mail.gmail.com > Signed-off-by: Dominique Martinet <dominique.martinet@atmark- > techno.com> > Cc: stable@vger.kernel.org > Cc: Avri Altman <avri.altman@wdc.com> > Cc: Ulf Hansson <ulf.hansson@linaro.org> > Cc: Alex Fetters <Alex.Fetters@garmin.com> Reviewed-by: Avri Altman <avri.altman@wdc.com> > --- > Here's the revert as discussed in "mmc: truncate quirks' oemid to 8 bits"' > patch thread. > Feel free to ignore if you already have something, I just checked your -next > branch quickly and might have missed it. > > drivers/mmc/core/mmc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index > 4a4bab9aa726..89cd48fcec79 100644 > --- a/drivers/mmc/core/mmc.c > +++ b/drivers/mmc/core/mmc.c > @@ -104,7 +104,7 @@ static int mmc_decode_cid(struct mmc_card *card) > case 3: /* MMC v3.1 - v3.3 */ > case 4: /* MMC v4 */ > card->cid.manfid = UNSTUFF_BITS(resp, 120, 8); > - card->cid.oemid = UNSTUFF_BITS(resp, 104, 8); > + card->cid.oemid = UNSTUFF_BITS(resp, 104, 16); > card->cid.prod_name[0] = UNSTUFF_BITS(resp, 96, 8); > card->cid.prod_name[1] = UNSTUFF_BITS(resp, 88, 8); > card->cid.prod_name[2] = UNSTUFF_BITS(resp, 80, 8); > -- > 2.41.0
On Fri, 3 Nov 2023 at 01:42, Dominique Martinet <asmadeus@codewreck.org> wrote: > > From: Dominique Martinet <dominique.martinet@atmark-techno.com> > > This reverts commit 84ee19bffc9306128cd0f1c650e89767079efeff. > > The commit above made quirks with an OEMID fail to be applied, as they > were checking card->cid.oemid for the full 16 bits defined in MMC_FIXUP > macros but the field would only contain the bottom 8 bits. > > eMMC v5.1A might have bogus values in OEMID's higher bits so another fix > will be made, but it has been decided to revert this until that is ready. > > Fixes: 84ee19bffc93 ("mmc: core: Capture correct oemid-bits for eMMC cards") > Link: https://lkml.kernel.org/r/ZToJsSLHr8RnuTHz@codewreck.org > Link: https://lkml.kernel.org/r/CAPDyKFqkKibcXnwjnhc3+W1iJBHLeqQ9BpcZrSwhW2u9K2oUtg@mail.gmail.com > Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com> > Cc: stable@vger.kernel.org > Cc: Avri Altman <avri.altman@wdc.com> > Cc: Ulf Hansson <ulf.hansson@linaro.org> > Cc: Alex Fetters <Alex.Fetters@garmin.com> Applied for fixes, thanks! Kind regards Uffe > --- > Here's the revert as discussed in "mmc: truncate quirks' oemid to 8 > bits"' patch thread. > Feel free to ignore if you already have something, I just checked your > -next branch quickly and might have missed it. > > drivers/mmc/core/mmc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c > index 4a4bab9aa726..89cd48fcec79 100644 > --- a/drivers/mmc/core/mmc.c > +++ b/drivers/mmc/core/mmc.c > @@ -104,7 +104,7 @@ static int mmc_decode_cid(struct mmc_card *card) > case 3: /* MMC v3.1 - v3.3 */ > case 4: /* MMC v4 */ > card->cid.manfid = UNSTUFF_BITS(resp, 120, 8); > - card->cid.oemid = UNSTUFF_BITS(resp, 104, 8); > + card->cid.oemid = UNSTUFF_BITS(resp, 104, 16); > card->cid.prod_name[0] = UNSTUFF_BITS(resp, 96, 8); > card->cid.prod_name[1] = UNSTUFF_BITS(resp, 88, 8); > card->cid.prod_name[2] = UNSTUFF_BITS(resp, 80, 8); > -- > 2.41.0 >
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 4a4bab9aa726..89cd48fcec79 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -104,7 +104,7 @@ static int mmc_decode_cid(struct mmc_card *card) case 3: /* MMC v3.1 - v3.3 */ case 4: /* MMC v4 */ card->cid.manfid = UNSTUFF_BITS(resp, 120, 8); - card->cid.oemid = UNSTUFF_BITS(resp, 104, 8); + card->cid.oemid = UNSTUFF_BITS(resp, 104, 16); card->cid.prod_name[0] = UNSTUFF_BITS(resp, 96, 8); card->cid.prod_name[1] = UNSTUFF_BITS(resp, 88, 8); card->cid.prod_name[2] = UNSTUFF_BITS(resp, 80, 8);