Extends workaround for swapping problem.
[openwrt/openwrt.git] / target / linux / amazon / patches / 160-cfi-swap.patch
1 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
2 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
3 @@ -1007,7 +1007,9 @@ static int __xipram do_write_oneword(str
4 int ret = 0;
5 map_word oldd;
6 int retry_cnt = 0;
7 -
8 +#ifdef CONFIG_AMAZON
9 + adr ^= 2;
10 +#endif
11 adr += chip->start;
12
13 spin_lock(chip->mutex);
14 @@ -1291,7 +1293,11 @@ static int __xipram do_write_buffer(stru
15 z = 0;
16 while(z < words * map_bankwidth(map)) {
17 datum = map_word_load(map, buf);
18 +#ifdef CONFIG_AMAZON
19 + map_write(map, datum, (adr + z) ^ 0x2);
20 +#else
21 map_write(map, datum, adr + z);
22 +#endif
23
24 z += map_bankwidth(map);
25 buf += map_bankwidth(map);