diff options
Diffstat (limited to 'target/linux/ar71xx/patches-3.8/018-MIPS-pci-ar724x-remove-static-PCI-IO-MEM-resources.patch')
-rw-r--r-- | target/linux/ar71xx/patches-3.8/018-MIPS-pci-ar724x-remove-static-PCI-IO-MEM-resources.patch | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/target/linux/ar71xx/patches-3.8/018-MIPS-pci-ar724x-remove-static-PCI-IO-MEM-resources.patch b/target/linux/ar71xx/patches-3.8/018-MIPS-pci-ar724x-remove-static-PCI-IO-MEM-resources.patch deleted file mode 100644 index 823488aaa9..0000000000 --- a/target/linux/ar71xx/patches-3.8/018-MIPS-pci-ar724x-remove-static-PCI-IO-MEM-resources.patch +++ /dev/null @@ -1,139 +0,0 @@ -From d80b05d19c2772ded40403d578d8e90d38c85257 Mon Sep 17 00:00:00 2001 -From: Gabor Juhos <juhosg@openwrt.org> -Date: Sun, 3 Feb 2013 09:59:45 +0000 -Subject: [PATCH] MIPS: pci-ar724x: remove static PCI IO/MEM resources - -commit 34b134aebda89888b6985b7a3139e9cbdf209236 upstream. - -Static resources become impractical when multiple -PCI controllers are present. Move the resources -into the platform device registration code and -change the probe routine to get those from there -platform device's resources. - -Signed-off-by: Gabor Juhos <juhosg@openwrt.org> -Patchwork: http://patchwork.linux-mips.org/patch/4914/ -Signed-off-by: John Crispin <blogic@openwrt.org> ---- - arch/mips/ath79/pci.c | 21 ++++++++++++++++++++- - arch/mips/pci/pci-ar724x.c | 40 ++++++++++++++++++++++++---------------- - 2 files changed, 44 insertions(+), 17 deletions(-) - ---- a/arch/mips/ath79/pci.c -+++ b/arch/mips/ath79/pci.c -@@ -139,10 +139,13 @@ static struct platform_device * - ath79_register_pci_ar724x(int id, - unsigned long cfg_base, - unsigned long ctrl_base, -+ unsigned long mem_base, -+ unsigned long mem_size, -+ unsigned long io_base, - int irq) - { - struct platform_device *pdev; -- struct resource res[3]; -+ struct resource res[5]; - - memset(res, 0, sizeof(res)); - -@@ -160,6 +163,16 @@ ath79_register_pci_ar724x(int id, - res[2].start = irq; - res[2].end = irq; - -+ res[3].name = "mem_base"; -+ res[3].flags = IORESOURCE_MEM; -+ res[3].start = mem_base; -+ res[3].end = mem_base + mem_size - 1; -+ -+ res[4].name = "io_base"; -+ res[4].flags = IORESOURCE_IO; -+ res[4].start = io_base; -+ res[4].end = io_base; -+ - pdev = platform_device_register_simple("ar724x-pci", id, - res, ARRAY_SIZE(res)); - return pdev; -@@ -175,6 +188,9 @@ int __init ath79_register_pci(void) - pdev = ath79_register_pci_ar724x(-1, - AR724X_PCI_CFG_BASE, - AR724X_PCI_CTRL_BASE, -+ AR724X_PCI_MEM_BASE, -+ AR724X_PCI_MEM_SIZE, -+ 0, - ATH79_CPU_IRQ_IP2); - } else if (soc_is_ar9342() || - soc_is_ar9344()) { -@@ -187,6 +203,9 @@ int __init ath79_register_pci(void) - pdev = ath79_register_pci_ar724x(-1, - AR724X_PCI_CFG_BASE, - AR724X_PCI_CTRL_BASE, -+ AR724X_PCI_MEM_BASE, -+ AR724X_PCI_MEM_SIZE, -+ 0, - ATH79_IP2_IRQ(0)); - } else { - /* No PCI support */ ---- a/arch/mips/pci/pci-ar724x.c -+++ b/arch/mips/pci/pci-ar724x.c -@@ -42,6 +42,8 @@ struct ar724x_pci_controller { - spinlock_t lock; - - struct pci_controller pci_controller; -+ struct resource io_res; -+ struct resource mem_res; - }; - - static inline bool ar724x_pci_check_link(struct ar724x_pci_controller *apc) -@@ -190,20 +192,6 @@ static struct pci_ops ar724x_pci_ops = { - .write = ar724x_pci_write, - }; - --static struct resource ar724x_io_resource = { -- .name = "PCI IO space", -- .start = 0, -- .end = 0, -- .flags = IORESOURCE_IO, --}; -- --static struct resource ar724x_mem_resource = { -- .name = "PCI memory space", -- .start = AR724X_PCI_MEM_BASE, -- .end = AR724X_PCI_MEM_BASE + AR724X_PCI_MEM_SIZE - 1, -- .flags = IORESOURCE_MEM, --}; -- - static void ar724x_pci_irq_handler(unsigned int irq, struct irq_desc *desc) - { - struct ar724x_pci_controller *apc; -@@ -331,9 +319,29 @@ static int ar724x_pci_probe(struct platf - - spin_lock_init(&apc->lock); - -+ res = platform_get_resource_byname(pdev, IORESOURCE_IO, "io_base"); -+ if (!res) -+ return -EINVAL; -+ -+ apc->io_res.parent = res; -+ apc->io_res.name = "PCI IO space"; -+ apc->io_res.start = res->start; -+ apc->io_res.end = res->end; -+ apc->io_res.flags = IORESOURCE_IO; -+ -+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mem_base"); -+ if (!res) -+ return -EINVAL; -+ -+ apc->mem_res.parent = res; -+ apc->mem_res.name = "PCI memory space"; -+ apc->mem_res.start = res->start; -+ apc->mem_res.end = res->end; -+ apc->mem_res.flags = IORESOURCE_MEM; -+ - apc->pci_controller.pci_ops = &ar724x_pci_ops; -- apc->pci_controller.io_resource = &ar724x_io_resource; -- apc->pci_controller.mem_resource = &ar724x_mem_resource; -+ apc->pci_controller.io_resource = &apc->io_res; -+ apc->pci_controller.mem_resource = &apc->mem_res; - - apc->link_up = ar724x_pci_check_link(apc); - if (!apc->link_up) |