2023-11-03 00:43:19

by Dominique Martinet

[permalink] [raw]
Subject: [PATCH] Revert "mmc: core: Capture correct oemid-bits for eMMC cards"

From: Dominique Martinet <[email protected]>

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/[email protected]
Link: https://lkml.kernel.org/r/CAPDyKFqkKibcXnwjnhc3+W1iJBHLeqQ9BpcZrSwhW2u9K2oUtg@mail.gmail.com
Signed-off-by: Dominique Martinet <[email protected]>
Cc: [email protected]
Cc: Avri Altman <[email protected]>
Cc: Ulf Hansson <[email protected]>
Cc: Alex Fetters <[email protected]>
---
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


2023-11-03 06:42:03

by Avri Altman

[permalink] [raw]
Subject: RE: [PATCH] Revert "mmc: core: Capture correct oemid-bits for eMMC cards"

> From: Dominique Martinet <[email protected]>
>
> 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/[email protected]
> Link:
> https://lkml.kernel.org/r/CAPDyKFqkKibcXnwjnhc3+W1iJBHLeqQ9BpcZrSwh
> [email protected]
> Signed-off-by: Dominique Martinet <dominique.martinet@atmark-
> techno.com>
> Cc: [email protected]
> Cc: Avri Altman <[email protected]>
> Cc: Ulf Hansson <[email protected]>
> Cc: Alex Fetters <[email protected]>
Reviewed-by: Avri Altman <[email protected]>

> ---
> 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

2023-11-03 11:17:58

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH] Revert "mmc: core: Capture correct oemid-bits for eMMC cards"

On Fri, 3 Nov 2023 at 01:42, Dominique Martinet <[email protected]> wrote:
>
> From: Dominique Martinet <[email protected]>
>
> 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/[email protected]
> Link: https://lkml.kernel.org/r/CAPDyKFqkKibcXnwjnhc3+W1iJBHLeqQ9BpcZrSwhW2u9K2oUtg@mail.gmail.com
> Signed-off-by: Dominique Martinet <[email protected]>
> Cc: [email protected]
> Cc: Avri Altman <[email protected]>
> Cc: Ulf Hansson <[email protected]>
> Cc: Alex Fetters <[email protected]>

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
>