[MTD] Introduce writesize

At least two flashes exists that have the concept of a minimum write unit,
similar to NAND pages, but no other NAND characteristics.  Therefore, rename
the minimum write unit to "writesize" for all flashes, including NAND.

Signed-off-by: Joern Engel <joern@wh.fh-wedel.de>
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 08dffb7..055f660 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -560,9 +560,9 @@
 	if (command == NAND_CMD_SEQIN) {
 		int readcmd;
 
-		if (column >= mtd->oobblock) {
+		if (column >= mtd->writesize) {
 			/* OOB area */
-			column -= mtd->oobblock;
+			column -= mtd->writesize;
 			readcmd = NAND_CMD_READOOB;
 		} else if (column < 256) {
 			/* First 256 bytes --> READ0 */
@@ -658,7 +658,7 @@
 
 	/* Emulate NAND_CMD_READOOB */
 	if (command == NAND_CMD_READOOB) {
-		column += mtd->oobblock;
+		column += mtd->writesize;
 		command = NAND_CMD_READ0;
 	}
 
@@ -889,7 +889,7 @@
 		/* No ecc, write all */
 	case NAND_ECC_NONE:
 		printk(KERN_WARNING "Writing data without ECC to NAND-FLASH is not recommended\n");
-		this->write_buf(mtd, this->data_poi, mtd->oobblock);
+		this->write_buf(mtd, this->data_poi, mtd->writesize);
 		break;
 
 		/* Software ecc 3/256, write all */
@@ -900,7 +900,7 @@
 				oob_buf[oob_config[eccidx]] = ecc_code[i];
 			datidx += this->eccsize;
 		}
-		this->write_buf(mtd, this->data_poi, mtd->oobblock);
+		this->write_buf(mtd, this->data_poi, mtd->writesize);
 		break;
 	default:
 		eccbytes = this->eccbytes;
@@ -1161,9 +1161,9 @@
 	page = realpage & this->pagemask;
 
 	/* Get raw starting column */
-	col = from & (mtd->oobblock - 1);
+	col = from & (mtd->writesize - 1);
 
-	end = mtd->oobblock;
+	end = mtd->writesize;
 	ecc = this->eccsize;
 	eccbytes = this->eccbytes;
 
@@ -1321,7 +1321,7 @@
 				buf[read++] = data_poi[j];
 			this->pagebuf = realpage;
 		} else
-			read += mtd->oobblock;
+			read += mtd->writesize;
 
 		/* Apply delay or wait for ready/busy pin
 		 * Do this before the AUTOINCR check, so no problems
@@ -1479,7 +1479,7 @@
 	int chip = (int)(from >> this->chip_shift);
 	int sndcmd = 1;
 	int cnt = 0;
-	int pagesize = mtd->oobblock + mtd->oobsize;
+	int pagesize = mtd->writesize + mtd->oobsize;
 	int blockcheck = (1 << (this->phys_erase_shift - this->page_shift)) - 1;
 
 	/* Do not allow reads past end of device */
@@ -1581,7 +1581,7 @@
 	return this->oob_buf;
 }
 
-#define NOTALIGNED(x) (x & (mtd->oobblock-1)) != 0
+#define NOTALIGNED(x) (x & (mtd->writesize-1)) != 0
 
 /**
  * nand_write - [MTD Interface] compability function for nand_write_ecc
@@ -1694,7 +1694,7 @@
 		/* Next oob page */
 		oob += mtd->oobsize;
 		/* Update written bytes count */
-		written += mtd->oobblock;
+		written += mtd->writesize;
 		if (written == len)
 			goto cmp;
 
@@ -1805,7 +1805,7 @@
 
 	if (NAND_MUST_PAD(this)) {
 		/* Write out desired data */
-		this->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->oobblock, page & this->pagemask);
+		this->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->writesize, page & this->pagemask);
 		/* prepad 0xff for partial programming */
 		this->write_buf(mtd, ffchars, column);
 		/* write data */
@@ -1814,7 +1814,7 @@
 		this->write_buf(mtd, ffchars, mtd->oobsize - (len + column));
 	} else {
 		/* Write out desired data */
-		this->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->oobblock + column, page & this->pagemask);
+		this->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->writesize + column, page & this->pagemask);
 		/* write data */
 		this->write_buf(mtd, buf, len);
 	}
@@ -1947,7 +1947,7 @@
 		/* If the given tuple is >= pagesize then
 		 * write it out from the iov
 		 */
-		if ((vecs->iov_len - len) >= mtd->oobblock) {
+		if ((vecs->iov_len - len) >= mtd->writesize) {
 			/* Calc number of pages we can write
 			 * out of this iov in one go */
 			numpages = (vecs->iov_len - len) >> this->page_shift;
@@ -1967,8 +1967,8 @@
 						      &oobbuf[oob], oobsel, i != numpages);
 				if (ret)
 					goto out;
-				this->data_poi += mtd->oobblock;
-				len += mtd->oobblock;
+				this->data_poi += mtd->writesize;
+				len += mtd->writesize;
 				oob += mtd->oobsize;
 				page++;
 			}
@@ -1983,7 +1983,7 @@
 			 * tuple until we have a full page to write
 			 */
 			int cnt = 0;
