[oe-commits] Jeremy Lainé : linux-2.6.26: cleanup backport of Freescale NAND controller

GIT User account git at amethyst.openembedded.net
Tue Dec 2 05:48:30 UTC 2008


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 90d0da93bd1e187d192bb417b4d343fa3de5d0f7
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=90d0da93bd1e187d192bb417b4d343fa3de5d0f7

Author: Jeremy Lainé <jeremy.laine at m4x.org>
Date:   Tue Dec  2 06:47:28 2008 +0100

linux-2.6.26: cleanup backport of Freescale NAND controller

---

 ...124-nand.patch => fsl-elbc-nand-backport.patch} |   65 ++++++++++++++-----
 packages/linux/linux-2.6.26/mpc831x-nand.patch     |   27 --------
 packages/linux/linux_2.6.26.bb                     |    4 +-
 3 files changed, 50 insertions(+), 46 deletions(-)

diff --git a/packages/linux/linux-2.6.26/boc01/003-081124-nand.patch b/packages/linux/linux-2.6.26/fsl-elbc-nand-backport.patch
similarity index 67%
rename from packages/linux/linux-2.6.26/boc01/003-081124-nand.patch
rename to packages/linux/linux-2.6.26/fsl-elbc-nand-backport.patch
index 885bad2..99f4628 100644
--- a/packages/linux/linux-2.6.26/boc01/003-081124-nand.patch
+++ b/packages/linux/linux-2.6.26/fsl-elbc-nand-backport.patch
@@ -1,40 +1,36 @@
-diff -Nru linux-2.6.26/drivers/mtd/nand/fsl_elbc_nand.c linux-2.6.26.modified/drivers/mtd/nand/fsl_elbc_nand.c
 --- linux-2.6.26/drivers/mtd/nand/fsl_elbc_nand.c	2008-07-13 23:51:29.000000000 +0200
-+++ linux-2.6.26.modified/drivers/mtd/nand/fsl_elbc_nand.c	2008-10-24 13:43:30.000000000 +0200
-@@ -89,7 +89,7 @@
++++ linux-2.6.27/drivers/mtd/nand/fsl_elbc_nand.c	2008-10-10 00:13:53.000000000 +0200
+@@ -89,7 +89,6 @@
  	.eccbytes = 3,
  	.eccpos = {6, 7, 8},
  	.oobfree = { {0, 5}, {9, 7} },
 -	.oobavail = 12,
-+//	.oobavail = 12,
  };
  
  /* Small Page FLASH with FMR[ECCM] = 1 */
-@@ -97,7 +97,7 @@
+@@ -97,7 +96,6 @@
  	.eccbytes = 3,
  	.eccpos = {8, 9, 10},
  	.oobfree = { {0, 5}, {6, 2}, {11, 5} },
 -	.oobavail = 12,
-+	//.oobavail = 12,
  };
  
  /* Large Page FLASH with FMR[ECCM] = 0 */
-@@ -105,7 +105,7 @@
+@@ -105,7 +103,6 @@
  	.eccbytes = 12,
  	.eccpos = {6, 7, 8, 22, 23, 24, 38, 39, 40, 54, 55, 56},
  	.oobfree = { {1, 5}, {9, 13}, {25, 13}, {41, 13}, {57, 7} },
 -	.oobavail = 48,
-+	//.oobavail = 48,
  };
  
  /* Large Page FLASH with FMR[ECCM] = 1 */
-@@ -113,7 +113,48 @@
+@@ -113,7 +110,48 @@
  	.eccbytes = 12,
  	.eccpos = {8, 9, 10, 24, 25, 26, 40, 41, 42, 56, 57, 58},
  	.oobfree = { {1, 7}, {11, 13}, {27, 13}, {43, 13}, {59, 5} },
 -	.oobavail = 48,
-+//	.oobavail = 48,
 +};
++
 +/*
 + * fsl_elbc_oob_lp_eccm* specify that LP NAND's OOB free area starts at offset
 + * 1, so we have to adjust bad block pattern. This pattern should be used for
@@ -78,19 +74,17 @@ diff -Nru linux-2.6.26/drivers/mtd/nand/fsl_elbc_nand.c linux-2.6.26.modified/dr
  };
  
  /*=================================*/
-@@ -687,8 +728,9 @@
+@@ -687,8 +725,7 @@
  			chip->ecc.layout = (priv->fmr & FMR_ECCM) ?
  			                   &fsl_elbc_oob_lp_eccm1 :
  			                   &fsl_elbc_oob_lp_eccm0;
 -			mtd->ecclayout = chip->ecc.layout;
 -			mtd->oobavail = chip->ecc.layout->oobavail;
