Commit 1826dbcc authored by Brian Norris's avatar Brian Norris Committed by David Woodhouse

mtd: nand: kill NAND_NO_AUTOINCR option

No drivers use auto-increment NAND, so kill the NO_AUTOINCR option entirely.
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent c00a0991
...@@ -1119,8 +1119,6 @@ in this page</entry> ...@@ -1119,8 +1119,6 @@ in this page</entry>
These constants are defined in nand.h. They are ored together to describe These constants are defined in nand.h. They are ored together to describe
the chip functionality. the chip functionality.
<programlisting> <programlisting>
/* Chip can not auto increment pages */
#define NAND_NO_AUTOINCR 0x00000001
/* Buswitdh is 16 bit */ /* Buswitdh is 16 bit */
#define NAND_BUSWIDTH_16 0x00000002 #define NAND_BUSWIDTH_16 0x00000002
/* Device supports partial programming without padding */ /* Device supports partial programming without padding */
......
...@@ -100,7 +100,6 @@ static struct platform_nand_data snappercl15_nand_data = { ...@@ -100,7 +100,6 @@ static struct platform_nand_data snappercl15_nand_data = {
.nr_chips = 1, .nr_chips = 1,
.partitions = snappercl15_nand_parts, .partitions = snappercl15_nand_parts,
.nr_partitions = ARRAY_SIZE(snappercl15_nand_parts), .nr_partitions = ARRAY_SIZE(snappercl15_nand_parts),
.options = NAND_NO_AUTOINCR,
.chip_delay = 25, .chip_delay = 25,
}, },
.ctrl = { .ctrl = {
......
...@@ -98,7 +98,6 @@ static struct platform_nand_data ixdp425_flash_nand_data = { ...@@ -98,7 +98,6 @@ static struct platform_nand_data ixdp425_flash_nand_data = {
.chip = { .chip = {
.nr_chips = 1, .nr_chips = 1,
.chip_delay = 30, .chip_delay = 30,
.options = NAND_NO_AUTOINCR,
.partitions = ixdp425_partitions, .partitions = ixdp425_partitions,
.nr_partitions = ARRAY_SIZE(ixdp425_partitions), .nr_partitions = ARRAY_SIZE(ixdp425_partitions),
}, },
......
...@@ -111,7 +111,7 @@ static struct nomadik_nand_platform_data nhk8815_nand_data = { ...@@ -111,7 +111,7 @@ static struct nomadik_nand_platform_data nhk8815_nand_data = {
.parts = nhk8815_partitions, .parts = nhk8815_partitions,
.nparts = ARRAY_SIZE(nhk8815_partitions), .nparts = ARRAY_SIZE(nhk8815_partitions),
.options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING \ .options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING \
| NAND_NO_READRDY | NAND_NO_AUTOINCR, | NAND_NO_READRDY,
.init = nhk8815_nand_init, .init = nhk8815_nand_init,
}; };
......
...@@ -292,7 +292,6 @@ static void __init rb532_nand_setup(void) ...@@ -292,7 +292,6 @@ static void __init rb532_nand_setup(void)
rb532_nand_data.chip.nr_partitions = ARRAY_SIZE(rb532_partition_info); rb532_nand_data.chip.nr_partitions = ARRAY_SIZE(rb532_partition_info);
rb532_nand_data.chip.partitions = rb532_partition_info; rb532_nand_data.chip.partitions = rb532_partition_info;
rb532_nand_data.chip.chip_delay = NAND_CHIP_DELAY; rb532_nand_data.chip.chip_delay = NAND_CHIP_DELAY;
rb532_nand_data.chip.options = NAND_NO_AUTOINCR;
} }
......
...@@ -508,8 +508,6 @@ static int __devinit au1550nd_probe(struct platform_device *pdev) ...@@ -508,8 +508,6 @@ static int __devinit au1550nd_probe(struct platform_device *pdev)
this->chip_delay = 30; this->chip_delay = 30;
this->ecc.mode = NAND_ECC_SOFT; this->ecc.mode = NAND_ECC_SOFT;
this->options = NAND_NO_AUTOINCR;
if (pd->devwidth) if (pd->devwidth)
this->options |= NAND_BUSWIDTH_16; this->options |= NAND_BUSWIDTH_16;
......
...@@ -687,7 +687,7 @@ static int __devinit cafe_nand_probe(struct pci_dev *pdev, ...@@ -687,7 +687,7 @@ static int __devinit cafe_nand_probe(struct pci_dev *pdev,
/* Enable the following for a flash based bad block table */ /* Enable the following for a flash based bad block table */
cafe->nand.bbt_options = NAND_BBT_USE_FLASH; cafe->nand.bbt_options = NAND_BBT_USE_FLASH;
cafe->nand.options = NAND_NO_AUTOINCR | NAND_OWN_BUFFERS; cafe->nand.options = NAND_OWN_BUFFERS;
if (skipbbt) { if (skipbbt) {
cafe->nand.options |= NAND_SKIP_BBTSCAN; cafe->nand.options |= NAND_SKIP_BBTSCAN;
......
...@@ -240,7 +240,6 @@ static int __init cs553x_init_one(int cs, int mmio, unsigned long adr) ...@@ -240,7 +240,6 @@ static int __init cs553x_init_one(int cs, int mmio, unsigned long adr)
/* Enable the following for a flash based bad block table */ /* Enable the following for a flash based bad block table */
this->bbt_options = NAND_BBT_USE_FLASH; this->bbt_options = NAND_BBT_USE_FLASH;
this->options = NAND_NO_AUTOINCR;
/* Scan to find existence of the device */ /* Scan to find existence of the device */
if (nand_scan(new_mtd, 1)) { if (nand_scan(new_mtd, 1)) {
......
...@@ -1193,8 +1193,7 @@ static void __init init_mtd_structs(struct mtd_info *mtd) ...@@ -1193,8 +1193,7 @@ static void __init init_mtd_structs(struct mtd_info *mtd)
nand->ecc.prepad = 8; nand->ecc.prepad = 8;
nand->ecc.bytes = 8; nand->ecc.bytes = 8;
nand->ecc.strength = DOCG4_T; nand->ecc.strength = DOCG4_T;
nand->options = nand->options = NAND_BUSWIDTH_16 | NAND_NO_SUBPAGE_WRITE;
NAND_BUSWIDTH_16 | NAND_NO_SUBPAGE_WRITE | NAND_NO_AUTOINCR;
nand->IO_ADDR_R = nand->IO_ADDR_W = doc->virtadr + DOC_IOSPACE_DATA; nand->IO_ADDR_R = nand->IO_ADDR_W = doc->virtadr + DOC_IOSPACE_DATA;
nand->controller = &nand->hwcontrol; nand->controller = &nand->hwcontrol;
spin_lock_init(&nand->controller->lock); spin_lock_init(&nand->controller->lock);
......
...@@ -807,7 +807,7 @@ static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv) ...@@ -807,7 +807,7 @@ static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv)
chip->bbt_md = &bbt_mirror_descr; chip->bbt_md = &bbt_mirror_descr;
/* set up nand options */ /* set up nand options */
chip->options = NAND_NO_READRDY | NAND_NO_AUTOINCR; chip->options = NAND_NO_READRDY;
chip->bbt_options = NAND_BBT_USE_FLASH; chip->bbt_options = NAND_BBT_USE_FLASH;
chip->controller = &elbc_fcm_ctrl->controller; chip->controller = &elbc_fcm_ctrl->controller;
......
...@@ -806,7 +806,7 @@ static int fsl_ifc_chip_init(struct fsl_ifc_mtd *priv) ...@@ -806,7 +806,7 @@ static int fsl_ifc_chip_init(struct fsl_ifc_mtd *priv)
out_be32(&ifc->ifc_nand.ncfgr, 0x0); out_be32(&ifc->ifc_nand.ncfgr, 0x0);
/* set up nand options */ /* set up nand options */
chip->options = NAND_NO_READRDY | NAND_NO_AUTOINCR; chip->options = NAND_NO_READRDY;
chip->bbt_options = NAND_BBT_USE_FLASH; chip->bbt_options = NAND_BBT_USE_FLASH;
......
...@@ -124,7 +124,6 @@ static int __init h1910_init(void) ...@@ -124,7 +124,6 @@ static int __init h1910_init(void)
/* 15 us command delay time */ /* 15 us command delay time */
this->chip_delay = 50; this->chip_delay = 50;
this->ecc.mode = NAND_ECC_SOFT; this->ecc.mode = NAND_ECC_SOFT;
this->options = NAND_NO_AUTOINCR;
/* Scan to find existence of the device */ /* Scan to find existence of the device */
if (nand_scan(h1910_nand_mtd, 1)) { if (nand_scan(h1910_nand_mtd, 1)) {
......
...@@ -734,7 +734,6 @@ static int __devinit mpc5121_nfc_probe(struct platform_device *op) ...@@ -734,7 +734,6 @@ static int __devinit mpc5121_nfc_probe(struct platform_device *op)
chip->write_buf = mpc5121_nfc_write_buf; chip->write_buf = mpc5121_nfc_write_buf;
chip->verify_buf = mpc5121_nfc_verify_buf; chip->verify_buf = mpc5121_nfc_verify_buf;
chip->select_chip = mpc5121_nfc_select_chip; chip->select_chip = mpc5121_nfc_select_chip;
chip->options = NAND_NO_AUTOINCR;
chip->bbt_options = NAND_BBT_USE_FLASH; chip->bbt_options = NAND_BBT_USE_FLASH;
chip->ecc.mode = NAND_ECC_SOFT; chip->ecc.mode = NAND_ECC_SOFT;
......
...@@ -2895,8 +2895,7 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, struct nand_chip *chip, ...@@ -2895,8 +2895,7 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, struct nand_chip *chip,
*busw = NAND_BUSWIDTH_16; *busw = NAND_BUSWIDTH_16;
chip->options &= ~NAND_CHIPOPTIONS_MSK; chip->options &= ~NAND_CHIPOPTIONS_MSK;
chip->options |= (NAND_NO_READRDY | chip->options |= NAND_NO_READRDY & NAND_CHIPOPTIONS_MSK;
NAND_NO_AUTOINCR) & NAND_CHIPOPTIONS_MSK;
pr_info("ONFI flash detected\n"); pr_info("ONFI flash detected\n");
return 1; return 1;
...@@ -3073,11 +3072,6 @@ static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd, ...@@ -3073,11 +3072,6 @@ static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
chip->options &= ~NAND_SAMSUNG_LP_OPTIONS; chip->options &= ~NAND_SAMSUNG_LP_OPTIONS;
ident_done: ident_done:
/*
* Set chip as a default. Board drivers can override it, if necessary.
*/
chip->options |= NAND_NO_AUTOINCR;
/* Try to identify manufacturer */ /* Try to identify manufacturer */
for (maf_idx = 0; nand_manuf_ids[maf_idx].id != 0x0; maf_idx++) { for (maf_idx = 0; nand_manuf_ids[maf_idx].id != 0x0; maf_idx++) {
if (nand_manuf_ids[maf_idx].id == *maf_id) if (nand_manuf_ids[maf_idx].id == *maf_id)
......
...@@ -70,7 +70,7 @@ struct nand_flash_dev nand_flash_ids[] = { ...@@ -70,7 +70,7 @@ struct nand_flash_dev nand_flash_ids[] = {
* These are the new chips with large page size. The pagesize and the * These are the new chips with large page size. The pagesize and the
* erasesize is determined from the extended id bytes * erasesize is determined from the extended id bytes
*/ */
#define LP_OPTIONS (NAND_SAMSUNG_LP_OPTIONS | NAND_NO_READRDY | NAND_NO_AUTOINCR) #define LP_OPTIONS (NAND_SAMSUNG_LP_OPTIONS | NAND_NO_READRDY)
#define LP_OPTIONS16 (LP_OPTIONS | NAND_BUSWIDTH_16) #define LP_OPTIONS16 (LP_OPTIONS | NAND_BUSWIDTH_16)
/* 512 Megabit */ /* 512 Megabit */
...@@ -157,9 +157,7 @@ struct nand_flash_dev nand_flash_ids[] = { ...@@ -157,9 +157,7 @@ struct nand_flash_dev nand_flash_ids[] = {
* writes possible, but not implemented now * writes possible, but not implemented now
*/ */
{"AND 128MiB 3,3V 8-bit", 0x01, 2048, 128, 0x4000, {"AND 128MiB 3,3V 8-bit", 0x01, 2048, 128, 0x4000,
NAND_IS_AND | NAND_NO_AUTOINCR |NAND_NO_READRDY | NAND_4PAGE_ARRAY | NAND_IS_AND | NAND_NO_READRDY | NAND_4PAGE_ARRAY | BBT_AUTO_REFRESH},
BBT_AUTO_REFRESH
},
{NULL,} {NULL,}
}; };
......
...@@ -155,7 +155,6 @@ static int __devinit pasemi_nand_probe(struct platform_device *ofdev) ...@@ -155,7 +155,6 @@ static int __devinit pasemi_nand_probe(struct platform_device *ofdev)
chip->ecc.mode = NAND_ECC_SOFT; chip->ecc.mode = NAND_ECC_SOFT;
/* Enable the following for a flash based bad block table */ /* Enable the following for a flash based bad block table */
chip->options = NAND_NO_AUTOINCR;
chip->bbt_options = NAND_BBT_USE_FLASH; chip->bbt_options = NAND_BBT_USE_FLASH;
/* Scan to find existence of the device */ /* Scan to find existence of the device */
......
...@@ -1004,7 +1004,6 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd) ...@@ -1004,7 +1004,6 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
chip->ecc.size = host->page_size; chip->ecc.size = host->page_size;
chip->ecc.strength = 1; chip->ecc.strength = 1;
chip->options = NAND_NO_AUTOINCR;
chip->options |= NAND_NO_READRDY; chip->options |= NAND_NO_READRDY;
if (host->reg_ndcr & NDCR_DWIDTH_M) if (host->reg_ndcr & NDCR_DWIDTH_M)
chip->options |= NAND_BUSWIDTH_16; chip->options |= NAND_BUSWIDTH_16;
......
...@@ -881,8 +881,6 @@ static int __devinit flctl_probe(struct platform_device *pdev) ...@@ -881,8 +881,6 @@ static int __devinit flctl_probe(struct platform_device *pdev)
flctl->hwecc = pdata->has_hwecc; flctl->hwecc = pdata->has_hwecc;
flctl->holden = pdata->use_holden; flctl->holden = pdata->use_holden;
nand->options = NAND_NO_AUTOINCR;
/* Set address of hardware control function */ /* Set address of hardware control function */
/* 20 us command delay time */ /* 20 us command delay time */
nand->chip_delay = 20; nand->chip_delay = 20;
......
...@@ -94,17 +94,16 @@ static struct nand_flash_dev nand_smartmedia_flash_ids[] = { ...@@ -94,17 +94,16 @@ static struct nand_flash_dev nand_smartmedia_flash_ids[] = {
{NULL,} {NULL,}
}; };
#define XD_TYPEM (NAND_NO_AUTOINCR | NAND_BROKEN_XD)
static struct nand_flash_dev nand_xd_flash_ids[] = { static struct nand_flash_dev nand_xd_flash_ids[] = {
{"xD 16MiB 3,3V", 0x73, 512, 16, 0x4000, 0}, {"xD 16MiB 3,3V", 0x73, 512, 16, 0x4000, 0},
{"xD 32MiB 3,3V", 0x75, 512, 32, 0x4000, 0}, {"xD 32MiB 3,3V", 0x75, 512, 32, 0x4000, 0},
{"xD 64MiB 3,3V", 0x76, 512, 64, 0x4000, 0}, {"xD 64MiB 3,3V", 0x76, 512, 64, 0x4000, 0},
{"xD 128MiB 3,3V", 0x79, 512, 128, 0x4000, 0}, {"xD 128MiB 3,3V", 0x79, 512, 128, 0x4000, 0},
{"xD 256MiB 3,3V", 0x71, 512, 256, 0x4000, XD_TYPEM}, {"xD 256MiB 3,3V", 0x71, 512, 256, 0x4000, NAND_BROKEN_XD},
{"xD 512MiB 3,3V", 0xdc, 512, 512, 0x4000, XD_TYPEM}, {"xD 512MiB 3,3V", 0xdc, 512, 512, 0x4000, NAND_BROKEN_XD},
{"xD 1GiB 3,3V", 0xd3, 512, 1024, 0x4000, XD_TYPEM}, {"xD 1GiB 3,3V", 0xd3, 512, 1024, 0x4000, NAND_BROKEN_XD},
{"xD 2GiB 3,3V", 0xd5, 512, 2048, 0x4000, XD_TYPEM}, {"xD 2GiB 3,3V", 0xd5, 512, 2048, 0x4000, NAND_BROKEN_XD},
{NULL,} {NULL,}
}; };
......
...@@ -161,8 +161,6 @@ typedef enum { ...@@ -161,8 +161,6 @@ typedef enum {
* Option constants for bizarre disfunctionality and real * Option constants for bizarre disfunctionality and real
* features. * features.
*/ */
/* Chip can not auto increment pages */
#define NAND_NO_AUTOINCR 0x00000001
/* Buswidth is 16 bit */ /* Buswidth is 16 bit */
#define NAND_BUSWIDTH_16 0x00000002 #define NAND_BUSWIDTH_16 0x00000002
/* Device supports partial programming without padding */ /* Device supports partial programming without padding */
...@@ -207,7 +205,6 @@ typedef enum { ...@@ -207,7 +205,6 @@ typedef enum {
(NAND_NO_PADDING | NAND_CACHEPRG | NAND_COPYBACK) (NAND_NO_PADDING | NAND_CACHEPRG | NAND_COPYBACK)
/* Macros to identify the above */ /* Macros to identify the above */
#define NAND_CANAUTOINCR(chip) (!(chip->options & NAND_NO_AUTOINCR))
#define NAND_MUST_PAD(chip) (!(chip->options & NAND_NO_PADDING)) #define NAND_MUST_PAD(chip) (!(chip->options & NAND_NO_PADDING))
#define NAND_HAS_CACHEPROG(chip) ((chip->options & NAND_CACHEPRG)) #define NAND_HAS_CACHEPROG(chip) ((chip->options & NAND_CACHEPRG))
#define NAND_HAS_COPYBACK(chip) ((chip->options & NAND_COPYBACK)) #define NAND_HAS_COPYBACK(chip) ((chip->options & NAND_COPYBACK))
...@@ -216,7 +213,7 @@ typedef enum { ...@@ -216,7 +213,7 @@ typedef enum {
&& (chip->page_shift > 9)) && (chip->page_shift > 9))
/* Mask to zero out the chip options, which come from the id table */ /* Mask to zero out the chip options, which come from the id table */
#define NAND_CHIPOPTIONS_MSK (0x0000ffff & ~NAND_NO_AUTOINCR) #define NAND_CHIPOPTIONS_MSK 0x0000ffff
/* Non chip related options */ /* Non chip related options */
/* This option skips the bbt scan during initialization. */ /* This option skips the bbt scan during initialization. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment