diff options
Diffstat (limited to 'recipes-kernel/linux/linux-omap-2.6.39/sakoman/0027-omap-nand-fix-subpage-ecc-issue-with-prefetch.patch')
-rw-r--r-- | recipes-kernel/linux/linux-omap-2.6.39/sakoman/0027-omap-nand-fix-subpage-ecc-issue-with-prefetch.patch | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0027-omap-nand-fix-subpage-ecc-issue-with-prefetch.patch b/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0027-omap-nand-fix-subpage-ecc-issue-with-prefetch.patch deleted file mode 100644 index 21eb1e9f..00000000 --- a/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0027-omap-nand-fix-subpage-ecc-issue-with-prefetch.patch +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | From fb4dfff6a6e107e0e526801e7add4a9aaeab1eab Mon Sep 17 00:00:00 2001 | ||
2 | From: kishore kadiyala <kishore.kadiyala@ti.com> | ||
3 | Date: Mon, 2 May 2011 11:10:38 +0000 | ||
4 | Subject: [PATCH 27/32] omap : nand : fix subpage ecc issue with prefetch | ||
5 | |||
6 | For prefetch engine, read and write got broken in commit '2c01946c'. | ||
7 | We never hit a scenario of not getting 'gpmc_prefetch_enable' | ||
8 | call success. | ||
9 | When reading/writing a subpage with a non divisible by 4 ecc number | ||
10 | of bytes, the mis-aligned bytes gets handled first before enabling | ||
11 | the Prefetch engine, then it reads/writes rest of the bytes. | ||
12 | |||
13 | Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com> | ||
14 | Signed-off-by: Vimal Singh <vimal.newwork@gmail.com> | ||
15 | Reported-by: Bryan DE FARIA <bdefaria@adeneo-embedded.com> | ||
16 | --- | ||
17 | drivers/mtd/nand/omap2.c | 12 +++++------- | ||
18 | 1 files changed, 5 insertions(+), 7 deletions(-) | ||
19 | |||
20 | diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c | ||
21 | index 832f111..471a39b 100644 | ||
22 | --- a/drivers/mtd/nand/omap2.c | ||
23 | +++ b/drivers/mtd/nand/omap2.c | ||
24 | @@ -275,11 +275,10 @@ static void omap_read_buf_pref(struct mtd_info *mtd, u_char *buf, int len) | ||
25 | if (ret) { | ||
26 | /* PFPW engine is busy, use cpu copy method */ | ||
27 | if (info->nand.options & NAND_BUSWIDTH_16) | ||
28 | - omap_read_buf16(mtd, buf, len); | ||
29 | + omap_read_buf16(mtd, (u_char *)p, len); | ||
30 | else | ||
31 | - omap_read_buf8(mtd, buf, len); | ||
32 | + omap_read_buf8(mtd, (u_char *)p, len); | ||
33 | } else { | ||
34 | - p = (u32 *) buf; | ||
35 | do { | ||
36 | r_count = gpmc_read_status(GPMC_PREFETCH_FIFO_CNT); | ||
37 | r_count = r_count >> 2; | ||
38 | @@ -305,7 +304,7 @@ static void omap_write_buf_pref(struct mtd_info *mtd, | ||
39 | struct omap_nand_info, mtd); | ||
40 | uint32_t w_count = 0; | ||
41 | int i = 0, ret = 0; | ||
42 | - u16 *p; | ||
43 | + u16 *p = (u16 *)buf; | ||
44 | unsigned long tim, limit; | ||
45 | |||
46 | /* take care of subpage writes */ | ||
47 | @@ -321,11 +320,10 @@ static void omap_write_buf_pref(struct mtd_info *mtd, | ||
48 | if (ret) { | ||
49 | /* PFPW engine is busy, use cpu copy method */ | ||
50 | if (info->nand.options & NAND_BUSWIDTH_16) | ||
51 | - omap_write_buf16(mtd, buf, len); | ||
52 | + omap_write_buf16(mtd, (u_char *)p, len); | ||
53 | else | ||
54 | - omap_write_buf8(mtd, buf, len); | ||
55 | + omap_write_buf8(mtd, (u_char *)p, len); | ||
56 | } else { | ||
57 | - p = (u16 *) buf; | ||
58 | while (len) { | ||
59 | w_count = gpmc_read_status(GPMC_PREFETCH_FIFO_CNT); | ||
60 | w_count = w_count >> 1; | ||
61 | -- | ||
62 | 1.6.6.1 | ||
63 | |||