diff options
| author | Kyungmin Park <kmpark@infradead.org> | 2008-08-19 08:42:53 +0900 | 
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2008-08-21 13:50:20 -0500 | 
| commit | bfd7f38614e21f745b6d6845fcc616ebc5e4d36f (patch) | |
| tree | f72c120c39a8a6b51e57d22d600571e29aaa976e /include/linux/mtd/onenand.h | |
| parent | 8d765456c1d33f2010d2717ee58de7647fdc6346 (diff) | |
| download | olio-uboot-2014.01-bfd7f38614e21f745b6d6845fcc616ebc5e4d36f.tar.xz olio-uboot-2014.01-bfd7f38614e21f745b6d6845fcc616ebc5e4d36f.zip | |
Fix OneNAND read_oob/write_oob functions compatability
Also sync with kernel OneNAND codes
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'include/linux/mtd/onenand.h')
| -rw-r--r-- | include/linux/mtd/onenand.h | 22 | 
1 files changed, 20 insertions, 2 deletions
| diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index 8a0fd0de9..420eb140a 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h @@ -75,6 +75,7 @@ struct onenand_chip {  	unsigned int page_shift;  	unsigned int ppb_shift;	/* Pages per block shift */  	unsigned int page_mask; +	unsigned int writesize;  	unsigned int bufferram_index;  	struct onenand_bufferram bufferram[MAX_BUFFERRAM]; @@ -93,25 +94,39 @@ struct onenand_chip {  	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;  	int state; +	unsigned char *page_buf; +	unsigned char *oob_buf;  	struct nand_oobinfo *autooob; +	struct nand_ecclayout *ecclayout;  	void *bbm;  	void *priv;  }; +/* + * Helper macros + */  #define ONENAND_CURRENT_BUFFERRAM(this)		(this->bufferram_index)  #define ONENAND_NEXT_BUFFERRAM(this)		(this->bufferram_index ^ 1)  #define ONENAND_SET_NEXT_BUFFERRAM(this)	(this->bufferram_index ^= 1) +#define ONENAND_SET_PREV_BUFFERRAM(this)	(this->bufferram_index ^= 1) +#define ONENAND_SET_BUFFERRAM0(this)		(this->bufferram_index = 0) +#define ONENAND_SET_BUFFERRAM1(this)		(this->bufferram_index = 1) + +#define ONENAND_IS_DDP(this)						\ +	(this->device_id & ONENAND_DEVICE_IS_DDP) + +#define ONENAND_IS_2PLANE(this)			(0)  /*   * Options bits   */  #define ONENAND_CONT_LOCK		(0x0001) +#define ONENAND_PAGEBUF_ALLOC		(0x1000) +#define ONENAND_OOBBUF_ALLOC		(0x2000)  /*   * OneNAND Flash Manufacturer ID Codes @@ -129,4 +144,7 @@ struct onenand_manufacturers {  	char *name;  }; +int onenand_bbt_read_oob(struct mtd_info *mtd, loff_t from, +			struct mtd_oob_ops *ops); +  #endif				/* __LINUX_MTD_ONENAND_H */ |