mtd: use bbm.h in nand.h
Subsystems (6)
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/3 mtd: use bbm.h in nand.h
From: Alessandro Rubini <[email protected]>
This consolidates common code in nand.h and bbm.h. The comments and data structures were the same, this keeps the comment from nand.h as it fits 80 columns, while the one in bbm.h did not.
--- include/linux/mtd/bbm.h | 35 +++++++++++---------- include/linux/mtd/nand.h | 76 +--------------------------------------------- 2 files changed, 19 insertions(+), 92 deletions(-)
include/linux/mtd/bbm.h +18 -17
@@ -19,22 +19,21 @@/** * struct nand_bbt_descr - bad block table descriptor -* @options: options for this descriptor -* @pages: the page(s) where we find the bbt, used with -* option BBT_ABSPAGE when bbt is searched, -* then we store the found bbts pages here. -* Its an array and supports up to 8 chips now -* @offs: offset of the pattern in the oob area of the page -* @veroffs: offset of the bbt version counter in the oob area of the page -* @version: version read from the bbt page during scan -* @len: length of the pattern, if 0 no pattern check is performed -* @maxblocks: maximum number of blocks to search for a bbt. This -* number of blocks is reserved at the end of the device -* where the tables are written. -* @reserved_block_code: if non-0, this pattern denotes a reserved -* (rather than bad) block in the stored bbt -* @pattern: pattern to identify bad block table or factory marked -* good / bad blocks, can be NULL, if len = 0 +* @options: options for this descriptor +* @pages: the page(s) where we find the bbt, used with option BBT_ABSPAGE +* when bbt is searched, then we store the found bbts pages here. +* Its an array and supports up to 8 chips now +* @offs: offset of the pattern in the oob area of the page +* @veroffs: offset of the bbt version counter in the oob are of the page +* @version: version read from the bbt page during scan +* @len: length of the pattern, if 0 no pattern check is performed +* @maxblocks: maximum number of blocks to search for a bbt. This number of +* blocks is reserved at the end of the device where the tables are +* written. +* @reserved_block_code: if non-0, this pattern denotes a reserved (rather than +* bad) block in the stored bbt +* @pattern: pattern to identify bad block table or factory marked good / +* bad blocks, can be NULL, if len = 0 * * Descriptor for the bad block table marker and the descriptor for the * pattern which identifies good and bad blocks. The assumption is made
@@ -90,7 +89,9 @@ struct nand_bbt_descr {/* * Constants for oob configuration */ -#define ONENAND_BADBLOCK_POS 0 +#define NAND_SMALL_BADBLOCK_POS 5 +#define NAND_LARGE_BADBLOCK_POS 0 +#define ONENAND_BADBLOCK_POS 0/* * Bad block scanning errors
include/linux/mtd/nand.h +1 -75
94 lines not on this page · raw message
Signature · 1 line
1.6.0.2
PATCH 1/3 mtd: use bbm.h in nand.h
In reply to a message not in the archiveFrom: Alessandro Rubini <[email protected]>
This consolidates common code in nand.h and bbm.h. The comments and data structures were the same, this keeps the comment from nand.h as it fits 80 columns, while the one in bbm.h did not.
--- include/linux/mtd/bbm.h | 35 +++++++++++---------- include/linux/mtd/nand.h | 76 +--------------------------------------------- 2 files changed, 19 insertions(+), 92 deletions(-)
include/linux/mtd/bbm.h +18 -17
@@ -19,22 +19,21 @@/** * struct nand_bbt_descr - bad block table descriptor -* @options: options for this descriptor -* @pages: the page(s) where we find the bbt, used with -* option BBT_ABSPAGE when bbt is searched, -* then we store the found bbts pages here. -* Its an array and supports up to 8 chips now -* @offs: offset of the pattern in the oob area of the page -* @veroffs: offset of the bbt version counter in the oob area of the page -* @version: version read from the bbt page during scan -* @len: length of the pattern, if 0 no pattern check is performed -* @maxblocks: maximum number of blocks to search for a bbt. This -* number of blocks is reserved at the end of the device -* where the tables are written. -* @reserved_block_code: if non-0, this pattern denotes a reserved -* (rather than bad) block in the stored bbt -* @pattern: pattern to identify bad block table or factory marked -* good / bad blocks, can be NULL, if len = 0 +* @options: options for this descriptor +* @pages: the page(s) where we find the bbt, used with option BBT_ABSPAGE +* when bbt is searched, then we store the found bbts pages here. +* Its an array and supports up to 8 chips now +* @offs: offset of the pattern in the oob area of the page +* @veroffs: offset of the bbt version counter in the oob are of the page +* @version: version read from the bbt page during scan +* @len: length of the pattern, if 0 no pattern check is performed +* @maxblocks: maximum number of blocks to search for a bbt. This number of +* blocks is reserved at the end of the device where the tables are +* written. +* @reserved_block_code: if non-0, this pattern denotes a reserved (rather than +* bad) block in the stored bbt +* @pattern: pattern to identify bad block table or factory marked good / +* bad blocks, can be NULL, if len = 0 * * Descriptor for the bad block table marker and the descriptor for the * pattern which identifies good and bad blocks. The assumption is made
@@ -90,7 +89,9 @@ struct nand_bbt_descr {/* * Constants for oob configuration */ -#define ONENAND_BADBLOCK_POS 0 +#define NAND_SMALL_BADBLOCK_POS 5 +#define NAND_LARGE_BADBLOCK_POS 0 +#define ONENAND_BADBLOCK_POS 0/* * Bad block scanning errors
include/linux/mtd/nand.h +1 -75
94 lines not on this page · raw message
Signature · 1 line
1.6.0.2
PATCH 2/3 mtd: unify status enum from three headers
In reply to a message not in the archiveFrom: Alessandro Rubini <[email protected]>
nand.h, onenand.h and flashchip.h defined enumeration types for chip status using the same symbolic names. This prevented a board file to include more than one of them. In particular, no nand and onenand platform devices could live in the same file. This patch augments flashchip.h with a few status values in order to cover all cases, so nand.h and onenand.h can use flstate_t without declaring their own status enum.
--- include/linux/mtd/flashchip.h | 7 +++++++ include/linux/mtd/nand.h | 17 ++--------------- include/linux/mtd/onenand.h | 19 ++----------------- 3 files changed, 11 insertions(+), 32 deletions(-)
include/linux/mtd/flashchip.h +7 -0
@@ -38,6 +38,13 @@ typedef enum {FL_XIP_WHILE_ERASING ,FL_XIP_WHILE_WRITING ,FL_SHUTDOWN , +/* These 2 come from nand_state_t, which has been unified here */ +FL_READING , +FL_CACHEDPRG , +/* These 2 come from onenand_state_t, which has been unified here */ +FL_RESETING , +FL_OTPING , + FL_UNKNOWN } flstate_t;
include/linux/mtd/nand.h +2 -15
@@ -21,6 +21,7 @@#include <linux/wait.h> #include <linux/spinlock.h> #include <linux/mtd/mtd.h> +#include <linux/mtd/flashchip.h> #include <linux/mtd/bbm.h> struct mtd_info ;
@@ -203,20 +204,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 ;
@@ -403,7 +390,7 @@ struct nand_chip {uint8_t cellinfo;int badblockpos; -nand_state_t state; +flstate_t state;uint8_t *oob_poi;struct nand_hw_control *controller;
include/linux/mtd/onenand.h +2 -17
@@ -14,6 +14,7 @@#include <linux/spinlock.h> #include <linux/completion.h> +#include <linux/mtd/flashchip.h> #include <linux/mtd/onenand_regs.h> #include <linux/mtd/bbm.h>
@@ -25,22 +26,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_LOCKING , -FL_RESETING , -FL_OTPING , -FL_PM_SUSPENDED , -}onenand_state_t ; -/** * struct onenand_bufferram - OneNAND BufferRAM Data * @blockpage: block & page address in BufferRAM
@@ -137,7 +122,7 @@ struct onenand_chip {spinlock_t chip_lock;wait_queue_head_t wq; -onenand_state_t state; +flstate_t state;unsigned char *page_buf;unsigned char *oob_buf;
Signature · 1 line
1.6.0.2
PATCH 2/3 mtd: unify status enum from three headers
In reply to a message not in the archiveFrom: Alessandro Rubini <[email protected]>
nand.h, onenand.h and flashchip.h defined enumeration types for chip status using the same symbolic names. This prevented a board file to include more than one of them. In particular, no nand and onenand platform devices could live in the same file. This patch augments flashchip.h with a few status values in order to cover all cases, so nand.h and onenand.h can use flstate_t without declaring their own status enum.
--- include/linux/mtd/flashchip.h | 7 +++++++ include/linux/mtd/nand.h | 17 ++--------------- include/linux/mtd/onenand.h | 19 ++----------------- 3 files changed, 11 insertions(+), 32 deletions(-)
include/linux/mtd/flashchip.h +7 -0
@@ -38,6 +38,13 @@ typedef enum {FL_XIP_WHILE_ERASING ,FL_XIP_WHILE_WRITING ,FL_SHUTDOWN , +/* These 2 come from nand_state_t, which has been unified here */ +FL_READING , +FL_CACHEDPRG , +/* These 2 come from onenand_state_t, which has been unified here */ +FL_RESETING , +FL_OTPING , + FL_UNKNOWN } flstate_t;
include/linux/mtd/nand.h +2 -15
@@ -21,6 +21,7 @@#include <linux/wait.h> #include <linux/spinlock.h> #include <linux/mtd/mtd.h> +#include <linux/mtd/flashchip.h> #include <linux/mtd/bbm.h> struct mtd_info ;
@@ -203,20 +204,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 ;
@@ -403,7 +390,7 @@ struct nand_chip {uint8_t cellinfo;int badblockpos; -nand_state_t state; +flstate_t state;uint8_t *oob_poi;struct nand_hw_control *controller;
include/linux/mtd/onenand.h +2 -17
@@ -14,6 +14,7 @@#include <linux/spinlock.h> #include <linux/completion.h> +#include <linux/mtd/flashchip.h> #include <linux/mtd/onenand_regs.h> #include <linux/mtd/bbm.h>
@@ -25,22 +26,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_LOCKING , -FL_RESETING , -FL_OTPING , -FL_PM_SUSPENDED , -}onenand_state_t ; -/** * struct onenand_bufferram - OneNAND BufferRAM Data * @blockpage: block & page address in BufferRAM
@@ -137,7 +122,7 @@ struct onenand_chip {spinlock_t chip_lock;wait_queue_head_t wq; -onenand_state_t state; +flstate_t state;unsigned char *page_buf;unsigned char *oob_buf;
Signature · 1 line
1.6.0.2
PATCH 3/3 ARM Nomadik: use new OneNand name and pdata
In reply to a message not in the archiveFrom: Alessandro Rubini <[email protected]>
This enables the onenand with the new platform device name. Moreover, it fixes a related typo that doesn't deserve a separate patch.
--- arch/arm/mach-nomadik/board-nhk8815.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
arch/arm/mach-nomadik/board-nhk8815.c +6 -5
@@ -18,6 +18,7 @@#include <linux/gpio.h> #include <linux/mtd/mtd.h> #include <linux/mtd/nand.h> +#include <linux/mtd/onenand.h> #include <linux/mtd/partitions.h> #include <linux/io.h> #include <asm/sizes.h>
@@ -142,7 +143,7 @@ static struct mtd_partition nhk8815_onenand_partitions[] = { } }; -static struct flash_platform_data nhk8815_onenand_data = { +static struct onenand_platform_data nhk8815_onenand_data = { .parts = nhk8815_onenand_partitions, .nr_parts =ARRAY_SIZE (nhk8815_onenand_partitions), };
@@ -156,7 +157,7 @@ static struct resource nhk8815_onenand_resource[] = { };static struct platform_device nhk8815_onenand_device = { - .name ="onenand" , + .name ="onenand-flash" , .id =-1 , .dev = { .platform_data = &nhk8815_onenand_data,
@@ -167,10 +168,10 @@ static struct platform_device nhk8815_onenand_device = {static void __init nhk8815_onenand_init (void ) { -#ifdef CONFIG_ONENAND +#ifdef CONFIG_MTD_ONENAND /* Set up SMCS0 for OneNand */ -writel (0x000030db ,FSMC_BCR0 ); -writel (0x02100551 ,FSMC_BTR0 ); +writel (0x000030db ,FSMC_BCR (0 )); +writel (0x02100551 ,FSMC_BTR (0 ));#endif }
Signature · 1 line
1.6.0.2
PATCH 3/3 ARM Nomadik: use new OneNand name and pdata
In reply to a message not in the archiveFrom: Alessandro Rubini <[email protected]>
This enables the onenand with the new platform device name. Moreover, it fixes a related typo that doesn't deserve a separate patch.
--- arch/arm/mach-nomadik/board-nhk8815.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)
arch/arm/mach-nomadik/board-nhk8815.c +6 -5
@@ -18,6 +18,7 @@#include <linux/gpio.h> #include <linux/mtd/mtd.h> #include <linux/mtd/nand.h> +#include <linux/mtd/onenand.h> #include <linux/mtd/partitions.h> #include <linux/io.h> #include <asm/sizes.h>
@@ -142,7 +143,7 @@ static struct mtd_partition nhk8815_onenand_partitions[] = { } }; -static struct flash_platform_data nhk8815_onenand_data = { +static struct onenand_platform_data nhk8815_onenand_data = { .parts = nhk8815_onenand_partitions, .nr_parts =ARRAY_SIZE (nhk8815_onenand_partitions), };
@@ -156,7 +157,7 @@ static struct resource nhk8815_onenand_resource[] = { };static struct platform_device nhk8815_onenand_device = { - .name ="onenand" , + .name ="onenand-flash" , .id =-1 , .dev = { .platform_data = &nhk8815_onenand_data,
@@ -167,10 +168,10 @@ static struct platform_device nhk8815_onenand_device = {static void __init nhk8815_onenand_init (void ) { -#ifdef CONFIG_ONENAND +#ifdef CONFIG_MTD_ONENAND /* Set up SMCS0 for OneNand */ -writel (0x000030db ,FSMC_BCR0 ); -writel (0x02100551 ,FSMC_BTR0 ); +writel (0x000030db ,FSMC_BCR (0 )); +writel (0x02100551 ,FSMC_BTR (0 ));#endif }
Signature · 1 line
1.6.0.2