aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm53xx/patches-3.14/401-mtd-spi-nor-add-Kconfig-option-to-disable-4K-sectors.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@openwrt.org>2014-08-21 21:10:29 +0000
committerHauke Mehrtens <hauke@openwrt.org>2014-08-21 21:10:29 +0000
commit63fbe5f83bce8cfa06a1715d26ecf27ba36b7050 (patch)
tree23d88a4feef83d17fbc3a8a6075e71e8844f7f08 /target/linux/bcm53xx/patches-3.14/401-mtd-spi-nor-add-Kconfig-option-to-disable-4K-sectors.patch
parentdff426fd617f766be2f8bca4d2abb349ccd15e56 (diff)
downloadmaster-187ad058-63fbe5f83bce8cfa06a1715d26ecf27ba36b7050.tar.gz
master-187ad058-63fbe5f83bce8cfa06a1715d26ecf27ba36b7050.tar.bz2
master-187ad058-63fbe5f83bce8cfa06a1715d26ecf27ba36b7050.zip
bcm53xx: backport more spi-nor patches
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42259 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/bcm53xx/patches-3.14/401-mtd-spi-nor-add-Kconfig-option-to-disable-4K-sectors.patch')
-rw-r--r--target/linux/bcm53xx/patches-3.14/401-mtd-spi-nor-add-Kconfig-option-to-disable-4K-sectors.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/patches-3.14/401-mtd-spi-nor-add-Kconfig-option-to-disable-4K-sectors.patch b/target/linux/bcm53xx/patches-3.14/401-mtd-spi-nor-add-Kconfig-option-to-disable-4K-sectors.patch
new file mode 100644
index 0000000000..395b0af1d2
--- /dev/null
+++ b/target/linux/bcm53xx/patches-3.14/401-mtd-spi-nor-add-Kconfig-option-to-disable-4K-sectors.patch
@@ -0,0 +1,44 @@
+--- a/drivers/mtd/spi-nor/Kconfig
++++ b/drivers/mtd/spi-nor/Kconfig
+@@ -7,6 +7,20 @@ menuconfig MTD_SPI_NOR
+
+ if MTD_SPI_NOR
+
++config MTD_SPI_NOR_USE_4K_SECTORS
++ bool "Use small 4096 B erase sectors"
++ default y
++ help
++ Many flash memories support erasing small (4096 B) sectors. Depending
++ on the usage this feature may provide performance gain in comparison
++ to erasing whole blocks (32/64 KiB).
++ Changing small part of flash content is usually faster with small
++ sectors. On the other hand erasing should be faster when using 64 KiB
++ block instead of 16 × 4 KiB sectors.
++
++ Please note that some tools/drivers/filesystems may not work with
++ 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
++
+ config SPI_FSL_QUADSPI
+ tristate "Freescale Quad SPI controller"
+ depends on ARCH_MXC
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -987,6 +987,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+ nor->wait_till_ready == spi_nor_wait_till_ready)
+ nor->wait_till_ready = spi_nor_wait_till_fsr_ready;
+
++#ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
+ /* prefer "small sector" erase if possible */
+ if (info->flags & SECT_4K) {
+ nor->erase_opcode = SPINOR_OP_BE_4K;
+@@ -994,7 +995,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+ } else if (info->flags & SECT_4K_PMC) {
+ nor->erase_opcode = SPINOR_OP_BE_4K_PMC;
+ mtd->erasesize = 4096;
+- } else {
++ } else
++#endif
++ {
+ nor->erase_opcode = SPINOR_OP_SE;
+ mtd->erasesize = info->sector_size;
+ }