summaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0026-mtd-nand-omap2-Force-all-buffer-reads-to-u32-alignme.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0026-mtd-nand-omap2-Force-all-buffer-reads-to-u32-alignme.patch')
-rw-r--r--extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0026-mtd-nand-omap2-Force-all-buffer-reads-to-u32-alignme.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0026-mtd-nand-omap2-Force-all-buffer-reads-to-u32-alignme.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0026-mtd-nand-omap2-Force-all-buffer-reads-to-u32-alignme.patch
new file mode 100644
index 00000000..5e060231
--- /dev/null
+++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/sakoman/0026-mtd-nand-omap2-Force-all-buffer-reads-to-u32-alignme.patch
@@ -0,0 +1,35 @@
1From 048c2b85c12ac4aa8cd82201e1ade332557e4380 Mon Sep 17 00:00:00 2001
2From: Charles Manning <manningc2@actrix.gen.nz>
3Date: Thu, 16 Dec 2010 20:35:56 -0800
4Subject: [PATCH 26/32] mtd: nand: omap2: Force all buffer reads to u32 alignment
5
6---
7 drivers/mtd/nand/omap2.c | 12 ++++++++++++
8 1 files changed, 12 insertions(+), 0 deletions(-)
9
10diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
11index bb89c65..832f111 100644
12--- a/drivers/mtd/nand/omap2.c
13+++ b/drivers/mtd/nand/omap2.c
14@@ -247,6 +247,18 @@ static void omap_read_buf_pref(struct mtd_info *mtd, u_char *buf, int len)
15 int ret = 0;
16 u32 *p = (u32 *)buf;
17
18+ /* u32 align the buffer and read */
19+ /* NB: This assumes the buf ptr can be aligned *down* which is a valid.
20+ * Assumption when dealing with ecc buffers etc.
21+ */
22+ u32 addr = (u32)p;
23+
24+ int diff = addr & 3;
25+ addr -= diff;
26+ len += diff;
27+ len = (len + 3) & ~3;
28+ p = (u32 *)addr;
29+
30 /* take care of subpage reads */
31 if (len % 4) {
32 if (info->nand.options & NAND_BUSWIDTH_16)
33--
341.6.6.1
35