On 01/17/2013 06:07:39 AM, Sergey Lapin wrote:
Dear Scott,
thanks a lot for your review,
see below.
On Wed, Jan 16, 2013 at 04:09:45PM -0600, Scott Wood wrote:
> On 01/14/2013 07:46:50 AM, Sergey Lapin wrote:
> >This patch is essentially an update of u-boot MTD subsystem to
> >the state of Linux-3.7.1 with exclusion of some bits:
> >
> >- the update is concentrated on NAND, no onenand or CFI/NOR/SPI
> >flashes interfaces are updated EXCEPT for API changes.
> >
> >- new large NAND chips support is there, though some updates
> >have got in Linux-3.8.-rc1, (which will follow on top of this
patch).
> >
> >To produce this update I used tag v3.7.1 of linux-stable
repository.
> >
> >The update was made using application of relevant patches,
> >with changes relevant to U-Boot-only stuff sticked together
> >to keep bisectability. Then all changes were grouped together
> >to this patch.
> >
> >Signed-off-by: Sergey Lapin <sla...@ossfans.org>
> >---
>
> Applying: mtd: resync with Linux-3.7.1
> /home/scott/fsl/git/u-boot/upstream/.git/rebase-apply/patch:4292:
> space before tab in indent.
> chip->ecc.strength =
> /home/scott/fsl/git/u-boot/upstream/.git/rebase-apply/patch:835: new
> blank line at EOF.
> +
> /home/scott/fsl/git/u-boot/upstream/.git/rebase-apply/patch:6011:
> new blank line at EOF.
> +
> /home/scott/fsl/git/u-boot/upstream/.git/rebase-apply/patch:7970:
> new blank line at EOF.
> +
> warning: 4 lines add whitespace errors.
>
> Are these whitespace errors in Linux?
Yeah, this thing wonders me why. I can fix these without too much
hussle, should I?
They don't appear to have come from the Linux sources, so yes, please
fix them.
> You'll probably need to go through the various NAND patches between
3.0
> and 3.7.1 looking for API changes, and make sure that they're all
> accounted for, beyond just making things build.
This is what I did most of time, shit happens.
OK... ecc.strength is going to need to be fixed on several drivers
(pretty much everything that uses hardware ecc). When I fixed that,
elbc worked.
> >diff --git a/board/ait/cam_enc_4xx/cam_enc_4xx.c
> >b/board/ait/cam_enc_4xx/cam_enc_4xx.c
> >index 32b28f9..2a0c31c 100644
> >--- a/board/ait/cam_enc_4xx/cam_enc_4xx.c
> >+++ b/board/ait/cam_enc_4xx/cam_enc_4xx.c
> >@@ -120,7 +120,7 @@ int board_eth_init(bd_t *bis)
> > #ifdef CONFIG_NAND_DAVINCI
> > static int
> > davinci_std_read_page_syndrome(struct mtd_info *mtd, struct
> >nand_chip *chip,
> >- uint8_t *buf, int page)
> >+ uint8_t *buf, int oob_required, int
page)
> > {
> > struct nand_chip *this = mtd->priv;
> > int i, eccsize = chip->ecc.size;
> >@@ -167,8 +167,9 @@ davinci_std_read_page_syndrome(struct mtd_info
> >*mtd, struct nand_chip *chip,
> > return 0;
> > }
>
> We really should not be having NAND driver code (stuff that
interacts
> with the NAND API; not hardware setup) outside of drivers/mtd/nand.
This probably should be split.
Yes, it's not a problem with this patch, just something that this patch
made me notice (hence the CC to Heiko).
> >diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
> >index 543c845..99f39fc 100644
> >--- a/drivers/mtd/Makefile
> >+++ b/drivers/mtd/Makefile
> >@@ -25,7 +25,9 @@ include $(TOPDIR)/config.mk
> >
> > LIB := $(obj)libmtd.o
> >
> >-COBJS-$(CONFIG_MTD_DEVICE) += mtdcore.o
> >+ifneq (,$(findstring
> >y,$(CONFIG_MTD_DEVICE)$(CONFIG_CMD_NAND)$(CONFIG_CMD_ONENAND)))
> >+COBJS-y += mtdcore.o
> >+endif
>
> Please just require users of CONFIG_CMD_NAND or CONFIG_CMD_ONENAND
to
> also select CONFIG_MTD_DEVICE, if it's not going to be practical to
do
> without it -- and remove the "#ifdef CONFIG_MTD_DEVICE" from nand.c.
>
> Could you explain why it's no longer practical to have NAND by
itself?
I have dilemma here:
New MTD API instead of calling mtd->foo(mtd...) uses mtd_foo(mtd...)
functions. In Linux, these are defined in mtdcore.c
We can either move these functions from mtdcore.c somewhere (where?),
or
#ifndef unrelated parts from mtdcore.c
I'd say move them to another file in drivers/mtd. mtdapi.c?
> >+#define pr_info(args...) MTDDEBUG(MTD_DEBUG_LEVEL0, args)
> >+#define pr_warn(args...) MTDDEBUG(MTD_DEBUG_LEVEL0, args)
> >+#define pr_err(args...) MTDDEBUG(MTD_DEBUG_LEVEL0, args)
>
> These should be ordinary printf, not MTDDEBUG. Under normal
> (non-debug) circumstances MTDDEBUG is a no-op. We want to see
> errors and
> warnings always.
>
> Plus, these should be defined somewhere that isn't MTD-specific.
So, should I add separate header?
Put them in include/linux/compat.h
So, what is next step?
Once ecc.strength and the other review issues are dealt with, it should
be good to go in.
-Scott
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot