diff options
Diffstat (limited to 'target/linux/mvebu/patches-3.10/0184-of-irq-Replace-of_irq-with-of_phandle_args.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.10/0184-of-irq-Replace-of_irq-with-of_phandle_args.patch | 486 |
1 files changed, 0 insertions, 486 deletions
diff --git a/target/linux/mvebu/patches-3.10/0184-of-irq-Replace-of_irq-with-of_phandle_args.patch b/target/linux/mvebu/patches-3.10/0184-of-irq-Replace-of_irq-with-of_phandle_args.patch deleted file mode 100644 index f22da5fa90..0000000000 --- a/target/linux/mvebu/patches-3.10/0184-of-irq-Replace-of_irq-with-of_phandle_args.patch +++ /dev/null @@ -1,486 +0,0 @@ -From 1baf727ee1d863a0eacd249cff6afc99022593c2 Mon Sep 17 00:00:00 2001 -From: Grant Likely <grant.likely@linaro.org> -Date: Thu, 19 Dec 2013 09:30:55 -0300 -Subject: [PATCH 184/203] of/irq: Replace of_irq with of_phandle_args - -struct of_irq and struct of_phandle_args are exactly the same structure. -This patch makes the kernel use of_phandle_args everywhere. This in -itself isn't a big deal, but it makes some follow-on patches simpler. - -Signed-off-by: Grant Likely <grant.likely@linaro.org> -Acked-by: Michal Simek <monstr@monstr.eu> -Acked-by: Tony Lindgren <tony@atomide.com> -Cc: Russell King <linux@arm.linux.org.uk> -Cc: Ralf Baechle <ralf@linux-mips.org> -Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> - -Conflicts: - arch/mips/pci/pci-rt3883.c ---- - arch/arm/mach-integrator/pci_v3.c | 5 ++--- - arch/microblaze/pci/pci-common.c | 9 ++++----- - arch/mips/pci/fixup-lantiq.c | 5 ++--- - arch/powerpc/kernel/pci-common.c | 9 ++++----- - arch/powerpc/platforms/cell/celleb_scc_pciex.c | 5 ++--- - arch/powerpc/platforms/cell/celleb_scc_sio.c | 5 ++--- - arch/powerpc/platforms/cell/spider-pic.c | 6 +++--- - arch/powerpc/platforms/cell/spu_manage.c | 12 ++++++------ - arch/powerpc/platforms/fsl_uli1575.c | 8 +++----- - arch/powerpc/platforms/powermac/pic.c | 8 ++++---- - arch/powerpc/platforms/pseries/event_sources.c | 7 +++---- - arch/powerpc/sysdev/mpic_msi.c | 6 +++--- - arch/x86/kernel/devicetree.c | 5 ++--- - drivers/of/irq.c | 15 +++++++-------- - drivers/of/of_pci_irq.c | 2 +- - drivers/pci/host/pci-mvebu.c | 5 ++--- - include/linux/of_irq.h | 24 ++++-------------------- - include/linux/of_pci.h | 4 ++-- - 18 files changed, 56 insertions(+), 84 deletions(-) - ---- a/arch/arm/mach-integrator/pci_v3.c -+++ b/arch/arm/mach-integrator/pci_v3.c -@@ -684,7 +684,7 @@ static struct hw_pci pci_v3 __initdata = - - static int __init pci_v3_map_irq_dt(const struct pci_dev *dev, u8 slot, u8 pin) - { -- struct of_irq oirq; -+ struct of_phandle_args oirq; - int ret; - - ret = of_irq_parse_pci(dev, &oirq); -@@ -694,8 +694,7 @@ static int __init pci_v3_map_irq_dt(cons - return 0; - } - -- return irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - } - - static int __init pci_v3_dtprobe(struct platform_device *pdev, ---- a/arch/microblaze/pci/pci-common.c -+++ b/arch/microblaze/pci/pci-common.c -@@ -199,7 +199,7 @@ void pcibios_set_master(struct pci_dev * - */ - int pci_read_irq_line(struct pci_dev *pci_dev) - { -- struct of_irq oirq; -+ struct of_phandle_args oirq; - unsigned int virq; - - /* The current device-tree that iSeries generates from the HV -@@ -243,11 +243,10 @@ int pci_read_irq_line(struct pci_dev *pc - irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW); - } else { - pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", -- oirq.size, oirq.specifier[0], oirq.specifier[1], -- of_node_full_name(oirq.controller)); -+ oirq.args_count, oirq.args[0], oirq.args[1], -+ of_node_full_name(oirq.np)); - -- virq = irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - } - if (!virq) { - pr_debug(" Failed to map !\n"); ---- a/arch/mips/pci/fixup-lantiq.c -+++ b/arch/mips/pci/fixup-lantiq.c -@@ -25,7 +25,7 @@ int pcibios_plat_dev_init(struct pci_dev - - int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) - { -- struct of_irq dev_irq; -+ struct of_phandle_args dev_irq; - int irq; - - if (of_irq_parse_pci(dev, &dev_irq)) { -@@ -33,8 +33,7 @@ int __init pcibios_map_irq(const struct - slot, pin); - return 0; - } -- irq = irq_create_of_mapping(dev_irq.controller, dev_irq.specifier, -- dev_irq.size); -+ irq = irq_create_of_mapping(dev_irq.np, dev_irq.args, dev_irq.args_count); - dev_info(&dev->dev, "SLOT:%d PIN:%d IRQ:%d\n", slot, pin, irq); - return irq; - } ---- a/arch/powerpc/kernel/pci-common.c -+++ b/arch/powerpc/kernel/pci-common.c -@@ -228,7 +228,7 @@ int pcibios_add_platform_entries(struct - */ - static int pci_read_irq_line(struct pci_dev *pci_dev) - { -- struct of_irq oirq; -+ struct of_phandle_args oirq; - unsigned int virq; - - pr_debug("PCI: Try to map irq for %s...\n", pci_name(pci_dev)); -@@ -263,11 +263,10 @@ static int pci_read_irq_line(struct pci_ - irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW); - } else { - pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", -- oirq.size, oirq.specifier[0], oirq.specifier[1], -- of_node_full_name(oirq.controller)); -+ oirq.args_count, oirq.args[0], oirq.args[1], -+ of_node_full_name(oirq.np)); - -- virq = irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - } - if(virq == NO_IRQ) { - pr_debug(" Failed to map !\n"); ---- a/arch/powerpc/platforms/cell/celleb_scc_pciex.c -+++ b/arch/powerpc/platforms/cell/celleb_scc_pciex.c -@@ -486,7 +486,7 @@ static __init int celleb_setup_pciex(str - struct pci_controller *phb) - { - struct resource r; -- struct of_irq oirq; -+ struct of_phandle_args oirq; - int virq; - - /* SMMIO registers; used inside this file */ -@@ -511,8 +511,7 @@ static __init int celleb_setup_pciex(str - pr_err("PCIEXC:Failed to map irq\n"); - goto error; - } -- virq = irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - if (request_irq(virq, pciex_handle_internal_irq, - 0, "pciex", (void *)phb)) { - pr_err("PCIEXC:Failed to request irq\n"); ---- a/arch/powerpc/platforms/cell/celleb_scc_sio.c -+++ b/arch/powerpc/platforms/cell/celleb_scc_sio.c -@@ -45,7 +45,7 @@ static int __init txx9_serial_init(void) - struct device_node *node; - int i; - struct uart_port req; -- struct of_irq irq; -+ struct of_phandle_args irq; - struct resource res; - - for_each_compatible_node(node, "serial", "toshiba,sio-scc") { -@@ -66,8 +66,7 @@ static int __init txx9_serial_init(void) - #ifdef CONFIG_SERIAL_TXX9_CONSOLE - req.membase = ioremap(req.mapbase, 0x24); - #endif -- req.irq = irq_create_of_mapping(irq.controller, -- irq.specifier, irq.size); -+ req.irq = irq_create_of_mapping(irq.np, irq.args, irq.args_count); - req.flags |= UPF_IOREMAP | UPF_BUGGY_UART - /*HAVE_CTS_LINE*/; - req.uartclk = 83300000; ---- a/arch/powerpc/platforms/cell/spider-pic.c -+++ b/arch/powerpc/platforms/cell/spider-pic.c -@@ -235,10 +235,10 @@ static unsigned int __init spider_find_c - /* First, we check whether we have a real "interrupts" in the device - * tree in case the device-tree is ever fixed - */ -- struct of_irq oirq; -+ struct of_phandle_args oirq; - if (of_irq_parse_one(pic->host->of_node, 0, &oirq) == 0) { -- virq = irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ virq = irq_create_of_mapping(oirq.np, oirq.args, -+ oirq.args_count); - return virq; - } - ---- a/arch/powerpc/platforms/cell/spu_manage.c -+++ b/arch/powerpc/platforms/cell/spu_manage.c -@@ -177,7 +177,7 @@ out: - - static int __init spu_map_interrupts(struct spu *spu, struct device_node *np) - { -- struct of_irq oirq; -+ struct of_phandle_args oirq; - int ret; - int i; - -@@ -188,10 +188,10 @@ static int __init spu_map_interrupts(str - goto err; - } - ret = -EINVAL; -- pr_debug(" irq %d no 0x%x on %s\n", i, oirq.specifier[0], -- oirq.controller->full_name); -- spu->irqs[i] = irq_create_of_mapping(oirq.controller, -- oirq.specifier, oirq.size); -+ pr_debug(" irq %d no 0x%x on %s\n", i, oirq.args[0], -+ oirq.np->full_name); -+ spu->irqs[i] = irq_create_of_mapping(oirq.np, -+ oirq.args, oirq.args_count); - if (spu->irqs[i] == NO_IRQ) { - pr_debug("spu_new: failed to map it !\n"); - goto err; -@@ -200,7 +200,7 @@ static int __init spu_map_interrupts(str - return 0; - - err: -- pr_debug("failed to map irq %x for spu %s\n", *oirq.specifier, -+ pr_debug("failed to map irq %x for spu %s\n", *oirq.args, - spu->name); - for (; i >= 0; i--) { - if (spu->irqs[i] != NO_IRQ) ---- a/arch/powerpc/platforms/fsl_uli1575.c -+++ b/arch/powerpc/platforms/fsl_uli1575.c -@@ -321,8 +321,8 @@ static void hpcd_final_uli5288(struct pc - { - struct pci_controller *hose = pci_bus_to_host(dev->bus); - struct device_node *hosenode = hose ? hose->dn : NULL; -- struct of_irq oirq; -- int virq, pin = 2; -+ struct of_phandle_args oirq; -+ int pin = 2; - u32 laddr[3]; - - if (!machine_is(mpc86xx_hpcd)) -@@ -334,9 +334,7 @@ static void hpcd_final_uli5288(struct pc - laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8); - laddr[1] = laddr[2] = 0; - of_irq_parse_raw(hosenode, &pin, 1, laddr, &oirq); -- virq = irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -- dev->irq = virq; -+ dev->irq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - } - - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, hpcd_quirk_uli1575); ---- a/arch/powerpc/platforms/powermac/pic.c -+++ b/arch/powerpc/platforms/powermac/pic.c -@@ -394,7 +394,7 @@ static void __init pmac_pic_probe_oldsty - } - - int of_irq_parse_oldworld(struct device_node *device, int index, -- struct of_irq *out_irq) -+ struct of_phandle_args *out_irq) - { - const u32 *ints = NULL; - int intlen; -@@ -422,9 +422,9 @@ int of_irq_parse_oldworld(struct device_ - if (index >= intlen) - return -EINVAL; - -- out_irq->controller = NULL; -- out_irq->specifier[0] = ints[index]; -- out_irq->size = 1; -+ out_irq->np = NULL; -+ out_irq->args[0] = ints[index]; -+ out_irq->args_count = 1; - - return 0; - } ---- a/arch/powerpc/platforms/pseries/event_sources.c -+++ b/arch/powerpc/platforms/pseries/event_sources.c -@@ -25,7 +25,7 @@ void request_event_sources_irqs(struct d - const char *name) - { - int i, index, count = 0; -- struct of_irq oirq; -+ struct of_phandle_args oirq; - const u32 *opicprop; - unsigned int opicplen; - unsigned int virqs[16]; -@@ -59,9 +59,8 @@ void request_event_sources_irqs(struct d - index++) { - if (count > 15) - break; -- virqs[count] = irq_create_of_mapping(oirq.controller, -- oirq.specifier, -- oirq.size); -+ virqs[count] = irq_create_of_mapping(oirq.np, oirq.args, -+ oirq.args_count); - if (virqs[count] == NO_IRQ) { - pr_err("event-sources: Unable to allocate " - "interrupt number for %s\n", ---- a/arch/powerpc/sysdev/mpic_msi.c -+++ b/arch/powerpc/sysdev/mpic_msi.c -@@ -35,7 +35,7 @@ static int mpic_msi_reserve_u3_hwirqs(st - const struct irq_domain_ops *ops = mpic->irqhost->ops; - struct device_node *np; - int flags, index, i; -- struct of_irq oirq; -+ struct of_phandle_args oirq; - - pr_debug("mpic: found U3, guessing msi allocator setup\n"); - -@@ -64,8 +64,8 @@ static int mpic_msi_reserve_u3_hwirqs(st - - index = 0; - while (of_irq_parse_one(np, index++, &oirq) == 0) { -- ops->xlate(mpic->irqhost, NULL, oirq.specifier, -- oirq.size, &hwirq, &flags); -+ ops->xlate(mpic->irqhost, NULL, oirq.args, -+ oirq.args_count, &hwirq, &flags); - msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, hwirq); - } - } ---- a/arch/x86/kernel/devicetree.c -+++ b/arch/x86/kernel/devicetree.c -@@ -106,7 +106,7 @@ struct device_node *pcibios_get_phb_of_n - - static int x86_of_pci_irq_enable(struct pci_dev *dev) - { -- struct of_irq oirq; -+ struct of_phandle_args oirq; - u32 virq; - int ret; - u8 pin; -@@ -121,8 +121,7 @@ static int x86_of_pci_irq_enable(struct - if (ret) - return ret; - -- virq = irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ virq = irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - if (virq == 0) - return -EINVAL; - dev->irq = virq; ---- a/drivers/of/irq.c -+++ b/drivers/of/irq.c -@@ -36,13 +36,12 @@ - */ - unsigned int irq_of_parse_and_map(struct device_node *dev, int index) - { -- struct of_irq oirq; -+ struct of_phandle_args oirq; - - if (of_irq_parse_one(dev, index, &oirq)) - return 0; - -- return irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - } - EXPORT_SYMBOL_GPL(irq_of_parse_and_map); - -@@ -94,7 +93,7 @@ struct device_node *of_irq_find_parent(s - * node exist for the parent. - */ - int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec, -- u32 ointsize, const __be32 *addr, struct of_irq *out_irq) -+ u32 ointsize, const __be32 *addr, struct of_phandle_args *out_irq) - { - struct device_node *ipar, *tnode, *old = NULL, *newpar = NULL; - const __be32 *tmp, *imap, *imask; -@@ -156,10 +155,10 @@ int of_irq_parse_raw(struct device_node - NULL) { - pr_debug(" -> got it !\n"); - for (i = 0; i < intsize; i++) -- out_irq->specifier[i] = -+ out_irq->args[i] = - of_read_number(intspec +i, 1); -- out_irq->size = intsize; -- out_irq->controller = ipar; -+ out_irq->args_count = intsize; -+ out_irq->np = ipar; - of_node_put(old); - return 0; - } -@@ -280,7 +279,7 @@ EXPORT_SYMBOL_GPL(of_irq_parse_raw); - * This function resolves an interrupt, walking the tree, for a given - * device-tree node. It's the high level pendant to of_irq_parse_raw(). - */ --int of_irq_parse_one(struct device_node *device, int index, struct of_irq *out_irq) -+int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_args *out_irq) - { - struct device_node *p; - const __be32 *intspec, *tmp, *addr; ---- a/drivers/of/of_pci_irq.c -+++ b/drivers/of/of_pci_irq.c -@@ -15,7 +15,7 @@ - * PCI tree until an device-node is found, at which point it will finish - * resolving using the OF tree walking. - */ --int of_irq_parse_pci(const struct pci_dev *pdev, struct of_irq *out_irq) -+int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq) - { - struct device_node *dn, *ppnode; - struct pci_dev *ppdev; ---- a/drivers/pci/host/pci-mvebu.c -+++ b/drivers/pci/host/pci-mvebu.c -@@ -649,15 +649,14 @@ static int __init mvebu_pcie_setup(int n - - static int __init mvebu_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) - { -- struct of_irq oirq; -+ struct of_phandle_args oirq; - int ret; - - ret = of_irq_parse_pci(dev, &oirq); - if (ret) - return ret; - -- return irq_create_of_mapping(oirq.controller, oirq.specifier, -- oirq.size); -+ return irq_create_of_mapping(oirq.np, oirq.args, oirq.args_count); - } - - static struct pci_bus *mvebu_pcie_scan_bus(int nr, struct pci_sys_data *sys) ---- a/include/linux/of_irq.h -+++ b/include/linux/of_irq.h -@@ -8,22 +8,6 @@ - #include <linux/ioport.h> - #include <linux/of.h> - --/** -- * of_irq - container for device_node/irq_specifier pair for an irq controller -- * @controller: pointer to interrupt controller device tree node -- * @size: size of interrupt specifier -- * @specifier: array of cells @size long specifing the specific interrupt -- * -- * This structure is returned when an interrupt is mapped. The controller -- * field needs to be put() after use -- */ --#define OF_MAX_IRQ_SPEC 4 /* We handle specifiers of at most 4 cells */ --struct of_irq { -- struct device_node *controller; /* Interrupt controller node */ -- u32 size; /* Specifier size */ -- u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */ --}; -- - typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); - - /* -@@ -36,12 +20,12 @@ typedef int (*of_irq_init_cb_t)(struct d - extern unsigned int of_irq_workarounds; - extern struct device_node *of_irq_dflt_pic; - extern int of_irq_parse_oldworld(struct device_node *device, int index, -- struct of_irq *out_irq); -+ struct of_phandle_args *out_irq); - #else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ - #define of_irq_workarounds (0) - #define of_irq_dflt_pic (NULL) - static inline int of_irq_parse_oldworld(struct device_node *device, int index, -- struct of_irq *out_irq) -+ struct of_phandle_args *out_irq) - { - return -EINVAL; - } -@@ -50,9 +34,9 @@ static inline int of_irq_parse_oldworld( - - extern int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec, - u32 ointsize, const __be32 *addr, -- struct of_irq *out_irq); -+ struct of_phandle_args *out_irq); - extern int of_irq_parse_one(struct device_node *device, int index, -- struct of_irq *out_irq); -+ struct of_phandle_args *out_irq); - extern unsigned int irq_create_of_mapping(struct device_node *controller, - const u32 *intspec, - unsigned int intsize); ---- a/include/linux/of_pci.h -+++ b/include/linux/of_pci.h -@@ -5,8 +5,8 @@ - #include <linux/msi.h> - - struct pci_dev; --struct of_irq; --int of_irq_parse_pci(const struct pci_dev *pdev, struct of_irq *out_irq); -+struct of_phandle_args; -+int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq); - - struct device_node; - struct device_node *of_pci_find_child_device(struct device_node *parent, |