mtd: nand: remove hard-coded NAND ids length
authorJean-Louis Thekekara <jeanlouis.thekekara@parrot.com>
Thu, 29 Jun 2017 17:08:30 +0000 (19:08 +0200)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Wed, 23 Aug 2017 14:49:13 +0000 (16:49 +0200)
This commit removes hard-coded '8' used for looping into
struct nand_chip.id.data array.

NAND_MAX_ID_LEN has been introduced by Artem Bityutskiy in
53552d22bfe1f for defining ids length in nand_flash_ids[] list.

This commit unifies ids length in nand base driver.

Signed-off-by: Jean-Louis Thekekara <jeanlouis.thekekara@parrot.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/mtd/nand/nand_base.c
include/linux/mtd/nand.h

index abcb15fba484c807a7f641dcc9ce0e618470153e..ab2804379b0d1925567f441363b806fecd0d5645 100644 (file)
@@ -3886,7 +3886,7 @@ static int nand_detect(struct nand_chip *chip, struct nand_flash_dev *type)
        chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);
 
        /* Read entire ID string */
-       for (i = 0; i < 8; i++)
+       for (i = 0; i < ARRAY_SIZE(chip->id.data); i++)
                id_data[i] = chip->read_byte(mtd);
 
        if (id_data[0] != maf_id || id_data[1] != dev_id) {
@@ -3895,7 +3895,7 @@ static int nand_detect(struct nand_chip *chip, struct nand_flash_dev *type)
                return -ENODEV;
        }
 
-       chip->id.len = nand_id_len(id_data, 8);
+       chip->id.len = nand_id_len(id_data, ARRAY_SIZE(chip->id.data));
 
        /* Try to identify manufacturer */
        manufacturer = nand_get_manufacturer(maf_id);
index 8a6522e82f03bbe2e2fbf65ac52fdc7f7d84df8a..2976840139775cab8ff222a18db5170f8d332214 100644 (file)
@@ -439,14 +439,16 @@ struct nand_jedec_params {
        __le16 crc;
 } __packed;
 
+/* The maximum expected count of bytes in the NAND ID sequence */
+#define NAND_MAX_ID_LEN 8
+
 /**
  * struct nand_id - NAND id structure
- * @data: buffer containing the id bytes. Currently 8 bytes large, but can
- *       be extended if required.
+ * @data: buffer containing the id bytes.
  * @len: ID length.
  */
 struct nand_id {
-       u8 data[8];
+       u8 data[NAND_MAX_ID_LEN];
        int len;
 };
 
@@ -1018,8 +1020,6 @@ static inline void *nand_get_manufacturer_data(struct nand_chip *chip)
 #define NAND_MFR_ATO           0x9b
 #define NAND_MFR_WINBOND       0xef
 
-/* The maximum expected count of bytes in the NAND ID sequence */
-#define NAND_MAX_ID_LEN 8
 
 /*
  * A helper for defining older NAND chips where the second ID byte fully