Merge tag 'for-linus-20121219' of git://git.infradead.org/linux-mtd
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 19 Dec 2012 20:47:41 +0000 (12:47 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 19 Dec 2012 20:47:41 +0000 (12:47 -0800)
Pull MTD updates from David Woodhouse:
 - Various cleanups especially in NAND tests
 - Add support for NAND flash on BCMA bus
 - DT support for sh_flctl and denali NAND drivers
 - Kill obsolete/superceded drivers (fortunet, nomadik_nand)
 - Fix JFFS2 locking bug in ENOMEM failure path
 - New SPI flash chips, as usual
 - Support writing in 'reliable mode' for DiskOnChip G4
 - Debugfs support in nandsim

* tag 'for-linus-20121219' of git://git.infradead.org/linux-mtd: (96 commits)
  mtd: nand: typo in nand_id_has_period() comments
  mtd: nand/gpio: use io{read,write}*_rep accessors
  mtd: block2mtd: throttle writes by calling balance_dirty_pages_ratelimited.
  mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems
  mtd: nand/docg4: fix and improve read of factory bbt
  mtd: nand/docg4: reserve bb marker area in ecclayout
  mtd: nand/docg4: add support for writing in reliable mode
  mtd: mxc_nand: reorder part_probes to let cmdline override other sources
  mtd: mxc_nand: fix unbalanced clk_disable() in error path
  mtd: nandsim: Introduce debugfs infrastructure
  mtd: physmap_of: error checking to prevent a NULL pointer dereference
  mtg: docg3: potential divide by zero in doc_write_oob()
  mtd: bcm47xxnflash: writing support
  mtd: tests/read: initialize buffer for whole next page
  mtd: at91: atmel_nand: return bit flips for the PMECC read_page()
  mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c
  mtd: nand: onfi need to be probed in 8 bits mode
  mtd: nand: add NAND_BUSWIDTH_AUTO to autodetect bus width
  mtd: nand: print flash size during detection
  mted: nand_wait_ready timeout fix
  ...

21 files changed:
1  2 
Documentation/devicetree/bindings/arm/davinci/nand.txt
arch/arm/boot/dts/spear13xx.dtsi
arch/arm/boot/dts/spear300.dtsi
arch/arm/boot/dts/spear310.dtsi
arch/arm/boot/dts/spear320.dtsi
arch/arm/boot/dts/spear600.dtsi
arch/arm/mach-nomadik/board-nhk8815.c
arch/arm/mach-u300/core.c
drivers/bcma/driver_chipcommon_pmu.c
drivers/mtd/maps/Kconfig
drivers/mtd/maps/Makefile
drivers/mtd/nand/Kconfig
drivers/mtd/nand/Makefile
drivers/mtd/nand/atmel_nand.c
drivers/mtd/nand/mxc_nand.c
drivers/mtd/nand/nandsim.c
drivers/mtd/nand/omap2.c
drivers/mtd/nand/s3c2410.c
drivers/mtd/nand/sh_flctl.c
drivers/mtd/onenand/omap2.c
include/linux/bcma/bcma.h

index 49fc7ada929a4aec87a615031b948d65c251f0d2,4746452c4f5ddf4a8d6922a097c2f4c24cd2a919..3545ea704b50cbabaff63ff35bcf12048ac9e7c7
@@@ -23,16 -23,37 +23,24 @@@ Recommended properties 
  - ti,davinci-nand-buswidth: buswidth 8 or 16
  - ti,davinci-nand-use-bbt: use flash based bad block table support.
  
 -Example (enbw_cmc board):
 -aemif@60000000 {
 -      compatible = "ti,davinci-aemif";
 -      #address-cells = <2>;
 -      #size-cells = <1>;
 -      reg = <0x68000000 0x80000>;
 -      ranges = <2 0 0x60000000 0x02000000
 -                3 0 0x62000000 0x02000000
 -                4 0 0x64000000 0x02000000
 -                5 0 0x66000000 0x02000000
 -                6 0 0x68000000 0x02000000>;
 -      nand@3,0 {
 -              compatible = "ti,davinci-nand";
 -              reg = <3 0x0 0x807ff
 -                      6 0x0 0x8000>;
 -              #address-cells = <1>;
 -              #size-cells = <1>;
 -              ti,davinci-chipselect = <1>;
 -              ti,davinci-mask-ale = <0>;
 -              ti,davinci-mask-cle = <0>;
 -              ti,davinci-mask-chipsel = <0>;
 -              ti,davinci-ecc-mode = "hw";
 -              ti,davinci-ecc-bits = <4>;
 -              ti,davinci-nand-use-bbt;
+ nand device bindings may contain additional sub-nodes describing
+ partitions of the address space. See partition.txt for more detail.
 -              partition@180000 {
 -                      label = "ubifs";
 -                      reg = <0x180000 0x7e80000>;
 -              };
 +Example(da850 EVM ):
 +nand_cs3@62000000 {
 +      compatible = "ti,davinci-nand";
 +      reg = <0x62000000 0x807ff
 +              0x68000000 0x8000>;
 +      ti,davinci-chipselect = <1>;
 +      ti,davinci-mask-ale = <0>;
 +      ti,davinci-mask-cle = <0>;
 +      ti,davinci-mask-chipsel = <0>;
 +      ti,davinci-ecc-mode = "hw";
 +      ti,davinci-ecc-bits = <4>;
 +      ti,davinci-nand-use-bbt;
++      partition@180000 {
++              label = "ubifs";
++              reg = <0x180000 0x7e80000>;
+       };
  };
index 009096d1d2c37694bbd30d82f90ee294bbe18b2c,14a6d15c2a81e58220a8f9f142cf07d507909a26..b4ca60f4eb42dabf24adfb7f47e1da0471381fc9
                bootargs = "console=ttyAMA0,115200";
        };
  
-               status = "disable";
 +      cpufreq {
 +              compatible = "st,cpufreq-spear";
 +              cpufreq_tbl = < 166000
 +                              200000
 +                              250000
 +                              300000
 +                              400000
 +                              500000
 +                              600000 >;
++              status = "disabled";
 +      };
 +
        ahb {
                #address-cells = <1>;
                #size-cells = <1>;
                                      0 21 0x4
                                      0 22 0x4
                                      0 23 0x4>;
-                       st,ale-off = <0x20000>;
-                       st,cle-off = <0x10000>;
 +                      st,mode = <2>;
                        status = "disabled";
                };
  
                        status = "disabled";
                };
  
-                       status = "disable";
 +              pcm {
 +                      compatible = "st,pcm-audio";
 +                      #address-cells = <0>;
 +                      #size-cells = <0>;
++                      status = "disabled";
 +              };
 +
                smi: flash@ea000000 {
                        compatible = "st,spear600-smi";
                        #address-cells = <1>;
Simple merge
Simple merge
Simple merge
Simple merge
index 5ccdf53c5a9dcd0c3a6814d61b49d083e34a89eb,3f97ef40ce6b987bd59de225bfa9ba1dc2e3bc59..98167a4319f72d3735adf6ab4e277d68da8790b8
  #include <asm/sizes.h>
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
 -#include <asm/mach/irq.h>
  #include <asm/mach/flash.h>
  #include <asm/mach/time.h>
- #include <mach/fsmc.h>
 -
 -#include <plat/gpio-nomadik.h>
 -#include <plat/mtu.h>
 -#include <plat/pincfg.h>
 +#include <mach/irqs.h>
  
  #include "cpu-8815.h"
  
Simple merge
Simple merge
Simple merge
Simple merge
index dae191b3c081861a52f4a75adea4dba3ded0c0a1,37ffe56e74a43d57d8408758da367bce78583a41..5819eb575210115bf0e25d28bde1298afc2f6995
@@@ -49,9 -49,23 +49,16 @@@ config MTD_NAND_MUSEUM_ID
          NAND chips (page size 256 byte, erase size 4-8KiB). The IDs
          of these chips were reused by later, larger chips.
  
 -config MTD_NAND_AUTCPU12
 -      tristate "SmartMediaCard on autronix autcpu12 board"
 -      depends on ARCH_AUTCPU12
 -      help
 -        This enables the driver for the autronix autcpu12 board to
 -        access the SmartMediaCard.
 -
  config MTD_NAND_DENALI
-        depends on PCI
+         tristate "Support Denali NAND controller"
+         help
+         Enable support for the Denali NAND controller.  This should be
+         combined with either the PCI or platform drivers to provide device
+         registration.
+ config MTD_NAND_DENALI_PCI
          tristate "Support Denali NAND controller on Intel Moorestown"
+       depends on PCI && MTD_NAND_DENALI
          help
            Enable the driver for NAND flash on Intel Moorestown, using the
            Denali NAND controller core.
index 6c7f2b3ca8ae514bfa036334b4461951b92bd3d9,3c3f215287f9af12365401849f46847c710827b8..d76d912056916a327bcf7ecace6df9dcd06ea97c
@@@ -9,8 -9,12 +9,10 @@@ obj-$(CONFIG_MTD_NAND_IDS)             += nand_ids
  obj-$(CONFIG_MTD_SM_COMMON)           += sm_common.o
  
  obj-$(CONFIG_MTD_NAND_CAFE)           += cafe_nand.o
 -obj-$(CONFIG_MTD_NAND_SPIA)           += spia.o
  obj-$(CONFIG_MTD_NAND_AMS_DELTA)      += ams-delta.o
 -obj-$(CONFIG_MTD_NAND_AUTCPU12)               += autcpu12.o
  obj-$(CONFIG_MTD_NAND_DENALI)         += denali.o
+ obj-$(CONFIG_MTD_NAND_DENALI_PCI)     += denali_pci.o
+ obj-$(CONFIG_MTD_NAND_DENALI_DT)      += denali_dt.o
  obj-$(CONFIG_MTD_NAND_AU1550)         += au1550nd.o
  obj-$(CONFIG_MTD_NAND_BF5XX)          += bf5xx_nand.o
  obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o
Simple merge
index 022dcdc256fb68932634242ccff9d86d37dfcb74,9f10778a65243f6e8580051cd849e2c9cc144e32..45204e41a028c66bb1b7c510842f5af704234f6a
@@@ -1378,7 -1338,33 +1379,7 @@@ static int __init mxcnd_probe_dt(struc
  }
  #endif
  
- static int __devinit mxcnd_probe(struct platform_device *pdev)
 -static int __init mxcnd_probe_pdata(struct mxc_nand_host *host)
 -{
 -      struct mxc_nand_platform_data *pdata = host->dev->platform_data;
 -
 -      if (!pdata)
 -              return -ENODEV;
 -
 -      host->pdata = *pdata;
 -
 -      if (nfc_is_v1()) {
 -              if (cpu_is_mx21())
 -                      host->devtype_data = &imx21_nand_devtype_data;
 -              else
 -                      host->devtype_data = &imx27_nand_devtype_data;
 -      } else if (nfc_is_v21()) {
 -              host->devtype_data = &imx25_nand_devtype_data;
 -      } else if (nfc_is_v3_2a()) {
 -              host->devtype_data = &imx51_nand_devtype_data;
 -      } else if (nfc_is_v3_2b()) {
 -              host->devtype_data = &imx53_nand_devtype_data;
 -      } else
 -              BUG();
 -
 -      return 0;
 -}
 -
+ static int mxcnd_probe(struct platform_device *pdev)
  {
        struct nand_chip *this;
        struct mtd_info *mtd;
@@@ -1578,9 -1557,8 +1580,9 @@@ static struct platform_driver mxcnd_dri
                   .owner = THIS_MODULE,
                   .of_match_table = of_match_ptr(mxcnd_dt_ids),
        },
 +      .id_table = mxcnd_devtype,
        .probe = mxcnd_probe,
-       .remove = __devexit_p(mxcnd_remove),
+       .remove = mxcnd_remove,
  };
  module_platform_driver(mxcnd_driver);
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge