Re: [PATCH v5 3/3] mtd: cfi_cmdset_0002: Add S29GL064N ID definition

Miquel Raynal
2022-03-22T18:34:55Z

Hi Tokunori,

ikegami.t@gmail.com wrote on Tue, 22 Mar 2022 11:10:01 +0900:

> It is for the model number 01, 02, V1 and V2.
>
> Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
> Cc: Miquel Raynal <miquel.raynal@bootlin.com>
> Cc: Richard Weinberger <richard@nod.at>
> Cc: Vignesh Raghavendra <vigneshr@ti.com>
> Cc: linux-mtd@lists.infradead.org
> ---
> drivers/mtd/chips/cfi_cmdset_0002.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
> index 59334530dd46..67453f59c69c 100644
> --- a/drivers/mtd/chips/cfi_cmdset_0002.c
> +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
> @@ -48,6 +48,7 @@
> #define SST49LF040B 0x0050
> #define SST49LF008A 0x005a
> #define AT49BV6416 0x00d6
> +#define S29GL064N_MN12 0x0c01
>
> /*
> * Status Register bit description. Used by flash devices that don't
> @@ -445,7 +446,7 @@ static void fixup_quirks(struct mtd_info *mtd)
> struct map_info *map = mtd->priv;
> struct cfi_private *cfi = map->fldrv_priv;
>
> - if (cfi->mfr == CFI_MFR_AMD && cfi->id == 0x0c01)
> + if (cfi->mfr == CFI_MFR_AMD && cfi->id == S29GL064N_MN12)
> cfi->quirks |= CFI_QUIRK_DQ_TRUE_DATA;
> }
>
> @@ -475,7 +476,7 @@ static struct cfi_fixup cfi_fixup_table[] = {
> { CFI_MFR_AMD, 0x0056, fixup_use_secsi },
> { CFI_MFR_AMD, 0x005C, fixup_use_secsi },
> { CFI_MFR_AMD, 0x005F, fixup_use_secsi },
> - { CFI_MFR_AMD, 0x0c01, fixup_s29gl064n_sectors },
> + { CFI_MFR_AMD, S29GL064N_MN12, fixup_s29gl064n_sectors },
> { CFI_MFR_AMD, 0x1301, fixup_s29gl064n_sectors },
> { CFI_MFR_AMD, 0x1a00, fixup_s29gl032n_sectors },
> { CFI_MFR_AMD, 0x1a01, fixup_s29gl032n_sectors },
> @@ -833,7 +834,7 @@ static int __xipram chip_ready(struct map_info *map, struct flchip *chip,
> unsigned long addr, map_word *expected)
> {
> struct cfi_private *cfi = map->fldrv_priv;
> - map_word d, t;
> + map_word oldd, curd;
> int ret;
>
> if (cfi_use_status_reg(cfi)) {
> @@ -844,20 +845,20 @@ static int __xipram chip_ready(struct map_info *map, struct flchip *chip,
> */
> cfi_send_gen_cmd(0x70, cfi->addr_unlock1, chip->start, map, cfi,
> cfi->device_type, NULL);
> - t = map_read(map, addr);
> + curd = map_read(map, addr);
>
> - return map_word_andequal(map, t, ready, ready);
> + return map_word_andequal(map, curd, ready, ready);
> }
>
> - d = map_read(map, addr);
> - t = map_read(map, addr);
> + oldd = map_read(map, addr);
> + curd = map_read(map, addr);
>
> - ret = map_word_equal(map, d, t);
> + ret = map_word_equal(map, oldd, curd);
>
> if (!ret || !expected)
> return ret;
>
> - return map_word_equal(map, t, *expected);
> + return map_word_equal(map, curd, *expected);

Looks like there is a rebase issue.

> }
>
> static int __xipram chip_good(struct map_info *map, struct flchip *chip,

Thanks,
Miquèl