Changeset 42506


Ignore:
Timestamp:
2014-09-12T08:53:33+02:00 (3 years ago)
Author:
blogic
Message:

atheros: ar2315-pci: convert to platform driver

Convert the PCI controller support code to platform driver and move it to
appropriate subdirectory.

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

File:
1 edited

Legend:

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

    r42505 r42506  
    1 --- a/arch/mips/ar231x/Makefile 
    2 +++ b/arch/mips/ar231x/Makefile 
    3 @@ -14,3 +14,5 @@ obj-$(CONFIG_EARLY_PRINTK) += early_prin 
     1--- a/arch/mips/pci/Makefile 
     2+++ b/arch/mips/pci/Makefile 
     3@@ -19,6 +19,7 @@ obj-$(CONFIG_BCM47XX)         += pci-bcm47xx.o 
     4 obj-$(CONFIG_BCM63XX)          += pci-bcm63xx.o fixup-bcm63xx.o \ 
     5                                        ops-bcm63xx.o 
     6 obj-$(CONFIG_MIPS_ALCHEMY)     += pci-alchemy.o 
     7+obj-$(CONFIG_PCI_AR2315)       += pci-ar2315.o 
     8 obj-$(CONFIG_SOC_AR71XX)       += pci-ar71xx.o 
     9 obj-$(CONFIG_PCI_AR724X)       += pci-ar724x.o 
    410  
    5  obj-$(CONFIG_ATHEROS_AR5312) += ar5312.o 
    6  obj-$(CONFIG_ATHEROS_AR2315) += ar2315.o 
    7 +obj-$(CONFIG_PCI_AR2315) += pci.o 
    8 + 
    911--- /dev/null 
    10 +++ b/arch/mips/ar231x/pci.c 
    11 @@ -0,0 +1,340 @@ 
     12+++ b/arch/mips/pci/pci-ar2315.c 
     13@@ -0,0 +1,345 @@ 
    1214+/* 
    1315+ * This program is free software; you can redistribute it and/or 
     
    5153+#include <linux/types.h> 
    5254+#include <linux/pci.h> 
     55+#include <linux/platform_device.h> 
    5356+#include <linux/kernel.h> 
    5457+#include <linux/init.h> 
     
    6164+#include <ar231x.h> 
    6265+#include <ar2315_regs.h> 
    63 +#include "devices.h" 
    6466+ 
    6567+/* Arbitrary size of memory region to access the configuration space */ 
     
    179181+}; 
    180182+ 
    181 +int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 
    182 +{ 
    183 +       return AR2315_PCI_IRQ_EXT; 
    184 +} 
    185 + 
    186 +int pcibios_plat_dev_init(struct pci_dev *dev) 
    187 +{ 
    188 +       return 0; 
    189 +} 
    190 + 
    191183+static int ar2315_pci_host_setup(void) 
    192184+{ 
     
    282274+} 
    283275+ 
    284 +static int __init 
    285 +ar2315_pci_init(void) 
    286 +{ 
     276+static int ar2315_pci_probe(struct platform_device *pdev) 
     277+{ 
     278+       struct device *dev = &pdev->dev; 
    287279+       u32 reg; 
    288280+       int res; 
    289281+ 
    290 +       if (ar231x_devtype != DEV_TYPE_AR2315) 
    291 +               return -ENODEV; 
    292 + 
    293282+       /* Remap PCI config space */ 
    294 +       ar2315_pci_cfg_mem = ioremap_nocache(AR2315_PCIEXT, 
    295 +                                            AR2315_PCI_CFG_SIZE); 
     283+       ar2315_pci_cfg_mem = devm_ioremap_nocache(dev, AR2315_PCIEXT, 
     284+                                                 AR2315_PCI_CFG_SIZE); 
    296285+       if (!ar2315_pci_cfg_mem) { 
    297 +               pr_err("ar2315-pci: failed to remap PCI config space\n"); 
     286+               dev_err(dev, "failed to remap PCI config space\n"); 
    298287+               return -ENOMEM; 
    299288+       } 
     
    336325+       res = ar2315_pci_host_setup(); 
    337326+       if (res) 
    338 +               goto error; 
     327+               return res; 
    339328+ 
    340329+       ar2315_pci_irq_init(); 
     
    343332+ 
    344333+       return 0; 
    345 + 
    346 +error: 
    347 +       iounmap(ar2315_pci_cfg_mem); 
    348 +       return res; 
    349 +} 
    350 + 
     334+} 
     335+ 
     336+static struct platform_driver ar2315_pci_driver = { 
     337+       .probe = ar2315_pci_probe, 
     338+       .driver = { 
     339+               .name = "ar2315-pci", 
     340+               .owner = THIS_MODULE, 
     341+       }, 
     342+}; 
     343+ 
     344+static int __init ar2315_pci_init(void) 
     345+{ 
     346+       return platform_driver_register(&ar2315_pci_driver); 
     347+} 
    351348+arch_initcall(ar2315_pci_init); 
     349+ 
     350+int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 
     351+{ 
     352+       return AR2315_PCI_IRQ_EXT; 
     353+} 
     354+ 
     355+int pcibios_plat_dev_init(struct pci_dev *dev) 
     356+{ 
     357+       return 0; 
     358+} 
    352359--- a/arch/mips/ar231x/Kconfig 
    353360+++ b/arch/mips/ar231x/Kconfig 
     
    376383                do_IRQ(AR2315_IRQ_MISC_INTRS); 
    377384        else if (pending & CAUSEF_IP7) 
     385@@ -554,3 +558,18 @@ ar2315_plat_setup(void) 
     386        ar231x_serial_setup(AR2315_UART0, AR2315_MISC_IRQ_UART0, 
     387                            ar2315_apb_frequency()); 
     388 } 
     389+ 
     390+#ifdef CONFIG_PCI_AR2315 
     391+static int __init ar2315_pci_init(void) 
     392+{ 
     393+       struct platform_device *pdev; 
     394+ 
     395+       if (!is_2315() || ar231x_devtype != DEV_TYPE_AR2315) 
     396+               return -ENODEV; 
     397+ 
     398+       pdev = platform_device_register_simple("ar2315-pci", -1, NULL, 0); 
     399+ 
     400+       return pdev ? 0 : -ENODEV; 
     401+} 
     402+arch_initcall(ar2315_pci_init); 
     403+#endif 
Note: See TracChangeset for help on using the changeset viewer.