
In message 1516faed0808071906g118e3bf1ted560f41ad4dec12@mail.gmail.com you wrote:
diff --git a/drivers/mtd/nand/nand.c b/drivers/mtd/nand/nand.c index e44470e..f795d2e 100644 --- a/drivers/mtd/nand/nand.c +++ b/drivers/mtd/nand/nand.c @@ -41,6 +41,10 @@ static const char default_nand_name[] = "nand";
extern int board_nand_init(struct nand_chip *nand);
+int __board_nand_init_tail(struct nand_chip *nand) { return 0; } +int inline board_nand_init_tail (struct nand_chip *) __attribute__
- ((weak, alias("__board_nand_init_tail")));
I don't like the "_tail" name. Maybe board_nand_init2() or so would be better?
static void nand_init_chip(struct mtd_info *mtd, struct nand_chip *nand, ulong base_addr) { @@ -48,7 +52,7 @@ static void nand_init_chip(struct mtd_info *mtd, struct nand_chip *nand,
nand->IO_ADDR_R = nand->IO_ADDR_W = (void __iomem *)base_addr; if (board_nand_init(nand) == 0) {
if (nand_scan(mtd, 1) == 0) {
} elseif ((nand_scan(mtd, 1) == 0) && (board_nand_init_tail(nand) == 0)) { if (!mtd->name) mtd->name = (char *)default_nand_name;
The logic is becoming pretty intricate. Maybe you can rewrite this to be more readable?
Best regards,
Wolfgang Denk