lkml.org 
[lkml]   [2016]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 00/11] mtd: nand_bbt: introduce independent nand BBT
    Date
    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

    \
     
     \ /
      Last update: 2016-03-14 04:21    [W:3.094 / U:0.808 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site