From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miquel Raynal Date: Wed, 3 Jun 2020 09:37:16 +0200 Subject: [PATCH v3 1/2] mtd: rawnand: ca_nand: add Cortina Access Parallel NAND controller support In-Reply-To: <6041F1EC-FD00-4EE2-A09B-275E8DC305FF@cortina-access.com> References: <1591046810-9232-1-git-send-email-alex.nemirovsky@cortina-access.com> <20200602092027.0e7ddc97@xps13> <21AD5553-F9EE-4749-AB2B-FC05E507643A@cortina-access.com> <20200603092110.6724d0e0@xps13> <6041F1EC-FD00-4EE2-A09B-275E8DC305FF@cortina-access.com> Message-ID: <20200603093716.644730d4@xps13> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Alex, Alex Nemirovsky wrote on Wed, 3 Jun 2020 07:23:23 +0000: > Hi Miquel, > > still not clear what you would like us to do about the length of the driver. Stop duplicating the whole logic present in the core: - nand reset - nand identification - bad block handling - ca_nand_command{,_lp}() - ca_nand_scan_tail() Plus: - ca_nand_read/write_page_hwecc is overly complicated and 100 lines to assign chip->oob_poi is very suspicious. - your endless set of definitions in the header is really strange, could be reduced to a smaller number of defines (the ones of interest, that you use). Hope this helps. > > > On Jun 3, 2020, at 12:21 AM, Miquel Raynal wrote: > > > > Hi Alex, > > > > Alex Nemirovsky wrote on Wed, 3 > > Jun 2020 00:25:53 +0000: > > > >>> On Jun 2, 2020, at 12:20 AM, Miquel Raynal wrote: > >>> > >>> Hi Alex, > >>> > >>> Alex Nemirovsky wrote on Mon, 1 > >>> Jun 2020 14:26:49 -0700: > >>> > >>>> From: Jason Li > >>>> > >>>> Supports all CAxxxx SoCs which support a parallel nand controller. > >>>> It should be noted that some CAxxxx Soc also support an separate > >>>> SPI serial NAND controller. > >>>> > >>>> This driver only supports the parallel NAND controller. A different > >>>> driver supports the SPI NAND interface controller. > >>>> > >>>> Signed-off-by: Jason Li > >>>> Signed-off-by: Alex Nemirovsky > >>>> > >>>> CC: Miquel Raynal > >>>> CC: Simon Glass > >>>> CC: Tom Rini > >>>> --- > >>>> > >>>> Changes in v3: > >>>> - Include udelay.h to avoid implicit declaration of udelay() > >>>> > >>>> Changes in v2: > >>>> - Cleanup code style to pass checkpatch.pl > >>>> > >>>> MAINTAINERS | 2 + > >>>> drivers/mtd/nand/raw/Kconfig | 31 + > >>>> drivers/mtd/nand/raw/Makefile | 1 + > >>>> drivers/mtd/nand/raw/ca_nand.c | 4943 ++++++++++++++++++++++++++++++++++++++++ > >>>> drivers/mtd/nand/raw/ca_nand.h | 3899 +++++++++++++++++++++++++++++++ > >>> > >>> This is insanely big ! > >> > >> Hi Miquel, could you clarify? Is there a change request? > > > > 9000 lines for a single NAND driver? You bet I do :) > > > > $ wc -l drivers/mtd/nand/raw/*.c | grep -v spl > > 1273 drivers/mtd/nand/raw/arasan_nfc.c > > 1511 drivers/mtd/nand/raw/atmel_nand.c > > 838 drivers/mtd/nand/raw/davinci_nand.c > > 1376 drivers/mtd/nand/raw/denali.c > > 171 drivers/mtd/nand/raw/denali_dt.c > > 810 drivers/mtd/nand/raw/fsl_elbc_nand.c > > 1064 drivers/mtd/nand/raw/fsl_ifc_nand.c > > 184 drivers/mtd/nand/raw/fsl_upm.c > > 518 drivers/mtd/nand/raw/fsmc_nand.c > > 133 drivers/mtd/nand/raw/kb9202_nand.c > > 91 drivers/mtd/nand/raw/kirkwood_nand.c > > 122 drivers/mtd/nand/raw/kmeter1_nand.c > > 765 drivers/mtd/nand/raw/lpc32xx_nand_mlc.c > > 583 drivers/mtd/nand/raw/lpc32xx_nand_slc.c > > 1307 drivers/mtd/nand/raw/mxc_nand.c > > 1421 drivers/mtd/nand/raw/mxs_nand.c > > 94 drivers/mtd/nand/raw/mxs_nand_dt.c > > 5316 drivers/mtd/nand/raw/nand_base.c > > 1373 drivers/mtd/nand/raw/nand_bbt.c > > 231 drivers/mtd/nand/raw/nand_bch.c > > 175 drivers/mtd/nand/raw/nand.c > > 174 drivers/mtd/nand/raw/nand_ecc.c > > 213 drivers/mtd/nand/raw/nand_ids.c > > 64 drivers/mtd/nand/raw/nand_plat.c > > 334 drivers/mtd/nand/raw/nand_timings.c > > 904 drivers/mtd/nand/raw/nand_util.c > > 193 drivers/mtd/nand/raw/omap_elm.c > > 1037 drivers/mtd/nand/raw/omap_gpmc.c > > 1933 drivers/mtd/nand/raw/pxa3xx_nand.c > > 1061 drivers/mtd/nand/raw/stm32_fmc2_nand.c > > 1850 drivers/mtd/nand/raw/sunxi_nand.c > > 1002 drivers/mtd/nand/raw/tegra_nand.c > > 815 drivers/mtd/nand/raw/vf610_nfc.c > > 1254 drivers/mtd/nand/raw/zynq_nand.c > > > > So this driver would be almost twice bigger than the NAND core itself > > (nand_base.c). I did not check in details but I am pretty sure you > > duplicate a lot of code. > > > > Thanks, > > Miqu?l >