diff options
author | Felix Fietkau <nbd@nbd.name> | 2016-05-12 17:54:14 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2016-05-12 17:54:14 +0200 |
commit | 3f1705d7770d6ff42f369ff7856fb047c8b78e42 (patch) | |
tree | 0ea8bec363bceb3d1f237afb771b9906ba98f34a /target/linux/bcm53xx/patches-4.1/090-mtd-nand-add-common-DT-init-code.patch | |
parent | b9c6361d5f6f47149c99b02c2c00e91e0729aec9 (diff) | |
download | upstream-3f1705d7770d6ff42f369ff7856fb047c8b78e42.tar.gz upstream-3f1705d7770d6ff42f369ff7856fb047c8b78e42.tar.bz2 upstream-3f1705d7770d6ff42f369ff7856fb047c8b78e42.zip |
bcm53xx: delete old kernel versions
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/bcm53xx/patches-4.1/090-mtd-nand-add-common-DT-init-code.patch')
-rw-r--r-- | target/linux/bcm53xx/patches-4.1/090-mtd-nand-add-common-DT-init-code.patch | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/target/linux/bcm53xx/patches-4.1/090-mtd-nand-add-common-DT-init-code.patch b/target/linux/bcm53xx/patches-4.1/090-mtd-nand-add-common-DT-init-code.patch deleted file mode 100644 index cb2141a4b9..0000000000 --- a/target/linux/bcm53xx/patches-4.1/090-mtd-nand-add-common-DT-init-code.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 5844feeaa4154d1c46d3462c7a4653d22356d8b4 Mon Sep 17 00:00:00 2001 -From: Brian Norris <computersforpeace@gmail.com> -Date: Fri, 23 Jan 2015 00:22:27 -0800 -Subject: [PATCH 20/32] mtd: nand: add common DT init code - -These are already-documented common bindings for NAND chips. Let's -handle them in nand_base. - -If NAND controller drivers need to act on this data before bringing up -the NAND chip (e.g., fill out ECC callback functions, change HW modes, -etc.), then they can do so between calling nand_scan_ident() and -nand_scan_tail(). - -Signed-off-by: Brian Norris <computersforpeace@gmail.com> ---- - drivers/mtd/nand/nand_base.c | 41 +++++++++++++++++++++++++++++++++++++++++ - include/linux/mtd/nand.h | 5 +++++ - 2 files changed, 46 insertions(+) - ---- a/drivers/mtd/nand/nand_base.c -+++ b/drivers/mtd/nand/nand_base.c -@@ -48,6 +48,7 @@ - #include <linux/leds.h> - #include <linux/io.h> - #include <linux/mtd/partitions.h> -+#include <linux/of_mtd.h> - - /* Define default oob placement schemes for large and small page devices */ - static struct nand_ecclayout nand_oob_8 = { -@@ -3798,6 +3799,39 @@ ident_done: - return type; - } - -+static int nand_dt_init(struct mtd_info *mtd, struct nand_chip *chip, -+ struct device_node *dn) -+{ -+ int ecc_mode, ecc_strength, ecc_step; -+ -+ if (of_get_nand_bus_width(dn) == 16) -+ chip->options |= NAND_BUSWIDTH_16; -+ -+ if (of_get_nand_on_flash_bbt(dn)) -+ chip->bbt_options |= NAND_BBT_USE_FLASH; -+ -+ ecc_mode = of_get_nand_ecc_mode(dn); -+ ecc_strength = of_get_nand_ecc_strength(dn); -+ ecc_step = of_get_nand_ecc_step_size(dn); -+ -+ if ((ecc_step >= 0 && !(ecc_strength >= 0)) || -+ (!(ecc_step >= 0) && ecc_strength >= 0)) { -+ pr_err("must set both strength and step size in DT\n"); -+ return -EINVAL; -+ } -+ -+ if (ecc_mode >= 0) -+ chip->ecc.mode = ecc_mode; -+ -+ if (ecc_strength >= 0) -+ chip->ecc.strength = ecc_strength; -+ -+ if (ecc_step > 0) -+ chip->ecc.size = ecc_step; -+ -+ return 0; -+} -+ - /** - * nand_scan_ident - [NAND Interface] Scan for the NAND device - * @mtd: MTD device structure -@@ -3815,6 +3849,13 @@ int nand_scan_ident(struct mtd_info *mtd - int i, nand_maf_id, nand_dev_id; - struct nand_chip *chip = mtd->priv; - struct nand_flash_dev *type; -+ int ret; -+ -+ if (chip->dn) { -+ ret = nand_dt_init(mtd, chip, chip->dn); -+ if (ret) -+ return ret; -+ } - - /* Set the default functions */ - nand_set_defaults(chip, chip->options & NAND_BUSWIDTH_16); ---- a/include/linux/mtd/nand.h -+++ b/include/linux/mtd/nand.h -@@ -26,6 +26,8 @@ - - struct mtd_info; - struct nand_flash_dev; -+struct device_node; -+ - /* Scan and identify a NAND device */ - extern int nand_scan(struct mtd_info *mtd, int max_chips); - /* -@@ -542,6 +544,7 @@ struct nand_buffers { - * flash device - * @IO_ADDR_W: [BOARDSPECIFIC] address to write the 8 I/O lines of the - * flash device. -+ * @dn: [BOARDSPECIFIC] device node describing this instance - * @read_byte: [REPLACEABLE] read one byte from the chip - * @read_word: [REPLACEABLE] read one word from the chip - * @write_byte: [REPLACEABLE] write a single byte to the chip on the -@@ -644,6 +647,8 @@ struct nand_chip { - void __iomem *IO_ADDR_R; - void __iomem *IO_ADDR_W; - -+ struct device_node *dn; -+ - uint8_t (*read_byte)(struct mtd_info *mtd); - u16 (*read_word)(struct mtd_info *mtd); - void (*write_byte)(struct mtd_info *mtd, uint8_t byte); |