1. 11 9月, 2011 5 次提交
    • J
      mtd: nand: remove meaningless delay from nand_unlock · d3f2ed52
      Jiri Pinkava 提交于
      This delay is meaningless. If delay is needed it is device specific
      and must be reimplemented by specific driver, otherwise no delay is
      needed.
      Signed-off-by: NJiri Pinkava <jiri.pinkava@vscht.cz>
      Acked-by: NVimal Singh <vimal.newwork@gmail.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      d3f2ed52
    • B
      mtd: nand: rename NAND_USE_FLASH_BBT · bb9ebd4e
      Brian Norris 提交于
      Recall the recently added prefix requirements:
       * "NAND_" for flags in nand.h, used in nand_chip.options
       * "NAND_BBT_" for flags in bbm.h, used in nand_chip.bbt_options
              or in nand_bbt_descr.options
      
      Thus, I am changing NAND_USE_FLASH_BBT to NAND_BBT_USE_FLASH.
      
      Again, this flag is found in bbm.h and so should NOT be used in the
      "nand_chip.options" field.
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      bb9ebd4e
    • B
      mtd: nand: consolidate redundant flash-based BBT flags · a40f7341
      Brian Norris 提交于
      This patch works with the following three flags from two headers (nand.h
      and bbm.h):
        (1) NAND_USE_FLASH_BBT (nand.h)
        (2) NAND_USE_FLASH_BBT_NO_OOB (nand.h)
        (3) NAND_BBT_NO_OOB (bbm.h)
      
      These flags are all related and interdependent, yet they were in
      different headers. Flag (2) is simply the combination of (1) and (3) and
      can be eliminated.
      
      This patch accomplishes the following:
        * eliminate NAND_USE_FLASH_BBT_NO_OOB (i.e., flag (2))
        * move NAND_USE_FLASH_BBT (i.e., flag (1)) to bbm.h
      
      It's important to note that because (1) and (3) are now both found in
      bbm.h, they should NOT be used in the "nand_chip.options" field.
      
      I removed a small section from the mtdnand DocBook because it referes to
      NAND_USE_FLASH_BBT in nand.h, which has been moved to bbm.h.
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      a40f7341
    • B
      mtd: nand: separate chip options / bbt_options · 5fb1549d
      Brian Norris 提交于
      This patch handles the problems we've been having with using conflicting
      flags from nand.h and bbm.h in the same nand_chip.options field. We
      should try to separate these two spaces a little more clearly, and so I
      have added a bbt_options field to nand_chip.
      
      Important notes about nand_chip fields:
      * bbt_options field should contain ONLY flags from bbm.h. They should be
        able to pass safely to a nand_bbt_descr data structure.
          - BBT option flags start with the "NAND_BBT_" prefix.
      * options field should contian ONLY flags from nand.h. Ideally, they
        should not be involved in any BBT related options.
          - NAND chip option flags start with the "NAND_" prefix.
      * Every flag should have a nice comment explaining what the flag is. While
        this is not yet the case on all existing flags, please be sure to write
        one for new flags. Even better, you can help document the code better
        yourself!
      
      Please try to follow these conventions to make everyone's lives easier.
      
      Among the flags that are being moved to the new bbt_options field
      throughout various drivers, etc. are:
       * NAND_BBT_SCANLASTPAGE
       * NAND_BBT_SCAN2NDPAGE
      and there will be more to come.
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      5fb1549d
    • B
      mtd: nand: remove NAND_BBT_SCANBYTE1AND6 option · a0dc5529
      Brian Norris 提交于
      This patch reverts most of:
          commit 58373ff0
          mtd: nand: more BB Detection refactoring and dynamic scan options
      
      According to the discussion at:
          http://lists.infradead.org/pipermail/linux-mtd/2011-May/035696.html
      the NAND_BBT_SCANBYTE1AND6 flag, although technically valid, can break
      some existing ECC layouts that use the 6th byte in the OOB for ECC data.
      Furthermore, we apparently do not need to scan both bytes 1 and 6 in
      the OOB region of the devices under consideration; instead, we only need
      to scan one or the other.
      
      Thus, the NAND_BBT_SCANBYTE1AND6 flag is at best unnecessary and at
      worst a regression.
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      a0dc5529
  2. 25 5月, 2011 3 次提交
  3. 31 3月, 2011 1 次提交
  4. 12 3月, 2011 1 次提交
    • I
      mtd: nand: add software BCH ECC support · 193bd400
      Ivan Djelic 提交于
      This patch adds software BCH ECC support to mtd, in order to handle recent
      NAND device ecc requirements (4 bits or more).
      
      It does so by adding a new ecc mode (NAND_ECC_SOFT_BCH) for use by board
      drivers, and a new Kconfig option to enable BCH support. It relies on the
      generic BCH library introduced in a previous patch.
      
      When a board driver uses mode NAND_ECC_SOFT_BCH, it should also set fields
      chip->ecc.size and chip->ecc.bytes to select BCH ecc data size and required
      error correction capability. See nand_bch_init() documentation for details.
      
      It has been tested on the following platforms using mtd-utils, UBI and
      UBIFS: x86 (with nandsim), arm926ejs.
      Signed-off-by: NIvan Djelic <ivan.djelic@parrot.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      193bd400
  5. 11 3月, 2011 1 次提交
  6. 06 1月, 2011 4 次提交
  7. 04 12月, 2010 2 次提交
  8. 02 11月, 2010 1 次提交
  9. 25 10月, 2010 11 次提交
  10. 21 8月, 2010 1 次提交
  11. 19 8月, 2010 1 次提交
  12. 11 8月, 2010 2 次提交
    • R
      mtd/nand_base: fix kernel-doc warnings & typos · b6d676db
      Randy Dunlap 提交于
      Fix mtd/nand_base.c kernel-doc warnings and typos.
      
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'mtd'
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'ofs'
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'len'
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'invert'
      Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'mtd'
      Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'ofs'
      Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'len'
      Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'mtd'
      Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'ofs'
      Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'len'
      Warning(drivers/mtd/nand/nand_base.c:2087): No description found for parameter 'len'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b6d676db
    • R
      mtd/nand_base: fix kernel-doc warnings & typos · db9ebb7c
      Randy Dunlap 提交于
      Fix mtd/nand_base.c kernel-doc warnings and typos.
      
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'mtd'
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'ofs'
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'len'
      Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'invert'
      Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'mtd'
      Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'ofs'
      Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'len'
      Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'mtd'
      Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'ofs'
      Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'len'
      Warning(drivers/mtd/nand/nand_base.c:2087): No description found for parameter 'len'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      db9ebb7c
  13. 09 8月, 2010 1 次提交
  14. 02 8月, 2010 4 次提交
  15. 14 5月, 2010 2 次提交
    • K
      mtd: nand: support alternate BB marker locations on MLC · b60b08b0
      Kevin Cernekee 提交于
      This is a slightly modified version of a patch submitted last year by
      Reuben Dowle <reuben.dowle@navico.com>.  His original comments follow:
      
      This patch adds support for some MLC NAND flashes that place the BB
      marker in the LAST page of the bad block rather than the FIRST page used
      for SLC NAND and other types of MLC nand.
      
      Lifted from Samsung datasheet for K9LG8G08U0A (1Gbyte MLC NAND):
      "
      Identifying Initial Invalid Block(s)
      All device locations are erased(FFh) except locations where the initial
      invalid block(s) information is written prior to shipping. The initial
      invalid block(s) status is defined by the 1st byte in the spare area.
      Samsung makes sure that the last page of every initial invalid block has
      non-FFh data at the column address of 2,048.
      ...
      "
      
      As far as I can tell, this is the same for all Samsung MLC nand, and in
      fact the samsung bsp for the processor used in our project (s3c6410)
      actually contained a hack similar to this patch but less portable to
      enable use of their NAND parts. I discovered this problem when trying to
      use a Micron NAND which does not used this layout - I wish samsung would
      put their stuff in main-line to avoid this type of problem.
      
      Currently this patch causes all MLC nand with manufacturer codes from
      Samsung and ST(Numonyx) to use this alternative location, since these
      are the manufactures that I know of that use this layout.
      Signed-off-by: NKevin Cernekee <cernekee@gmail.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      b60b08b0
    • K
      mtd: nand: extend NAND flash detection to new MLC chips · 426c457a
      Kevin Cernekee 提交于
      Some of the newer MLC devices have a 6-byte ID sequence in which
      several field definitions differ from older chips in a manner that is
      not backward compatible.  For instance:
      
      Samsung K9GAG08U0M (5-byte sequence): ec d5 14 b6 74
      4th byte, bits 1:0 encode the page size: 0=1KiB, 1=2KiB, 2=4KiB, 3=8KiB
      4th byte, bits 5:4 encode the block size: 0=64KiB, 1=128KiB, ...
      4th byte, bit 6 encodes the OOB size: 0=8B/512B, 1=16B/512B
      
      Samsung K9GAG08U0D (6-byte sequence): ec d5 94 29 34 41
      4th byte, bits 1:0 encode the page size: 0=2KiB, 1=4KiB, 3=8KiB, 4=rsvd
      4th byte, bits 7;5:4 encode the block size: 0=128KiB, 1=256KiB, ...
      4th byte, bits 6;3:2 encode the OOB size: 1=128B/page, 2=218B/page
      
      This patch uses the new 6-byte scheme if the following conditions are
      all true:
      
      1) The ID code wraps around after exactly 6 bytes
      
      2) Manufacturer is Samsung
      
      3) 6th byte is zero
      
      The patch also extends the maximum OOB size from 128B to 256B.
      Signed-off-by: NKevin Cernekee <cernekee@gmail.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      426c457a