diff options
Diffstat (limited to 'target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch b/target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch deleted file mode 100644 index 482aa49..0000000 --- a/target/linux/brcm47xx/patches-3.18/031-12-MIPS-BCM47xx-Add-generic-function-filling-SPROM-entr.patch +++ /dev/null @@ -1,80 +0,0 @@ -From d55a52ccf8f80cdf51af2c5c6e56c825f98c4f85 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> -Date: Thu, 2 Apr 2015 09:13:49 +0200 -Subject: [PATCH] MIPS: BCM47xx: Add generic function filling SPROM entries -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Handling many SPROM revisions became messy, we have tons of functions -specific to various revision groups which are quite hard to track. -For years there is yet another revision 11 asking for support, but -adding it in current the form would make things even worse. -To resolve this problem let's add new function with table-like entries -that will contain revision bitmask for every SPROM variable. - -Signed-off-by: Rafał Miłecki <zajec5@gmail.com> -Cc: linux-mips@linux-mips.org -Cc: Hauke Mehrtens <hauke@hauke-m.de> -Cc: Jonas Gorski <jonas.gorski@gmail.com> -Patchwork: https://patchwork.linux-mips.org/patch/9659/ -Signed-off-by: Ralf Baechle <ralf@linux-mips.org> ---- - arch/mips/bcm47xx/sprom.c | 32 +++++++++++++++++++++++++++++--- - 1 file changed, 29 insertions(+), 3 deletions(-) - ---- a/arch/mips/bcm47xx/sprom.c -+++ b/arch/mips/bcm47xx/sprom.c -@@ -180,6 +180,33 @@ static void nvram_read_alpha2(const char - memcpy(val, buf, 2); - } - -+/* This is one-function-only macro, it uses local "sprom" variable! */ -+#define ENTRY(_revmask, _type, _prefix, _name, _val, _allset, _fallback) \ -+ if (_revmask & BIT(sprom->revision)) \ -+ nvram_read_ ## _type(_prefix, NULL, _name, &sprom->_val, \ -+ _allset, _fallback) -+/* -+ * Special version of filling function that can be safely called for any SPROM -+ * revision. For every NVRAM to SPROM mapping it contains bitmask of revisions -+ * for which the mapping is valid. -+ * It obviously requires some hexadecimal/bitmasks knowledge, but allows -+ * writing cleaner code (easy revisions handling). -+ * Note that while SPROM revision 0 was never used, we still keep BIT(0) -+ * reserved for it, just to keep numbering sane. -+ */ -+static void bcm47xx_sprom_fill_auto(struct ssb_sprom *sprom, -+ const char *prefix, bool fallback) -+{ -+ const char *pre = prefix; -+ bool fb = fallback; -+ -+ ENTRY(0xfffffffe, u16, pre, "boardrev", board_rev, 0, true); -+ ENTRY(0xfffffffe, u16, pre, "boardnum", board_num, 0, fb); -+ -+ /* TODO: Move more mappings here */ -+} -+#undef ENTRY /* It's specififc, uses local variable, don't use it (again). */ -+ - static void bcm47xx_fill_sprom_r1234589(struct ssb_sprom *sprom, - const char *prefix, bool fallback) - { -@@ -714,9 +741,6 @@ static void bcm47xx_fill_sprom_ethernet( - static void bcm47xx_fill_board_data(struct ssb_sprom *sprom, const char *prefix, - bool fallback) - { -- nvram_read_u16(prefix, NULL, "boardrev", &sprom->board_rev, 0, true); -- nvram_read_u16(prefix, NULL, "boardnum", &sprom->board_num, 0, -- fallback); - nvram_read_u16(prefix, NULL, "boardtype", &sprom->board_type, 0, true); - nvram_read_u32_2(prefix, "boardflags", &sprom->boardflags_lo, - &sprom->boardflags_hi, fallback); -@@ -787,6 +811,8 @@ void bcm47xx_fill_sprom(struct ssb_sprom - bcm47xx_fill_sprom_r12389(sprom, prefix, fallback); - bcm47xx_fill_sprom_r1(sprom, prefix, fallback); - } -+ -+ bcm47xx_sprom_fill_auto(sprom, prefix, fallback); - } - - #ifdef CONFIG_BCM47XX_SSB |