diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2015-12-06 17:00:48 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2015-12-06 17:09:16 +0100 |
commit | 7206a10548e457fc7ef77437b1502267262a493c (patch) | |
tree | e68d19b63921741f7393ee88a6cf0cca79de8d6f /target/mips/mikrotik-rb4xx/patches/4.1.10/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch | |
parent | c547cbdb58018f37949f12c360d1ead8198d135a (diff) |
ath79 board support
Use full OpenWrt patch for it, as it works better on 4.1.13
kernel. Deduplicate the patches for atheros devices.
Diffstat (limited to 'target/mips/mikrotik-rb4xx/patches/4.1.10/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch')
-rw-r--r-- | target/mips/mikrotik-rb4xx/patches/4.1.10/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/target/mips/mikrotik-rb4xx/patches/4.1.10/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch b/target/mips/mikrotik-rb4xx/patches/4.1.10/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch deleted file mode 100644 index c63489112..000000000 --- a/target/mips/mikrotik-rb4xx/patches/4.1.10/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 0c139cb15774f3c41a0cf6620727e676c874834a Mon Sep 17 00:00:00 2001 -From: Phil Sutter <phil@nwl.cc> -Date: Tue, 13 May 2014 00:28:24 +0200 -Subject: [PATCH] mips: ath79: swizzle PCI address for ar71xx - ---- - arch/mips/ath79/pci.c | 42 ++++++++++++++++++++++++++ - arch/mips/include/asm/mach-ath79/mangle-port.h | 37 +++++++++++++++++++++++ - 2 files changed, 79 insertions(+) - create mode 100644 arch/mips/include/asm/mach-ath79/mangle-port.h - -diff --git a/arch/mips/ath79/pci.c b/arch/mips/ath79/pci.c -index 730c0b0..47be58c 100644 ---- a/arch/mips/ath79/pci.c -+++ b/arch/mips/ath79/pci.c -@@ -13,6 +13,7 @@ - */ - - #include <linux/init.h> -+#include <linux/export.h> - #include <linux/pci.h> - #include <linux/resource.h> - #include <linux/platform_device.h> -@@ -25,6 +26,9 @@ static int (*ath79_pci_plat_dev_init)(struct pci_dev *dev); - static const struct ath79_pci_irq *ath79_pci_irq_map __initdata; - static unsigned ath79_pci_nr_irqs __initdata; - -+static unsigned long (*__ath79_pci_swizzle_b)(unsigned long port); -+static unsigned long (*__ath79_pci_swizzle_w)(unsigned long port); -+ - static const struct ath79_pci_irq ar71xx_pci_irq_map[] __initconst = { - { - .slot = 17, -@@ -212,12 +216,50 @@ ath79_register_pci_ar724x(int id, - return pdev; - } - -+static inline bool ar71xx_is_pci_addr(unsigned long port) -+{ -+ unsigned long phys = CPHYSADDR(port); -+ -+ return (phys >= AR71XX_PCI_MEM_BASE && -+ phys < AR71XX_PCI_MEM_BASE + AR71XX_PCI_MEM_SIZE); -+} -+ -+static unsigned long ar71xx_pci_swizzle_b(unsigned long port) -+{ -+ return ar71xx_is_pci_addr(port) ? port ^ 3 : port; -+} -+ -+static unsigned long ar71xx_pci_swizzle_w(unsigned long port) -+{ -+ return ar71xx_is_pci_addr(port) ? port ^ 2 : port; -+} -+ -+unsigned long ath79_pci_swizzle_b(unsigned long port) -+{ -+ if (__ath79_pci_swizzle_b) -+ return __ath79_pci_swizzle_b(port); -+ -+ return port; -+} -+EXPORT_SYMBOL(ath79_pci_swizzle_b); -+ -+unsigned long ath79_pci_swizzle_w(unsigned long port) -+{ -+ if (__ath79_pci_swizzle_w) -+ return __ath79_pci_swizzle_w(port); -+ -+ return port; -+} -+EXPORT_SYMBOL(ath79_pci_swizzle_w); -+ - int __init ath79_register_pci(void) - { - struct platform_device *pdev = NULL; - - if (soc_is_ar71xx()) { - pdev = ath79_register_pci_ar71xx(); -+ __ath79_pci_swizzle_b = ar71xx_pci_swizzle_b; -+ __ath79_pci_swizzle_w = ar71xx_pci_swizzle_w; - } else if (soc_is_ar724x()) { - pdev = ath79_register_pci_ar724x(-1, - AR724X_PCI_CFG_BASE, -diff --git a/arch/mips/include/asm/mach-ath79/mangle-port.h b/arch/mips/include/asm/mach-ath79/mangle-port.h -new file mode 100644 -index 0000000..ffd4e20 ---- /dev/null -+++ b/arch/mips/include/asm/mach-ath79/mangle-port.h -@@ -0,0 +1,37 @@ -+/* -+ * Copyright (C) 2012 Gabor Juhos <juhosg@openwrt.org> -+ * -+ * This file was derived from: inlude/asm-mips/mach-generic/mangle-port.h -+ * Copyright (C) 2003, 2004 Ralf Baechle -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 as published -+ * by the Free Software Foundation. -+ */ -+ -+#ifndef __ASM_MACH_ATH79_MANGLE_PORT_H -+#define __ASM_MACH_ATH79_MANGLE_PORT_H -+ -+#ifdef CONFIG_PCI -+extern unsigned long (ath79_pci_swizzle_b)(unsigned long port); -+extern unsigned long (ath79_pci_swizzle_w)(unsigned long port); -+#else -+#define ath79_pci_swizzle_b(port) (port) -+#define ath79_pci_swizzle_w(port) (port) -+#endif -+ -+#define __swizzle_addr_b(port) ath79_pci_swizzle_b(port) -+#define __swizzle_addr_w(port) ath79_pci_swizzle_w(port) -+#define __swizzle_addr_l(port) (port) -+#define __swizzle_addr_q(port) (port) -+ -+# define ioswabb(a, x) (x) -+# define __mem_ioswabb(a, x) (x) -+# define ioswabw(a, x) (x) -+# define __mem_ioswabw(a, x) cpu_to_le16(x) -+# define ioswabl(a, x) (x) -+# define __mem_ioswabl(a, x) cpu_to_le32(x) -+# define ioswabq(a, x) (x) -+# define __mem_ioswabq(a, x) cpu_to_le64(x) -+ -+#endif /* __ASM_MACH_ATH79_MANGLE_PORT_H */ --- -1.8.5.3 - |