034-Enable-the-NFC-driver-for-soft_ecc.patch 1.5 KB

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