linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] mtd: nand_bbt: introduce independent nand BBT
@ 2016-03-14  2:47 Peter Pan
  2016-03-14  2:47 ` [PATCH 01/11] mtd: nand_bbt: new header for nand family BBT Peter Pan
                   ` (13 more replies)
  0 siblings, 14 replies; 37+ messages in thread
From: Peter Pan @ 2016-03-14  2:47 UTC (permalink / raw)
  To: computersforpeace, dwmw2, boris.brezillon
  Cc: linux-kernel, linux-mtd, karlzhang, beanhuo, xuejiancheng, Peter Pan

Sorry for send the v3 out late. I went through a busy time in the past
two month.

Currently nand_bbt.c is tied with struct nand_chip, and it makes other
NAND family chips hard to use nand_bbt.c. Maybe it's the reason why
onenand has own bbt(onenand_bbt.c).

Separate struct nand_chip from BBT code can make current BBT shareable.
We create struct nand_bbt to take place of nand_chip in nand_bbt.c.
Struct nand_bbt contains all the information BBT needed from outside and
it should be embedded into NAND family chip struct (such as struct nand_chip).

Below is mtd folder structure we want:
	drivers/mtd/nand/<all-nand-core-code>
	drivers/mtd/nand/raw/<raw-nand-controller-drivers>
	drivers/mtd/nand/spi/<spi-nand-code>
	drivers/mtd/nand/onenand/<onenand-code>
	drivers/mtd/nand/chips/<manufacturer-spcific-code>

Most of the patch is borrowed from Brian Norris <computersforpeace@gmail.com>.
http://git.infradead.org/users/norris/linux-mtd.git/shortlog/refs/heads/nand-bbt
I decided the authorship of each patch by contribution. Please let me know if
there is something unproper.
Based on Brian's suggestion and Boris's comments, I make 11 independent
patches. Previous patch is http://patchwork.ozlabs.org/patch/492066/
After discussion with Boris and Ezequiel, I realized above structure is better,
so I drop the patch to move nand_bbt.c to mtd folder.

The patch is tested on Zed board.

v3 changes:
	introduce struct nand_bbt_ops
	introduce struct nand_chip_layout_info
	add nand_bbt_create/destroy() API
	use mtd_to_nand instead mtd->priv directly
	remove mark_bad_bbm() due to no user yet
	keep nand_bbt.c in mtd/nand folder
	add nand_get_bbt() helper function
	rebase patch series on 4.5.0-rc1
v2 changes:
	rebase patch series on master branch of l2-mtd.git


Brian Norris (7):
  mtd: nand_bbt: new header for nand family BBT
  mtd: nand_bbt: introduce BBT related data structure
  mtd: nand_bbt: use struct nand_bbt_ops in BBT
  mtd: nand: make nand_erase_nand() static
  mtd: nand_bbt: remove struct nand_chip from nand_bbt.c
  mtd: nand_bbt: remove NAND_BBT_DYNAMICSTRUCT macro
  mtd: nand: remove nand_chip.bbt

Peter Pan (4):
  mtd: nand_bbt: add new API definitions
  mtd: nand_bbt: add nand_bbt_markbad_factory() interface
  mtd: nand: use new BBT API instead of old ones
  mtd: nand_bbt: remove old API definitions

 drivers/mtd/nand/docg4.c     |   7 +-
 drivers/mtd/nand/nand_base.c | 156 ++++++++++-
 drivers/mtd/nand/nand_bbt.c  | 604 +++++++++++++++++++++----------------------
 include/linux/mtd/bbm.h      |  96 +------
 include/linux/mtd/nand.h     |  22 +-
 include/linux/mtd/nand_bbt.h | 190 ++++++++++++++
 6 files changed, 644 insertions(+), 431 deletions(-)
 create mode 100644 include/linux/mtd/nand_bbt.h

-- 
1.9.1

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2016-06-21 13:27 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-14  2:47 [PATCH 00/11] mtd: nand_bbt: introduce independent nand BBT Peter Pan
2016-03-14  2:47 ` [PATCH 01/11] mtd: nand_bbt: new header for nand family BBT Peter Pan
2016-03-14  2:47 ` [PATCH 02/11] mtd: nand_bbt: introduce BBT related data structure Peter Pan
2016-03-25  8:35   ` Boris Brezillon
2016-03-28  8:09     ` Peter Pan
2016-03-29  8:16       ` Boris Brezillon
2016-04-18  6:22     ` Peter Pan
2016-04-18  7:44       ` Boris Brezillon
2016-04-19  0:40         ` Peter Pan
2016-04-19  7:34           ` Boris Brezillon
2016-05-04  1:36             ` Peter Pan
2016-05-04 20:33               ` Boris Brezillon
2016-05-17  1:03                 ` Peter Pan
2016-06-17  2:38                   ` Peter Pan
2016-06-21 13:27                     ` Boris Brezillon
2016-03-14  2:47 ` [PATCH 03/11] mtd: nand_bbt: add new API definitions Peter Pan
2016-03-14  3:47   ` kbuild test robot
2016-03-25  8:49   ` Boris Brezillon
2016-03-28  7:56     ` Peter Pan
2016-03-14  2:47 ` [PATCH 04/11] mtd: nand_bbt: add nand_bbt_markbad_factory() interface Peter Pan
2016-03-14  2:47 ` [PATCH 05/11] mtd: nand: use new BBT API instead of old ones Peter Pan
2016-03-25  8:51   ` Boris Brezillon
2016-03-28  8:12     ` Peter Pan
2016-03-29  8:07       ` Boris Brezillon
2016-03-14  2:47 ` [PATCH 06/11] mtd: nand_bbt: use struct nand_bbt_ops in BBT Peter Pan
2016-03-14  2:48 ` [PATCH 07/11] mtd: nand: make nand_erase_nand() static Peter Pan
2016-03-14  2:48 ` [PATCH 08/11] mtd: nand_bbt: remove struct nand_chip from nand_bbt.c Peter Pan
2016-03-14  2:48 ` [PATCH 09/11] mtd: nand_bbt: remove old API definitions Peter Pan
2016-03-14  2:48 ` [PATCH 10/11] mtd: nand_bbt: remove NAND_BBT_DYNAMICSTRUCT macro Peter Pan
2016-03-14  2:48 ` [PATCH 11/11] mtd: nand: remove nand_chip.bbt Peter Pan
2016-03-14  2:57 ` [PATCH 00/11] mtd: nand_bbt: introduce independent nand BBT Peter Pan
2016-03-16 12:57   ` Boris Brezillon
2016-03-23 20:57 ` Ezequiel Garcia
2016-03-28  8:20   ` Peter Pan
2016-03-29  8:02     ` Boris Brezillon
2016-03-25  8:50 ` Boris Brezillon
2016-03-28  7:56   ` Peter Pan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).