From 5c105d9f3fd086aff195d3849dcf847d6b0bd927 Mon Sep 17 00:00:00 2001 From: blogic Date: Fri, 5 Oct 2012 10:12:53 +0000 Subject: branch Attitude Adjustment git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...79-add-a-common-PCI-registration-function.patch | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 target/linux/ar71xx/patches-3.3/103-MIPS-ath79-add-a-common-PCI-registration-function.patch (limited to 'target/linux/ar71xx/patches-3.3/103-MIPS-ath79-add-a-common-PCI-registration-function.patch') diff --git a/target/linux/ar71xx/patches-3.3/103-MIPS-ath79-add-a-common-PCI-registration-function.patch b/target/linux/ar71xx/patches-3.3/103-MIPS-ath79-add-a-common-PCI-registration-function.patch new file mode 100644 index 000000000..34587b63a --- /dev/null +++ b/target/linux/ar71xx/patches-3.3/103-MIPS-ath79-add-a-common-PCI-registration-function.patch @@ -0,0 +1,78 @@ +From e3edaac2e967f07ae3b726e64e1c290233361bc7 Mon Sep 17 00:00:00 2001 +From: Gabor Juhos +Date: Wed, 14 Mar 2012 10:29:24 +0100 +Subject: [PATCH 08/47] MIPS: ath79: add a common PCI registration function + +The current code unconditionally registers the AR724X +specific PCI controller, even if the kernel is running +on a different SoC. + +Add a common function for PCI controller registration, +and only register the AR724X PCI controller if the kernel +is running on an AR724X SoC. + +Signed-off-by: Gabor Juhos +Cc: linux-mips@linux-mips.org +Patchwork: https://patchwork.linux-mips.org/patch/3488/ +Signed-off-by: Ralf Baechle +--- + arch/mips/ath79/mach-ubnt-xm.c | 1 + + arch/mips/ath79/pci.c | 10 ++++++++++ + arch/mips/ath79/pci.h | 6 ++++++ + arch/mips/pci/pci-ath724x.c | 2 -- + 4 files changed, 17 insertions(+), 2 deletions(-) + +--- a/arch/mips/ath79/mach-ubnt-xm.c ++++ b/arch/mips/ath79/mach-ubnt-xm.c +@@ -111,6 +111,7 @@ static void __init ubnt_xm_init(void) + ath724x_pci_add_data(ubnt_xm_pci_data, ARRAY_SIZE(ubnt_xm_pci_data)); + #endif /* CONFIG_PCI */ + ++ ath79_register_pci(); + } + + MIPS_MACHINE(ATH79_MACH_UBNT_XM, +--- a/arch/mips/ath79/pci.c ++++ b/arch/mips/ath79/pci.c +@@ -9,6 +9,8 @@ + */ + + #include ++#include ++#include + #include "pci.h" + + static struct ath724x_pci_data *pci_data; +@@ -44,3 +46,11 @@ int pcibios_plat_dev_init(struct pci_dev + + return PCIBIOS_SUCCESSFUL; + } ++ ++int __init ath79_register_pci(void) ++{ ++ if (soc_is_ar724x()) ++ return ath724x_pcibios_init(); ++ ++ return -ENODEV; ++} +--- a/arch/mips/ath79/pci.h ++++ b/arch/mips/ath79/pci.h +@@ -18,4 +18,10 @@ struct ath724x_pci_data { + + void ath724x_pci_add_data(struct ath724x_pci_data *data, int size); + ++#ifdef CONFIG_PCI ++int ath79_register_pci(void); ++#else ++static inline int ath79_register_pci(void) { return 0; } ++#endif ++ + #endif /* __ASM_MACH_ATH79_PCI_ATH724X_H */ +--- a/arch/mips/pci/pci-ath724x.c ++++ b/arch/mips/pci/pci-ath724x.c +@@ -137,5 +137,3 @@ int __init ath724x_pcibios_init(void) + + return PCIBIOS_SUCCESSFUL; + } +- +-arch_initcall(ath724x_pcibios_init); -- cgit v1.2.3