From d438d50848e9425286e5fb0493e0affb5a0b1e1b Mon Sep 17 00:00:00 2001 From: Kyungmin Park Date: Wed, 13 Aug 2008 09:11:02 +0900 Subject: Fix OneNAND build break Since page size field is changed from oobblock to writesize. But OneNAND is not updated. - fix bufferram management at erase operation This patch includes the NAND/OneNAND state filed too. Signed-off-by: Kyungmin Park Signed-off-by: Scott Wood --- include/linux/mtd/mtd.h | 16 ++++++++++++++++ include/linux/mtd/nand.h | 16 +--------------- include/linux/mtd/nand_legacy.h | 12 ------------ include/linux/mtd/onenand.h | 19 ++++--------------- 4 files changed, 21 insertions(+), 42 deletions(-) (limited to 'include/linux') diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 8e0dc00f7..14815c219 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -22,6 +22,22 @@ #define MTD_ERASE_DONE 0x08 #define MTD_ERASE_FAILED 0x10 +/* + * Enumeration for NAND/OneNAND flash chip state + */ +enum { + FL_READY, + FL_READING, + FL_WRITING, + FL_ERASING, + FL_SYNCING, + FL_CACHEDPRG, + FL_RESETING, + FL_UNLOCKING, + FL_LOCKING, + FL_PM_SUSPENDED, +}; + /* If the erase fails, fail_addr might indicate exactly which block failed. If fail_addr = 0xffffffff, the failure was not at the device level or was not specific to any particular block. */ diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 2993a89e1..7ac72de95 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -213,20 +213,6 @@ typedef enum { #define NAND_CI_CHIPNR_MSK 0x03 #define NAND_CI_CELLTYPE_MSK 0x0C -/* - * nand_state_t - chip states - * Enumeration for NAND flash chip state - */ -typedef enum { - FL_READY, - FL_READING, - FL_WRITING, - FL_ERASING, - FL_SYNCING, - FL_CACHEDPRG, - FL_PM_SUSPENDED, -} nand_state_t; - /* Keep gcc happy */ struct nand_chip; @@ -416,7 +402,7 @@ struct nand_chip { uint8_t cellinfo; int badblockpos; - nand_state_t state; + int state; uint8_t *oob_poi; struct nand_hw_control *controller; diff --git a/include/linux/mtd/nand_legacy.h b/include/linux/mtd/nand_legacy.h index b05e7267e..bb66e4547 100644 --- a/include/linux/mtd/nand_legacy.h +++ b/include/linux/mtd/nand_legacy.h @@ -54,18 +54,6 @@ #define NAND_CMD_ERASE2 0xd0 #define NAND_CMD_RESET 0xff -/* - * Enumeration for NAND flash chip state - */ -typedef enum { - FL_READY, - FL_READING, - FL_WRITING, - FL_ERASING, - FL_SYNCING -} nand_state_t; - - /* * NAND Private Flash Chip Data * diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index 4b0c2dfaa..8a0fd0de9 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h @@ -17,6 +17,7 @@ /* Note: The header order is impoertant */ #include +#include #include #define MAX_BUFFERRAM 2 @@ -27,20 +28,6 @@ extern int onenand_scan (struct mtd_info *mtd, int max_chips); /* Free resources held by the OneNAND device */ extern void onenand_release (struct mtd_info *mtd); -/** - * onenand_state_t - chip states - * Enumeration for OneNAND flash chip state - */ -typedef enum { - FL_READY, - FL_READING, - FL_WRITING, - FL_ERASING, - FL_SYNCING, - FL_UNLOCKING, - FL_LOCKING, -} onenand_state_t; - /** * struct onenand_bufferram - OneNAND BufferRAM Data * @param block block address in BufferRAM @@ -103,10 +90,12 @@ struct onenand_chip { unsigned short (*read_word) (void __iomem * addr); void (*write_word) (unsigned short value, void __iomem * addr); void (*mmcontrol) (struct mtd_info * mtd, int sync_read); + int (*block_markbad)(struct mtd_info *mtd, loff_t ofs); + int (*scan_bbt)(struct mtd_info *mtd); spinlock_t chip_lock; wait_queue_head_t wq; - onenand_state_t state; + int state; struct nand_oobinfo *autooob; -- cgit v1.2.3