> On Thu, Jan 08, 2015 at 12:47:24AM +0000, Peter Pan 潘栋 (peterpandong) > wrote: > > Documentation/devicetree/bindings/mtd/spi-nand.txt | 22 + > > drivers/mtd/Kconfig | 2 + > > drivers/mtd/Makefile | 1 + > > drivers/mtd/spi-nand/Kconfig | 7 + > > drivers/mtd/spi-nand/Makefile | 3 + > > drivers/mtd/spi-nand/spi-nand-base.c | 2034 > ++++++++++++++++++++ > > drivers/mtd/spi-nand/spi-nand-bbt.c | 1279 > ++++++++++++ > > I can already tell by the diffstat that I don't like this. We probably > don't need 3000 new lines of code for this, but we especially don't > want > to duplicate nand_bbt.c. It won't take a lot of work to augment > nand_bbt.c to make it shareable. (I can whip that patch up if needed.)
Qi Wang and I have started to work on make nand_bbt.c shareable. nand_bbt.c need some member of nand_chip. Like what you said, if we want to remove nand_chip from nand_bbt.c, "We'd just need to parameterize a few relevant device details into a new nand_bbt struct, rather than using struct nand_chip directly." We can put struct nand_bbt pointer in either nand_chip or mtd_info structure. If put nand_bbt in nand_chip, we need to change the parameter of nand_chip->scan_bbt function from mtd_info to nand_bbt. Using nand_bbt struct will cause some member in both nand_chip and nand_bbt struct. Brain, do you have any suggest about this? > > I'll still take a look at the rest of the code eventually, but just > wanted to give my 2 cents up front. > > > drivers/mtd/spi-nand/spi-nand-device.c | 281 +++ > > include/linux/mtd/spi-nand.h | 317 +++ > > 9 files changed, 3946 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/mtd/spi-nand.txt > > create mode 100644 drivers/mtd/spi-nand/Kconfig > > create mode 100644 drivers/mtd/spi-nand/Makefile > > create mode 100644 drivers/mtd/spi-nand/spi-nand-base.c > > create mode 100644 drivers/mtd/spi-nand/spi-nand-bbt.c > > create mode 100644 drivers/mtd/spi-nand/spi-nand-device.c > > create mode 100644 include/linux/mtd/spi-nand.h > > Brian