--- /dev/null
+commit 4b53f1aca5fb4503460bc398ef40f296fc5c985c
+Author: ghost <andreas.monzner@multimedia-labs.de>
+Date: Fri Sep 2 23:06:25 2011 +0200
+
+ brcmnand: fixed oob raw write
+
+diff --git a/drivers/mtd/brcmnand/brcmnand_base.c b/drivers/mtd/brcmnand/brcmnand_base.c
+index 7dc1c33..23fc1db 100644
+--- a/drivers/mtd/brcmnand/brcmnand_base.c
++++ b/drivers/mtd/brcmnand/brcmnand_base.c
+@@ -6067,6 +6067,14 @@ brcmnand_do_write_oob(struct mtd_info *mtd, loff_t to, struct mtd_oob_ops *ops)
+ int page, status;
+ struct brcmnand_chip *chip = mtd->priv;
+ int toBeWritten, written;
++ int ooblen;
++
++ if (ops->mode == MTD_OOB_AUTO) {
++ ooblen = mtd->ecclayout->oobavail;
++ }
++ else {
++ ooblen = mtd->oobsize;
++ }
+
+ DEBUG(MTD_DEBUG_LEVEL3, "%s: to = 0x%08x, len = %i\n", __FUNCTION__,
+ (unsigned int)to, (int)ops->len);
+@@ -6119,8 +6127,8 @@ printk("-->%s, to=%08x, len=%d\n", __FUNCTION__, (uint32_t) to, (int)ops->len);}
+ return status;
+
+ page++;
+- written += mtd->ecclayout->oobavail;
+- toBeWritten -= mtd->ecclayout->oobavail;
++ written += ooblen;
++ toBeWritten -= ooblen;
+ }
+
+
+ } else {
+ if (bits_modified) {
+ uint32_t acc = brcmnand_ctrl_read(BCHP_NAND_ACC_CONTROL);
-+if (gdebug > 3) printk("re-enable ecc %08x %08x, old %08x\n", acc, bits_modified, acc);
-+ brcmnand_ctrl_write(BCHP_NAND_ACC_CONTROL, acc);
++if (gdebug > 3) printk("re-enable ecc %08x %08x, old %08x\n", acc | bits_modified, bits_modified, acc);
++ brcmnand_ctrl_write(BCHP_NAND_ACC_CONTROL, acc | bits_modified);
+ bits_modified = 0;
+ }
+ }
require linux-opendreambox.inc
SRCREV = "ac6cc9511a5f70eaa584c63fc5c3de33cae1d0e7"
-PR_INC = "r13"
+PR_INC = "r14"
RREPLACES_kernel = "kernel-2.6.18-7.1-${MACHINE}"
RCONFLICTS_kernel = "kernel-2.6.18-7.1-${MACHINE}"
SRC_URI += " http://trappist.elis.ugent.be/~mronsse/cdfs/download/cdfs-2.6.18.tar.bz2 \
file://stblinux-2.6.18-cdfs.patch \
file://stblinux-2.6.18-extra-version-7.4.patch;patch=1 \
+ file://stblinux-2.6.18-brcmnand-oob-raw-write-fix.patch;patch=1 \
file://linux-2.6.18-fix-mips-crosscompile.patch;patch=1 \
file://linux-2.6.18-fix-proc-cputype.patch;patch=1 \
file://dvb-api-2.6.18-5.3.patch;patch=1 \