Changeset 44721


Ignore:
Timestamp:
2015-03-13T04:00:51+01:00 (3 years ago)
Author:
nbd
Message:

atheros: v3.18: pass PCI IRQ and I/O mem via resources

Pass PCI IRQ and I/O memory ranges via platform device resources, this
change makes PCI controller driver independed from arch headers, so
also remove few includes.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/atheros/patches-3.18/105-ar2315_pci.patch

    r44720 r44721  
    1111--- /dev/null 
    1212+++ b/arch/mips/pci/pci-ar2315.c 
    13 @@ -0,0 +1,482 @@ 
     13@@ -0,0 +1,494 @@ 
    1414+/* 
    1515+ * This program is free software; you can redistribute it and/or 
     
    6161+#include <linux/io.h> 
    6262+#include <asm/paccess.h> 
    63 +#include <ath25_platform.h> 
    64 +#include <ar231x.h> 
    65 +#include <ar2315_regs.h> 
    6663+ 
    6764+/* 
     
    176173+       void __iomem *cfg_mem; 
    177174+       void __iomem *mmr_mem; 
     175+       unsigned irq; 
    178176+       struct pci_controller pci_ctrl; 
    179177+       struct resource mem_res; 
     
    394392+       } 
    395393+ 
    396 +       irq_set_chained_handler(AR2315_IRQ_LCBUS_PCI, ar2315_pci_irq_handler); 
    397 +       irq_set_handler_data(AR2315_IRQ_LCBUS_PCI, apc); 
     394+       irq_set_chained_handler(apc->irq, ar2315_pci_irq_handler); 
     395+       irq_set_handler_data(apc->irq, apc); 
    398396+ 
    399397+       /* Clear any pending Abort or external Interrupts 
     
    408406+       struct ar2315_pci_ctrl *apc; 
    409407+       struct device *dev = &pdev->dev; 
    410 +       int err; 
     408+       struct resource *res; 
     409+       int irq, err; 
    411410+ 
    412411+       apc = devm_kzalloc(dev, sizeof(*apc), GFP_KERNEL); 
     
    414413+               return -ENOMEM; 
    415414+ 
    416 +       apc->mmr_mem = devm_ioremap_nocache(dev, AR2315_PCI, AR2315_PCI_SIZE); 
    417 +       if (!apc->mmr_mem) 
    418 +               return -ENOMEM; 
     415+       irq = platform_get_irq(pdev, 0); 
     416+       if (irq < 0) 
     417+               return -EINVAL; 
     418+       apc->irq = irq; 
     419+ 
     420+       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, 
     421+                                          "ar2315-pci-ctrl"); 
     422+       apc->mmr_mem = devm_ioremap_resource(dev, res); 
     423+       if (IS_ERR(apc->mmr_mem)) 
     424+               return PTR_ERR(apc->mmr_mem); 
     425+ 
     426+       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, 
     427+                                          "ar2315-pci-ext"); 
     428+       if (!res) 
     429+               return -EINVAL; 
    419430+ 
    420431+       apc->mem_res.name = "AR2315 PCI mem space"; 
    421 +       apc->mem_res.start = AR2315_PCIEXT; 
    422 +       apc->mem_res.end = AR2315_PCIEXT + AR2315_PCIEXT_SZ - 1; 
     432+       apc->mem_res.parent = res; 
     433+       apc->mem_res.start = res->start; 
     434+       apc->mem_res.end = res->end; 
    423435+       apc->mem_res.flags = IORESOURCE_MEM; 
    424436+ 
    425437+       /* Remap PCI config space */ 
    426 +       apc->cfg_mem = devm_ioremap_nocache(dev, AR2315_PCIEXT, 
     438+       apc->cfg_mem = devm_ioremap_nocache(dev, res->start, 
    427439+                                           AR2315_PCI_CFG_SIZE); 
    428440+       if (!apc->cfg_mem) { 
     
    520532                do_IRQ(AR2315_IRQ_MISC_INTRS); 
    521533        else if (pending & CAUSEF_IP7) 
    522 @@ -427,4 +431,31 @@ void __init ar2315_arch_init(void) 
     534@@ -423,8 +427,60 @@ void __init ar2315_plat_mem_setup(void) 
     535        _machine_restart = ar2315_restart; 
     536 } 
     537  
     538+#ifdef CONFIG_PCI_AR2315 
     539+static struct resource ar2315_pci_res[] = { 
     540+       { 
     541+               .name = "ar2315-pci-ctrl", 
     542+               .flags = IORESOURCE_MEM, 
     543+               .start = AR2315_PCI, 
     544+               .end = AR2315_PCI + AR2315_PCI_SIZE - 1, 
     545+       }, 
     546+       { 
     547+               .name = "ar2315-pci-ext", 
     548+               .flags = IORESOURCE_MEM, 
     549+               .start = AR2315_PCIEXT, 
     550+               .end = AR2315_PCIEXT + AR2315_PCIEXT_SZ - 1, 
     551+       }, 
     552+       { 
     553+               .name = "ar2315-pci", 
     554+               .flags = IORESOURCE_IRQ, 
     555+               .start = AR2315_IRQ_LCBUS_PCI, 
     556+               .end = AR2315_IRQ_LCBUS_PCI, 
     557+       }, 
     558+}; 
     559+#endif 
     560+ 
     561 void __init ar2315_arch_init(void) 
    523562 { 
    524563        ath25_serial_setup(AR2315_UART0, AR2315_MISC_IRQ_UART0, 
     
    548587+                                AR2315_IF_PCI_CLK_SHIFT)); 
    549588+ 
    550 +               platform_device_register_simple("ar2315-pci", -1, NULL, 0); 
     589+               platform_device_register_simple("ar2315-pci", -1, 
     590+                                               ar2315_pci_res, 
     591+                                               ARRAY_SIZE(ar2315_pci_res)); 
    551592+       } 
    552593+#endif 
Note: See TracChangeset for help on using the changeset viewer.