f1f1c59447493526f9cf80ef57a33c9f5cb0908c
[openwrt/openwrt.git] / target / linux / coldfire / patches / 034-Enable-the-NFC-driver-for-soft_ecc.patch
1 From 25ebef8c87221774de01d1f1de4fb615fcfc6b54 Mon Sep 17 00:00:00 2001
2 From: Jason Jin <Jason.jin@freescale.com>
3 Date: Thu, 4 Aug 2011 09:59:47 +0800
4 Subject: [PATCH 34/52] Enable the NFC driver for soft_ecc.
5
6 If enabled YAFFS2 support, soft ecc should be used for the
7 nand flash driver.
8
9 Signed-off-by: Jason Jin <Jason.jin@freescale.com>
10 ---
11 drivers/mtd/nand/Kconfig | 6 ++++++
12 drivers/mtd/nand/fsl_nfc.c | 12 +++++++++---
13 2 files changed, 15 insertions(+), 3 deletions(-)
14
15 --- a/drivers/mtd/nand/Kconfig
16 +++ b/drivers/mtd/nand/Kconfig
17 @@ -481,6 +481,12 @@ config MTD_NAND_FSL_NFC
18 Enables support for NAND Flash chips wired onto Freescale PowerPC
19 processor localbus with User-Programmable Machine support.
20
21 +config MTD_NAND_FSL_NFC_SWECC
22 + bool "Software ECC"
23 + depends on MTD_NAND_FSL_NFC
24 + help
25 + Use software ECC.
26 +
27 config MTD_NAND_MXC
28 tristate "MXC NAND support"
29 depends on ARCH_MX2 || ARCH_MX25 || ARCH_MX3 || ARCH_MX51
30 --- a/drivers/mtd/nand/fsl_nfc.c
31 +++ b/drivers/mtd/nand/fsl_nfc.c
32 @@ -403,9 +403,15 @@ fsl_nfc_command(struct mtd_info *mtd, un
33 if (page != -1)
34 prv->page = page;
35
36 - nfc_set_field(mtd, NFC_FLASH_CONFIG,
37 - CONFIG_ECC_MODE_MASK,
38 - CONFIG_ECC_MODE_SHIFT, ECC_45_BYTE);
39 + if(hardware_ecc)
40 + nfc_set_field(mtd, NFC_FLASH_CONFIG,
41 + CONFIG_ECC_MODE_MASK,
42 + CONFIG_ECC_MODE_SHIFT, ECC_45_BYTE);
43 + else
44 + /* set ECC BY_PASS */
45 + nfc_set_field(mtd, NFC_FLASH_CONFIG,
46 + CONFIG_ECC_MODE_MASK,
47 + CONFIG_ECC_MODE_SHIFT, ECC_BYPASS);
48
49 if (!(page%0x40)) {
50 nfc_set_field(mtd, NFC_FLASH_CONFIG,