leon: R.I.P.
[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,