-
- if (data && tags) {
- if (dev->useNANDECC)
- retval =
- mtd->write_ecc(mtd, addr, dev->nBytesPerChunk,
- &dummy, data, (__u8 *) & pt, NULL);
- else
- retval =
- mtd->write_ecc(mtd, addr, dev->nBytesPerChunk,
- &dummy, data, (__u8 *) & pt, NULL);
+ else
+ yaffs_PackTags2(&pt, tags);
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
+ ops.mode = MTD_OOB_AUTO;
+ ops.ooblen = (dev->inbandTags) ? 0 : sizeof(pt);
+ ops.len = dev->totalBytesPerChunk;
+ ops.ooboffs = 0;
+ ops.datbuf = (__u8 *)data;
+ ops.oobbuf = (dev->inbandTags) ? NULL : (void *)&pt;
+ retval = mtd->write_oob(mtd, addr, &ops);
+
+#else
+ if (!dev->inbandTags) {
+ retval =
+ mtd->write_ecc(mtd, addr, dev->nDataBytesPerChunk,
+ &dummy, data, (__u8 *) & pt, NULL);