-			while (cnt < mtd->oobblock) {
+			while (cnt < mtd->writesize) {
 				if (vecs->iov_base != NULL && vecs->iov_len)
 					this->data_buf[cnt++] = ((u_char *) vecs->iov_base)[len++];
 				/* Check, if we have to switch to the next tuple */
@@ -2009,7 +2009,7 @@
 		if (ret)
 			goto out;
 
-		written += mtd->oobblock * numpages;
+		written += mtd->writesize * numpages;
 		/* All done ? */
 		if (!count)
 			break;
@@ -2411,10 +2411,10 @@
 			/* The 4th id byte is the important one */
 			extid = this->read_byte(mtd);
 			/* Calc pagesize */
-			mtd->oobblock = 1024 << (extid & 0x3);
+			mtd->writesize = 1024 << (extid & 0x3);
 			extid >>= 2;
 			/* Calc oobsize */
-			mtd->oobsize = (8 << (extid & 0x01)) * (mtd->oobblock >> 9);
+			mtd->oobsize = (8 << (extid & 0x01)) * (mtd->writesize >> 9);
 			extid >>= 2;
 			/* Calc blocksize. Blocksize is multiples of 64KiB */
 			mtd->erasesize = (64 * 1024) << (extid & 0x03);
@@ -2426,8 +2426,8 @@
 			/* Old devices have this data hardcoded in the
 			 * device id table */
 			mtd->erasesize = nand_flash_ids[i].erasesize;
-			mtd->oobblock = nand_flash_ids[i].pagesize;
-			mtd->oobsize = mtd->oobblock / 32;
+			mtd->writesize = nand_flash_ids[i].pagesize;
+			mtd->oobsize = mtd->writesize / 32;
 			busw = nand_flash_ids[i].options & NAND_BUSWIDTH_16;
 		}
 
@@ -2451,12 +2451,12 @@
 		}
 
 		/* Calculate the address shift from the page size */
-		this->page_shift = ffs(mtd->oobblock) - 1;
+		this->page_shift = ffs(mtd->writesize) - 1;
 		this->bbt_erase_shift = this->phys_erase_shift = ffs(mtd->erasesize) - 1;
 		this->chip_shift = ffs(this->chipsize) - 1;
 
 		/* Set the bad block position */
-		this->badblockpos = mtd->oobblock > 512 ? NAND_LARGE_BADBLOCK_POS : NAND_SMALL_BADBLOCK_POS;
+		this->badblockpos = mtd->writesize > 512 ? NAND_LARGE_BADBLOCK_POS : NAND_SMALL_BADBLOCK_POS;
 
 		/* Get chip options, preserve non chip based options */
 		this->options &= ~NAND_CHIPOPTIONS_MSK;
@@ -2476,7 +2476,7 @@
 			this->erase_cmd = single_erase_cmd;
 
 		/* Do not replace user supplied command function ! */
-		if (mtd->oobblock > 512 && this->cmdfunc == nand_command)
+		if (mtd->writesize > 512 && this->cmdfunc == nand_command)
 			this->cmdfunc = nand_command_lp;
 
 		printk(KERN_INFO "NAND device: Manufacturer ID:"
@@ -2519,7 +2519,7 @@
 
 	if (!this->data_buf) {
 		size_t len;
-		len = mtd->oobblock + mtd->oobsize;
+		len = mtd->writesize + mtd->oobsize;
 		this->data_buf = kmalloc(len, GFP_KERNEL);
 		if (!this->data_buf) {
 			if (this->options & NAND_OOBBUF_ALLOC)
@@ -2575,9 +2575,9 @@
 
 	switch (this->eccmode) {
 	case NAND_ECC_HW12_2048:
-		if (mtd->oobblock < 2048) {
+		if (mtd->writesize < 2048) {
 			printk(KERN_WARNING "2048 byte HW ECC not possible on %d byte page size, fallback to SW ECC\n",
-			       mtd->oobblock);
+			       mtd->writesize);
 			this->eccmode = NAND_ECC_SOFT;
 			this->calculate_ecc = nand_calculate_ecc;
 			this->correct_data = nand_correct_data;
@@ -2588,7 +2588,7 @@
 	case NAND_ECC_HW3_512:
 	case NAND_ECC_HW6_512:
 	case NAND_ECC_HW8_512:
-		if (mtd->oobblock == 256) {
+		if (mtd->writesize == 256) {
 			printk(KERN_WARNING "512 byte HW ECC not possible on 256 Byte pagesize, fallback to SW ECC \n");
 			this->eccmode = NAND_ECC_SOFT;
 			this->calculate_ecc = nand_calculate_ecc;
@@ -2638,16 +2638,16 @@
 	/* Set the number of read / write steps for one page to ensure ECC generation */
 	switch (this->eccmode) {
 	case NAND_ECC_HW12_2048:
-		this->eccsteps = mtd->oobblock / 2048;
+		this->eccsteps = mtd->writesize / 2048;
 		break;
 	case NAND_ECC_HW3_512:
 	case NAND_ECC_HW6_512:
 	case NAND_ECC_HW8_512:
-		this->eccsteps = mtd->oobblock / 512;
+		this->eccsteps = mtd->writesize / 512;
 		break;
 	case NAND_ECC_HW3_256:
 	case NAND_ECC_SOFT:
-		this->eccsteps = mtd->oobblock / 256;
+		this->eccsteps = mtd->writesize / 256;
 		break;
 
 	case NAND_ECC_NONE: