1. 03 10月, 2018 2 次提交
  2. 31 7月, 2018 1 次提交
  3. 29 4月, 2018 2 次提交
  4. 16 2月, 2018 1 次提交
  5. 14 12月, 2017 2 次提交
    • B
      mtd: nand: force drivers to explicitly send READ/PROG commands · 25f815f6
      Boris Brezillon 提交于
      The core currently send the READ0 and SEQIN+PAGEPROG commands in
      nand_do_read/write_ops(). This is inconsistent with
      ->read/write_oob[_raw]() hooks behavior which are expected to send
      these commands.
      
      There's already a flag (NAND_ECC_CUSTOM_PAGE_ACCESS) to inform the core
      that a specific controller wants to send the READ/SEQIN+PAGEPROG
      commands on its own, but it's an opt-in flag, and existing drivers are
      unlikely to be updated to pass it.
      
      Moreover, some controllers cannot dissociate the READ/PAGEPROG commands
      from the associated data transfer and ECC engine activation, and
      developers have to hack things in their ->cmdfunc() implementation to
      handle such complex cases, or have to accept the perf penalty of sending
      twice the same command.
      To address this problem we are planning on adding a new interface which
      is passed all information about a NAND operation (including the amount
      of data to transfer) and replacing all calls to ->cmdfunc() to calls to
      this new ->exec_op() hook. But, in order to do that, we need to have all
      ->cmdfunc() calls placed near their associated ->read/write_buf/byte()
      calls.
      
      Modify the core and relevant drivers to make NAND_ECC_CUSTOM_PAGE_ACCESS
      the default case, and remove this flag.
      Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com>
      [miquel.raynal@free-electrons.com: tested, fixed and rebased on nand/next]
      Signed-off-by: NMiquel Raynal <miquel.raynal@free-electrons.com>
      Acked-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      25f815f6
    • B
      mtd: nand: provide several helpers to do common NAND operations · 97d90da8
      Boris Brezillon 提交于
      This is part of the process of removing direct calls to ->cmdfunc()
      outside of the core in order to introduce a better interface to execute
      NAND operations.
      
      Here we provide several helpers and make use of them to remove all
      direct calls to ->cmdfunc(). This way, we can easily modify those
      helpers to make use of the new ->exec_op() interface when available.
      Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com>
      [miquel.raynal@free-electrons.com: rebased and fixed some conflicts]
      Signed-off-by: NMiquel Raynal <miquel.raynal@free-electrons.com>
      Acked-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      97d90da8
  6. 23 8月, 2017 1 次提交
  7. 13 8月, 2017 1 次提交
  8. 30 1月, 2017 1 次提交
  9. 07 11月, 2016 1 次提交
  10. 06 5月, 2016 2 次提交
  11. 20 4月, 2016 1 次提交
  12. 08 1月, 2016 1 次提交
  13. 19 12月, 2015 2 次提交
  14. 09 12月, 2015 1 次提交
  15. 12 11月, 2015 1 次提交
    • B
      mtd: nand: drop unnecessary partition parser data · a61ae81a
      Brian Norris 提交于
      All of these drivers set up a parser data struct just to communicate DT
      partition data. This field has been deprecated and is instead supported
      by telling nand_scan_ident() about the 'flash_node'.
      
      This patch:
       * sets chip->flash_node for those drivers that didn't already (but used
         OF partitioning)
       * drops the parser data
       * switches to the simpler mtd_device_register() where possible, now
         that we've eliminated one of the auxiliary parameters
      
      Now that we've assigned chip->flash_node for these drivers, we can
      probably rely on nand_dt_init() to do more of the DT parsing for us, but
      for now, I don't want to fiddle with each of these drivers. The parsing
      is done in duplicate for now on some drivers. I don't think this should
      break things. (Famous last words.)
      
      (Rolled in some changes by Boris Brezillon)
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Reviewed-by: NBoris Brezillon <boris.brezillon@free-electrons.com>
      a61ae81a
  16. 20 10月, 2015 1 次提交
    • V
      mtd: lpc32xx_slc: fix warnings caused by enabling unprepared clock · 44cab9c9
      Vladimir Zapolskiy 提交于
      If common clock framework is configured, the driver generates a warning,
      which is fixed by this change:
      
          WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:727 clk_core_enable+0x2c/0xa4()
          Modules linked in:
          CPU: 0 PID: 1 Comm: swapper Not tainted 4.3.0-rc2+ #201
          Hardware name: LPC32XX SoC (Flattened Device Tree)
          Backtrace:
          [<>] (dump_backtrace) from [<>] (show_stack+0x18/0x1c)
          [<>] (show_stack) from [<>] (dump_stack+0x20/0x28)
          [<>] (dump_stack) from [<>] (warn_slowpath_common+0x90/0xb8)
          [<>] (warn_slowpath_common) from [<>] (warn_slowpath_null+0x24/0x2c)
          [<>] (warn_slowpath_null) from [<>] (clk_core_enable+0x2c/0xa4)
          [<>] (clk_core_enable) from [<>] (clk_enable+0x24/0x38)
          [<>] (clk_enable) from [<>] (lpc32xx_nand_probe+0x290/0x568)
          [<>] (lpc32xx_nand_probe) from [<>] (platform_drv_probe+0x50/0xa0)
          [<>] (platform_drv_probe) from [<>] (driver_probe_device+0x18c/0x408)
          [<>] (driver_probe_device) from [<>] (__driver_attach+0x70/0x94)
          [<>] (__driver_attach) from [<>] (bus_for_each_dev+0x74/0x98)
          [<>] (bus_for_each_dev) from [<>] (driver_attach+0x20/0x28)
          [<>] (driver_attach) from [<>] (bus_add_driver+0x11c/0x248)
          [<>] (bus_add_driver) from [<>] (driver_register+0xa4/0xe8)
          [<>] (driver_register) from [<>] (__platform_driver_register+0x50/0x64)
          [<>] (__platform_driver_register) from [<>] (lpc32xx_nand_driver_init+0x18/0x20)
          [<>] (lpc32xx_nand_driver_init) from [<>] (do_one_initcall+0x11c/0x1dc)
          [<>] (do_one_initcall) from [<>] (kernel_init_freeable+0x10c/0x1d4)
          [<>] (kernel_init_freeable) from [<>] (kernel_init+0x10/0xec)
          [<>] (kernel_init) from [<>] (ret_from_fork+0x14/0x24)
      Signed-off-by: NVladimir Zapolskiy <vz@mleia.com>
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      44cab9c9
  17. 14 10月, 2015 1 次提交
    • B
      mtd: nand: pass page number to ecc->write_xxx() methods · 45aaeff9
      Boris BREZILLON 提交于
      The ->read_xxx() methods are all passed the page number the NAND controller
      is supposed to read, but ->write_xxx() do not have such a parameter.
      
      This is a problem if we want to properly implement data
      scrambling/randomization in order to mitigate MLC sensibility to repeated
      pattern: to prevent bitflips in adjacent pages in the same block we need
      to avoid repeating the same pattern at the same offset in those pages,
      hence the randomizer/scrambler engine need to be passed the page value
      in order to adapt its seed accordingly.
      
      Moreover, adding the page parameter to the ->write_xxx() methods add some
      consistency to the current API.
      Signed-off-by: NBoris Brezillon <boris.brezillon@free-electrons.com>
      CC: Josh Wu <josh.wu@atmel.com>
      CC: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      CC: Maxime Ripard <maxime.ripard@free-electrons.com>
      CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      CC: Huang Shijie <shijie.huang@arm.com>
      CC: Stefan Agner <stefan@agner.ch>
      CC: devel@driverdev.osuosl.org
      CC: linux-arm-kernel@lists.infradead.org
      CC: linux-kernel@vger.kernel.org
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      45aaeff9
  18. 05 10月, 2015 3 次提交
  19. 20 10月, 2014 1 次提交
  20. 02 7月, 2014 1 次提交
    • B
      mtd: lpc32xx: drop bitflip_threshold initialization · adddcac0
      Brian Norris 提交于
      These drivers don't need to explicitly initialize their bitflip
      thresholds. The comment is no longer correct, since nand_scan_tail()
      performs this initialization as of the following commit:
      
          commit ea3b2ea2
          Author: Shmulik Ladkani <shmulik@jungo.com>
          Date:   Fri Jun 8 18:29:06 2012 +0300
      
              mtd: nand: initialize bitflip_threshold prior to BBT scanning
      
      (It seems there were some parallel efforts on writing/submitting these
      drivers, and Shmulik's bug fix.)
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Cc: Roland Stigge <stigge@antcom.de>
      adddcac0
  21. 08 1月, 2014 1 次提交
  22. 04 1月, 2014 1 次提交
  23. 07 11月, 2013 1 次提交
  24. 28 10月, 2013 1 次提交
    • B
      mtd: nand: lpc32xx_slc: don't call nand_default_bbt directly · 252026ab
      Brian Norris 提交于
      This driver is doing some strange logic here. If it doesn't have
      flash-based BBT enabled, it allows nand_scan_tail() to scan the BBT. But
      if it is using flash-based BBT, it tells nand_scan_tail() to skip
      scanning, then it immediately calls the default BBT scanning function
      itself.
      
      As I read it, this logic is equivalent to the default nand_scan_tail()
      behavior without interfering with NAND_SKIP_BBTSCAN or calling
      nand_default_bbt() directly at all.
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      252026ab
  25. 31 8月, 2013 1 次提交
  26. 06 8月, 2013 1 次提交
  27. 26 1月, 2013 1 次提交
  28. 22 11月, 2012 3 次提交
  29. 29 9月, 2012 3 次提交