diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2014-06-17 15:13:10 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2014-06-17 15:13:10 +0000 |
commit | d775e4ef00e08c839a41e101552be171ff638d3d (patch) | |
tree | 4024679a777f738166057959372d0706830fcd7e /target/linux/mvebu/patches-3.14/009-add_of_mtd_ecc_helpers.patch | |
parent | 099d998fcf21c80e25a9518607285d1437d89be9 (diff) | |
download | master-31e0f0ae-d775e4ef00e08c839a41e101552be171ff638d3d.tar.gz master-31e0f0ae-d775e4ef00e08c839a41e101552be171ff638d3d.tar.bz2 master-31e0f0ae-d775e4ef00e08c839a41e101552be171ff638d3d.zip |
preliminary support for the WRT1900AC (work in progress)
SVN-Revision: 41232
Diffstat (limited to 'target/linux/mvebu/patches-3.14/009-add_of_mtd_ecc_helpers.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.14/009-add_of_mtd_ecc_helpers.patch | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-3.14/009-add_of_mtd_ecc_helpers.patch b/target/linux/mvebu/patches-3.14/009-add_of_mtd_ecc_helpers.patch new file mode 100644 index 0000000000..d48885f8e3 --- /dev/null +++ b/target/linux/mvebu/patches-3.14/009-add_of_mtd_ecc_helpers.patch @@ -0,0 +1,84 @@ +From 6d9434ebb76157071164b32ad03fbed165c74382 Mon Sep 17 00:00:00 2001 +From: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> +Date: Mon, 24 Feb 2014 19:24:48 -0300 +Subject: of_mtd: Add helpers to get ECC strength and ECC step size + +This commit adds simple helpers to obtain the devicetree properties +that specify the ECC strength and ECC step size to use on a given +NAND controller. + +Acked-by: Boris BREZILLON <b.brezillon.dev@gmail.com> +Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> +Signed-off-by: Brian Norris <computersforpeace@gmail.com> + +--- a/drivers/of/of_mtd.c ++++ b/drivers/of/of_mtd.c +@@ -50,6 +50,40 @@ int of_get_nand_ecc_mode(struct device_n + EXPORT_SYMBOL_GPL(of_get_nand_ecc_mode); + + /** ++ * of_get_nand_ecc_step_size - Get ECC step size associated to ++ * the required ECC strength (see below). ++ * @np: Pointer to the given device_node ++ * ++ * return the ECC step size, or errno in error case. ++ */ ++int of_get_nand_ecc_step_size(struct device_node *np) ++{ ++ int ret; ++ u32 val; ++ ++ ret = of_property_read_u32(np, "nand-ecc-step-size", &val); ++ return ret ? ret : val; ++} ++EXPORT_SYMBOL_GPL(of_get_nand_ecc_step_size); ++ ++/** ++ * of_get_nand_ecc_strength - Get required ECC strength over the ++ * correspnding step size as defined by 'nand-ecc-size' ++ * @np: Pointer to the given device_node ++ * ++ * return the ECC strength, or errno in error case. ++ */ ++int of_get_nand_ecc_strength(struct device_node *np) ++{ ++ int ret; ++ u32 val; ++ ++ ret = of_property_read_u32(np, "nand-ecc-strength", &val); ++ return ret ? ret : val; ++} ++EXPORT_SYMBOL_GPL(of_get_nand_ecc_strength); ++ ++/** + * of_get_nand_bus_width - Get nand bus witdh for given device_node + * @np: Pointer to the given device_node + * +--- a/include/linux/of_mtd.h ++++ b/include/linux/of_mtd.h +@@ -13,6 +13,8 @@ + + #include <linux/of.h> + int of_get_nand_ecc_mode(struct device_node *np); ++int of_get_nand_ecc_step_size(struct device_node *np); ++int of_get_nand_ecc_strength(struct device_node *np); + int of_get_nand_bus_width(struct device_node *np); + bool of_get_nand_on_flash_bbt(struct device_node *np); + +@@ -22,6 +24,16 @@ static inline int of_get_nand_ecc_mode(s + { + return -ENOSYS; + } ++ ++static inline int of_get_nand_ecc_step_size(struct device_node *np) ++{ ++ return -ENOSYS; ++} ++ ++static inline int of_get_nand_ecc_strength(struct device_node *np) ++{ ++ return -ENOSYS; ++} + + static inline int of_get_nand_bus_width(struct device_node *np) + { |