summaryrefslogtreecommitdiffstats
path: root/target/linux/goldfish/patches-2.6.30/1000-nand_driver_fixes.patch
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-12-18 17:53:53 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-12-18 17:53:53 +0000
commit13e1228de3690c8c831b9cccbe5a34674e743362 (patch)
tree0c747bbe3b9ccb30a4e4c5e277825d9a8ba914e4 /target/linux/goldfish/patches-2.6.30/1000-nand_driver_fixes.patch
parent8f54e709747e711460f8a49acdcf86841920db8b (diff)
goldfish: R.I.P.
It is broken and it is not maintained by anyone since long time. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34766 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/goldfish/patches-2.6.30/1000-nand_driver_fixes.patch')
-rw-r--r--target/linux/goldfish/patches-2.6.30/1000-nand_driver_fixes.patch94
1 files changed, 0 insertions, 94 deletions
diff --git a/target/linux/goldfish/patches-2.6.30/1000-nand_driver_fixes.patch b/target/linux/goldfish/patches-2.6.30/1000-nand_driver_fixes.patch
deleted file mode 100644
index 0cd366ce9..000000000
--- a/target/linux/goldfish/patches-2.6.30/1000-nand_driver_fixes.patch
+++ /dev/null
@@ -1,94 +0,0 @@
---- a/drivers/mtd/devices/goldfish_nand.c
-+++ b/drivers/mtd/devices/goldfish_nand.c
-@@ -65,7 +65,7 @@ static int goldfish_nand_erase(struct mt
- if(rem)
- goto invalid_arg;
- ofs *= (mtd->writesize + mtd->oobsize);
--
-+
- if(len % mtd->writesize)
- goto invalid_arg;
- len = len / mtd->writesize * (mtd->writesize + mtd->oobsize);
-@@ -94,15 +94,12 @@ static int goldfish_nand_read_oob(struct
-
- if(ofs + ops->len > mtd->size)
- goto invalid_arg;
-- if(ops->datbuf && ops->len && ops->len != mtd->writesize)
-- goto invalid_arg;
- if(ops->ooblen + ops->ooboffs > mtd->oobsize)
- goto invalid_arg;
-
- rem = do_div(ofs, mtd->writesize);
-- if(rem)
-- goto invalid_arg;
- ofs *= (mtd->writesize + mtd->oobsize);
-+ ofs += rem;
-
- if(ops->datbuf)
- ops->retlen = goldfish_nand_cmd(mtd, NAND_CMD_READ, ofs,
-@@ -131,7 +128,7 @@ static int goldfish_nand_write_oob(struc
- goto invalid_arg;
- if(ops->ooblen + ops->ooboffs > mtd->oobsize)
- goto invalid_arg;
--
-+
- rem = do_div(ofs, mtd->writesize);
- if(rem)
- goto invalid_arg;
-@@ -160,15 +157,24 @@ static int goldfish_nand_read(struct mtd
-
- if(from + len > mtd->size)
- goto invalid_arg;
-- if(len != mtd->writesize)
-- goto invalid_arg;
-+
-+ *retlen = 0;
-
- rem = do_div(from, mtd->writesize);
-- if(rem)
-- goto invalid_arg;
- from *= (mtd->writesize + mtd->oobsize);
-+ from += rem;
-
-- *retlen = goldfish_nand_cmd(mtd, NAND_CMD_READ, from, len, buf);
-+ do {
-+ *retlen += goldfish_nand_cmd(mtd, NAND_CMD_READ, from, min(len, mtd->writesize - rem), buf);
-+ if (len > mtd->writesize - rem) {
-+ len -= mtd->writesize - rem;
-+ buf += mtd->writesize - rem;
-+ from += mtd->writesize + mtd->oobsize - rem;
-+ rem = 0;
-+ } else {
-+ len = 0;
-+ }
-+ } while (len);
- return 0;
-
- invalid_arg:
-@@ -184,15 +190,23 @@ static int goldfish_nand_write(struct mt
-
- if(to + len > mtd->size)
- goto invalid_arg;
-- if(len != mtd->writesize)
-- goto invalid_arg;
-
- rem = do_div(to, mtd->writesize);
- if(rem)
- goto invalid_arg;
- to *= (mtd->writesize + mtd->oobsize);
-
-- *retlen = goldfish_nand_cmd(mtd, NAND_CMD_WRITE, to, len, (void *)buf);
-+ *retlen = 0;
-+ do {
-+ *retlen += goldfish_nand_cmd(mtd, NAND_CMD_WRITE, to, min(len, mtd->writesize), (void *)buf);
-+ if (len > mtd->writesize) {
-+ len -= mtd->writesize;
-+ buf += mtd->writesize;
-+ to += mtd->writesize + mtd->oobsize;
-+ } else {
-+ len = 0;
-+ }
-+ } while (len);
- return 0;
-
- invalid_arg: