diff --git a/arch/arm/boards/a9m2410/env/bin/hush_hack b/arch/arm/boards/a9m2410/env/bin/hush_hack deleted file mode 100644 index 5fffa92ec..000000000 --- a/arch/arm/boards/a9m2410/env/bin/hush_hack +++ /dev/null @@ -1 +0,0 @@ -nand -a /dev/nand0.* diff --git a/arch/arm/boards/a9m2410/env/bin/init b/arch/arm/boards/a9m2410/env/bin/init index 5ae44dd45..dd94ef6be 100644 --- a/arch/arm/boards/a9m2410/env/bin/init +++ b/arch/arm/boards/a9m2410/env/bin/init @@ -7,10 +7,6 @@ export PATH if [ -e /dev/nand0 ]; then addpart /dev/nand0 $nand_parts - - # Uh, oh, hush first expands wildcards and then starts executing - # commands. What a bug! - source /env/bin/hush_hack fi if [ -z $eth0.ethaddr ]; then diff --git a/arch/arm/boards/a9m2440/env/bin/hush_hack b/arch/arm/boards/a9m2440/env/bin/hush_hack deleted file mode 100644 index 5fffa92ec..000000000 --- a/arch/arm/boards/a9m2440/env/bin/hush_hack +++ /dev/null @@ -1 +0,0 @@ -nand -a /dev/nand0.* diff --git a/arch/arm/boards/a9m2440/env/bin/init b/arch/arm/boards/a9m2440/env/bin/init index 5ae44dd45..dd94ef6be 100644 --- a/arch/arm/boards/a9m2440/env/bin/init +++ b/arch/arm/boards/a9m2440/env/bin/init @@ -7,10 +7,6 @@ export PATH if [ -e /dev/nand0 ]; then addpart /dev/nand0 $nand_parts - - # Uh, oh, hush first expands wildcards and then starts executing - # commands. What a bug! - source /env/bin/hush_hack fi if [ -z $eth0.ethaddr ]; then diff --git a/arch/arm/boards/eukrea_cpuimx27/env/bin/hush_hack b/arch/arm/boards/eukrea_cpuimx27/env/bin/hush_hack deleted file mode 100644 index 5fffa92ec..000000000 --- a/arch/arm/boards/eukrea_cpuimx27/env/bin/hush_hack +++ /dev/null @@ -1 +0,0 @@ -nand -a /dev/nand0.* diff --git a/arch/arm/boards/eukrea_cpuimx27/env/bin/init b/arch/arm/boards/eukrea_cpuimx27/env/bin/init index cd74974e2..e3c109135 100644 --- a/arch/arm/boards/eukrea_cpuimx27/env/bin/init +++ b/arch/arm/boards/eukrea_cpuimx27/env/bin/init @@ -10,10 +10,6 @@ fi if [ -e /dev/nand0 ]; then addpart /dev/nand0 $nand_parts - - # Uh, oh, hush first expands wildcards and then starts executing - # commands. What a bug! - source /env/bin/hush_hack fi if [ -f /env/logo.bmp ]; then diff --git a/arch/arm/boards/freescale-mx25-3ds/env/bin/hush_hack b/arch/arm/boards/freescale-mx25-3ds/env/bin/hush_hack deleted file mode 100644 index 5fffa92ec..000000000 --- a/arch/arm/boards/freescale-mx25-3ds/env/bin/hush_hack +++ /dev/null @@ -1 +0,0 @@ -nand -a /dev/nand0.* diff --git a/arch/arm/boards/freescale-mx25-3ds/env/bin/init b/arch/arm/boards/freescale-mx25-3ds/env/bin/init index 0600b9e66..8eafa34dc 100644 --- a/arch/arm/boards/freescale-mx25-3ds/env/bin/init +++ b/arch/arm/boards/freescale-mx25-3ds/env/bin/init @@ -10,10 +10,6 @@ fi if [ -e /dev/nand0 ]; then addpart /dev/nand0 $nand_parts - - # Uh, oh, hush first expands wildcards and then starts executing - # commands. What a bug! - source /env/bin/hush_hack fi echo diff --git a/arch/arm/boards/mmccpu/env/bin/hush_hack b/arch/arm/boards/mmccpu/env/bin/hush_hack deleted file mode 100644 index 5fffa92ec..000000000 --- a/arch/arm/boards/mmccpu/env/bin/hush_hack +++ /dev/null @@ -1 +0,0 @@ -nand -a /dev/nand0.* diff --git a/arch/arm/boards/mmccpu/env/bin/init b/arch/arm/boards/mmccpu/env/bin/init index ac84bd596..ad9b65a76 100644 --- a/arch/arm/boards/mmccpu/env/bin/init +++ b/arch/arm/boards/mmccpu/env/bin/init @@ -10,10 +10,6 @@ fi if [ -e /dev/nand0 ]; then addpart /dev/nand0 $nand_parts - - # Uh, oh, hush first expands wildcards and then starts executing - # commands. What a bug! - source /env/bin/hush_hack fi if [ -z $eth0.ethaddr ]; then diff --git a/arch/arm/boards/pm9263/env/bin/hush_hack b/arch/arm/boards/pm9263/env/bin/hush_hack deleted file mode 100644 index 5fffa92ec..000000000 --- a/arch/arm/boards/pm9263/env/bin/hush_hack +++ /dev/null @@ -1 +0,0 @@ -nand -a /dev/nand0.* diff --git a/arch/arm/boards/pm9263/env/bin/init b/arch/arm/boards/pm9263/env/bin/init index 02f5cd415..ad9b65a76 100644 --- a/arch/arm/boards/pm9263/env/bin/init +++ b/arch/arm/boards/pm9263/env/bin/init @@ -10,10 +10,6 @@ fi if [ -e /dev/nand0 ]; then addpart /dev/nand0 $nand_parts - - # Uh, oh, hush first expands wildcards and then starts executing - # commands. What a bug! - source /env/bin/hush_hack fi if [ -z $eth0.ethaddr ]; then diff --git a/defaultenv/defaultenv-1/bin/init b/defaultenv/defaultenv-1/bin/init index adb3c43a6..4781b5a96 100644 --- a/defaultenv/defaultenv-1/bin/init +++ b/defaultenv/defaultenv-1/bin/init @@ -16,7 +16,6 @@ fi if [ -e /dev/nand0 -a -n "$nand_parts" ]; then addpart /dev/nand0 $nand_parts - nand -a /dev/nand0.* fi if [ -f /env/bin/init_board ]; then diff --git a/defaultenv/defaultenv-2-base/bin/mtdparts-add b/defaultenv/defaultenv-2-base/bin/mtdparts-add index 58c9fa7a2..05ab638bf 100644 --- a/defaultenv/defaultenv-2-base/bin/mtdparts-add +++ b/defaultenv/defaultenv-2-base/bin/mtdparts-add @@ -39,10 +39,6 @@ fi addpart -n /dev/${device} "$parts" || exit mkdir -p /tmp/mtdparts/${device} -if [ -n "${bbdev}" ]; then - nand -a /dev/${device}.* -fi - if [ -n ${kernelname} ]; then global linux.mtdparts.${device} global.linux.mtdparts.${device}="${kernelname}:${parts}" diff --git a/drivers/mtd/core.c b/drivers/mtd/core.c index c97c8c140..d954f7288 100644 --- a/drivers/mtd/core.c +++ b/drivers/mtd/core.c @@ -409,6 +409,9 @@ int add_mtd_device(struct mtd_info *mtd, char *devname, int device_id) devfs_create(&mtd->cdev); + if (mtd_can_have_bb(mtd)) + mtd->cdev_bb = mtd_add_bb(mtd, NULL); + if (mtd->parent && !mtd->master) of_parse_partitions(&mtd->cdev, mtd->parent->device_node); diff --git a/drivers/of/partition.c b/drivers/of/partition.c index 5ed44a84d..074be090e 100644 --- a/drivers/of/partition.c +++ b/drivers/of/partition.c @@ -61,9 +61,6 @@ struct cdev *of_parse_partition(struct cdev *cdev, struct device_node *node) new = devfs_add_partition(cdev->name, offset, size, flags, filename); - if (cdev->mtd && cdev->mtd->type == MTD_NANDFLASH) - dev_add_bb_dev(filename, NULL); - free(filename); return new; diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index c63b514f4..5f02aee2d 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -211,6 +211,8 @@ struct mtd_info { struct device_d *parent; struct cdev cdev; + struct cdev *cdev_bb; + struct param_d param_size; char *size_str;