Message ID | 20220322021001.138206-4-ikegami.t@gmail.com |
---|---|
State | New |
Delegated to: | Vignesh R |
Headers | show |
Series | mtd: cfi_cmdset_0002: Use chip_ready() for write on S29GL064N | expand |
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
Hi Miquel-san, On 2022/03/23 3:34, Miquel Raynal wrote: > 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. The changes added are for the patch v4 1/3 comment below. Sorry I missed to update the commit message so will update it as so. > A lot of the diff is just a rename. I am not against a rename if you > feel it's better, but in this order: > 1: prepare the fix > 2: fix > 3: rename/define id's, whatever Regards, Ikegami > >> } >> >> static int __xipram chip_good(struct map_info *map, struct flchip *chip, > > Thanks, > Miquèl
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); } static int __xipram chip_good(struct map_info *map, struct flchip *chip,
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(-)