diff mbox series

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

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

Commit Message

Tokunori Ikegami March 22, 2022, 2:10 a.m. UTC
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(-)

Comments

Miquel Raynal March 22, 2022, 6:34 p.m. UTC | #1
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
Tokunori Ikegami March 22, 2022, 11:41 p.m. UTC | #2
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 mbox series

Patch

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,