-+			//mtd->ecclayout = chip->ecc.layout;
-+			//mtd->oobavail = chip->ecc.layout->oobavail;
 +			chip->badblock_pattern = &largepage_memorybased;
  		}
  	} else {
  		dev_err(ctrl->dev,
-@@ -752,8 +794,12 @@
+@@ -752,8 +789,12 @@
  	chip->cmdfunc = fsl_elbc_cmdfunc;
  	chip->waitfunc = fsl_elbc_wait;
  
@@ -99,9 +93,46 @@ diff -Nru linux-2.6.26/drivers/mtd/nand/fsl_elbc_nand.c linux-2.6.26.modified/dr
 +
  	/* set up nand options */
 -	chip->options = NAND_NO_READRDY | NAND_NO_AUTOINCR;
-+	//chip->options = NAND_NO_READRDY | NAND_NO_AUTOINCR;
-+	chip->options = NAND_NO_READRDY | NAND_NO_AUTOINCR | NAND_USE_FLASH_BBT;
++	chip->options = NAND_NO_READRDY | NAND_NO_AUTOINCR |
++			NAND_USE_FLASH_BBT;
  
  	chip->controller = &ctrl->controller;
  	chip->priv = priv;
-
+@@ -795,8 +836,8 @@
+ 	return 0;
+ }
+ 
+-static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl,
+-                               struct device_node *node)
++static int __devinit fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl,
++					 struct device_node *node)
+ {
+ 	struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+ 	struct fsl_elbc_mtd *priv;
+@@ -846,7 +887,7 @@
+ 		goto err;
+ 	}
+ 
+-	priv->mtd.name = kasprintf(GFP_KERNEL, "%x.flash", res.start);
++	priv->mtd.name = kasprintf(GFP_KERNEL, "%x.flash", (unsigned)res.start);
+ 	if (!priv->mtd.name) {
+ 		ret = -ENOMEM;
+ 		goto err;
+@@ -917,7 +958,7 @@
+ 	return 0;
+ }
+ 
+-static int __devexit fsl_elbc_ctrl_remove(struct of_device *ofdev)
++static int fsl_elbc_ctrl_remove(struct of_device *ofdev)
+ {
+ 	struct fsl_elbc_ctrl *ctrl = dev_get_drvdata(&ofdev->dev);
+ 	int i;
+@@ -1041,7 +1082,7 @@
+ 	},
+ 	.match_table = fsl_elbc_match,
+ 	.probe = fsl_elbc_ctrl_probe,
+-	.remove = __devexit_p(fsl_elbc_ctrl_remove),
++	.remove = fsl_elbc_ctrl_remove,
+ };
+ 
+ static int __init fsl_elbc_init(void)
diff --git a/packages/linux/linux-2.6.26/mpc831x-nand.patch b/packages/linux/linux-2.6.26/mpc831x-nand.patch
deleted file mode 100644
index 23520cb..0000000
--- a/packages/linux/linux-2.6.26/mpc831x-nand.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
-index b025dfe..9c86d9b 100644
---- a/drivers/mtd/nand/fsl_elbc_nand.c
-+++ b/drivers/mtd/nand/fsl_elbc_nand.c
-@@ -974,6 +974,8 @@ static int fsl_elbc_chip_remove(struct fsl_elbc_mtd *priv)
- 
- 	nand_release(&priv->mtd);
- 
-+	kfree(priv->mtd.name);
-+
- 	if (priv->vbase)
- 		iounmap(priv->vbase);
- 
-@@ -1034,6 +1036,12 @@ static int fsl_elbc_chip_probe(struct fsl_elbc_ctrl *ctrl,
- 		goto err;
- 	}
- 
-+	priv->mtd.name = kasprintf(GFP_KERNEL, "%x.flash", res.start);
-+	if (!priv->mtd.name) {
-+		ret = -ENOMEM;
-+		goto err;
-+	}
-+
- 	ret = fsl_elbc_chip_init(priv);
- 	if (ret)
- 		goto err;
-
diff --git a/packages/linux/linux_2.6.26.bb b/packages/linux/linux_2.6.26.bb
index 1b539b7..405655b 100644
--- a/packages/linux/linux_2.6.26.bb
+++ b/packages/linux/linux_2.6.26.bb
@@ -14,8 +14,8 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2 \
 SRC_URI_append_boc01 = "\
 	file://boc01.dts \
 	file://cdc-ether-hack.patch;patch=1 \
+	file://fsl-elbc-nand-backport.patch;patch=1 \
 	file://002-081105-headers.patch;patch=1 \
-	file://003-081124-nand.patch;patch=1 \
 	file://004-081105-usb.patch;patch=1 \
 	file://005-081105-isl12024.patch;patch=1 \
 	file://006-081105-at24c32.patch;patch=1 \
@@ -28,7 +28,7 @@ SRC_URI_append_boc01 = "\
 
 SRC_URI_append_mpc8313e-rdb = "\
 	file://cdc-ether-hack.patch;patch=1 \
-	file://mpc831x-nand.patch;patch=1 \
+	file://fsl-elbc-nand-backport.patch;patch=1 \
 	file://mpc8313e-rdb-leds.patch;patch=1 \
 	file://mpc8313e-rdb-cardbus.patch;patch=1 \
 	file://mpc8313e-rdb-eth-fixed.patch;patch=1 \





More information about the Openembedded-commits mailing list