Skip to content

Commit

Permalink
of/irq: Rename of_irq_map_* functions to of_irq_parse_*
Browse files Browse the repository at this point in the history
The OF irq handling code has been overloading the term 'map' to refer to
both parsing the data in the device tree and mapping it to the internal
linux irq system. This is probably because the device tree does have the
concept of an 'interrupt-map' function for translating interrupt
references from one node to another, but 'map' is still confusing when
the primary purpose of some of the functions are to parse the DT data.

This patch renames all the of_irq_map_* functions to of_irq_parse_*
which makes it clear that there is a difference between the parsing
phase and the mapping phase. Kernel code can make use of just the
parsing or just the mapping support as needed by the subsystem.

The patch was generated mechanically with a handful of sed commands.

Signed-off-by: Grant Likely <[email protected]>
Acked-by: Michal Simek <[email protected]>
Acked-by: Tony Lindgren <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
  • Loading branch information
glikely committed Oct 24, 2013
1 parent 4a43d68 commit 0c02c80
Show file tree
Hide file tree
Showing 20 changed files with 42 additions and 42 deletions.
4 changes: 2 additions & 2 deletions arch/arm/mach-integrator/pci_v3.c
Original file line number Diff line number Diff line change
Expand Up @@ -840,9 +840,9 @@ static int __init pci_v3_map_irq_dt(const struct pci_dev *dev, u8 slot, u8 pin)
struct of_irq oirq;
int ret;

ret = of_irq_map_pci(dev, &oirq);
ret = of_irq_parse_pci(dev, &oirq);
if (ret) {
dev_err(&dev->dev, "of_irq_map_pci() %d\n", ret);
dev_err(&dev->dev, "of_irq_parse_pci() %d\n", ret);
/* Proper return code 0 == NO_IRQ */
return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion arch/microblaze/pci/pci-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ int pci_read_irq_line(struct pci_dev *pci_dev)
memset(&oirq, 0xff, sizeof(oirq));
#endif
/* Try to get a mapping from the device-tree */
if (of_irq_map_pci(pci_dev, &oirq)) {
if (of_irq_parse_pci(pci_dev, &oirq)) {
u8 line, pin;

/* If that fails, lets fallback to what is in the config
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/pci/fixup-lantiq.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
struct of_irq dev_irq;
int irq;

if (of_irq_map_pci(dev, &dev_irq)) {
if (of_irq_parse_pci(dev, &dev_irq)) {
dev_err(&dev->dev, "trying to map irq for unknown slot:%d pin:%d\n",
slot, pin);
return 0;
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/pci/pci-rt3883.c
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
int err;
int irq;

err = of_irq_map_pci(dev, &dev_irq);
err = of_irq_parse_pci(dev, &dev_irq);
if (err) {
pr_err("pci %s: unable to get irq map, err=%d\n",
pci_name((struct pci_dev *) dev), err);
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/kernel/pci-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ static int pci_read_irq_line(struct pci_dev *pci_dev)
memset(&oirq, 0xff, sizeof(oirq));
#endif
/* Try to get a mapping from the device-tree */
if (of_irq_map_pci(pci_dev, &oirq)) {
if (of_irq_parse_pci(pci_dev, &oirq)) {
u8 line, pin;

/* If that fails, lets fallback to what is in the config
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/cell/celleb_scc_pciex.c
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ static __init int celleb_setup_pciex(struct device_node *node,
phb->ops = &scc_pciex_pci_ops;

/* internal interrupt handler */
if (of_irq_map_one(node, 1, &oirq)) {
if (of_irq_parse_one(node, 1, &oirq)) {
pr_err("PCIEXC:Failed to map irq\n");
goto error;
}
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/cell/celleb_scc_sio.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ static int __init txx9_serial_init(void)
if (!(txx9_serial_bitmap & (1<<i)))
continue;

if (of_irq_map_one(node, i, &irq))
if (of_irq_parse_one(node, i, &irq))
continue;
if (of_address_to_resource(node,
txx9_scc_tab[i].index, &res))
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/cell/spider-pic.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
* tree in case the device-tree is ever fixed
*/
struct of_irq oirq;
if (of_irq_map_one(pic->host->of_node, 0, &oirq) == 0) {
if (of_irq_parse_one(pic->host->of_node, 0, &oirq) == 0) {
virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
oirq.size);
return virq;
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/cell/spu_manage.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ static int __init spu_map_interrupts(struct spu *spu, struct device_node *np)
int i;

for (i=0; i < 3; i++) {
ret = of_irq_map_one(np, i, &oirq);
ret = of_irq_parse_one(np, i, &oirq);
if (ret) {
pr_debug("spu_new: failed to get irq %d\n", i);
goto err;
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/fsl_uli1575.c
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ static void hpcd_final_uli5288(struct pci_dev *dev)

laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8);
laddr[1] = laddr[2] = 0;
of_irq_map_raw(hosenode, &pin, 1, laddr, &oirq);
of_irq_parse_raw(hosenode, &pin, 1, laddr, &oirq);
virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
oirq.size);
dev->irq = virq;
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/powermac/pic.c
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ static void __init pmac_pic_probe_oldstyle(void)
#endif
}

int of_irq_map_oldworld(struct device_node *device, int index,
int of_irq_parse_oldworld(struct device_node *device, int index,
struct of_irq *out_irq)
{
const u32 *ints = NULL;
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/pseries/event_sources.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ void request_event_sources_irqs(struct device_node *np,
/* Else use normal interrupt tree parsing */
else {
/* First try to do a proper OF tree parsing */
for (index = 0; of_irq_map_one(np, index, &oirq) == 0;
for (index = 0; of_irq_parse_one(np, index, &oirq) == 0;
index++) {
if (count > 15)
break;
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/sysdev/mpic_msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ static int mpic_msi_reserve_u3_hwirqs(struct mpic *mpic)
pr_debug("mpic: mapping hwirqs for %s\n", np->full_name);

index = 0;
while (of_irq_map_one(np, index++, &oirq) == 0) {
while (of_irq_parse_one(np, index++, &oirq) == 0) {
ops->xlate(mpic->irqhost, NULL, oirq.specifier,
oirq.size, &hwirq, &flags);
msi_bitmap_reserve_hwirq(&mpic->msi_bitmap, hwirq);
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/devicetree.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ static int x86_of_pci_irq_enable(struct pci_dev *dev)
if (!pin)
return 0;

ret = of_irq_map_pci(dev, &oirq);
ret = of_irq_parse_pci(dev, &oirq);
if (ret)
return ret;

Expand Down
4 changes: 2 additions & 2 deletions drivers/of/address.c
Original file line number Diff line number Diff line change
Expand Up @@ -532,12 +532,12 @@ static u64 __of_translate_address(struct device_node *dev,
pbus->count_cells(dev, &pna, &pns);
if (!OF_CHECK_COUNTS(pna, pns)) {
printk(KERN_ERR "prom_parse: Bad cell count for %s\n",
dev->full_name);
of_node_full_name(dev));
break;
}

pr_debug("OF: parent bus is %s (na=%d, ns=%d) on %s\n",
pbus->name, pna, pns, parent->full_name);
pbus->name, pna, pns, of_node_full_name(parent));

/* Apply bus translation */
if (of_translate_one(dev, bus, pbus, addr, na, ns, pna, rprop))
Expand Down
28 changes: 14 additions & 14 deletions drivers/of/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@
* @dev: Device node of the device whose interrupt is to be mapped
* @index: Index of the interrupt to map
*
* This function is a wrapper that chains of_irq_map_one() and
* This function is a wrapper that chains of_irq_parse_one() and
* irq_create_of_mapping() to make things easier to callers
*/
unsigned int irq_of_parse_and_map(struct device_node *dev, int index)
{
struct of_irq oirq;

if (of_irq_map_one(dev, index, &oirq))
if (of_irq_parse_one(dev, index, &oirq))
return 0;

return irq_create_of_mapping(oirq.controller, oirq.specifier,
Expand Down Expand Up @@ -79,7 +79,7 @@ struct device_node *of_irq_find_parent(struct device_node *child)
}

/**
* of_irq_map_raw - Low level interrupt tree parsing
* of_irq_parse_raw - Low level interrupt tree parsing
* @parent: the device interrupt parent
* @intspec: interrupt specifier ("interrupts" property of the device)
* @ointsize: size of the passed in interrupt specifier
Expand All @@ -93,15 +93,15 @@ struct device_node *of_irq_find_parent(struct device_node *child)
* properties, for example when resolving PCI interrupts when no device
* node exist for the parent.
*/
int of_irq_map_raw(struct device_node *parent, const __be32 *intspec,
int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec,
u32 ointsize, const __be32 *addr, struct of_irq *out_irq)
{
struct device_node *ipar, *tnode, *old = NULL, *newpar = NULL;
const __be32 *tmp, *imap, *imask;
u32 intsize = 1, addrsize, newintsize = 0, newaddrsize = 0;
int imaplen, match, i;

pr_debug("of_irq_map_raw: par=%s,intspec=[0x%08x 0x%08x...],ointsize=%d\n",
pr_debug("of_irq_parse_raw: par=%s,intspec=[0x%08x 0x%08x...],ointsize=%d\n",
of_node_full_name(parent), be32_to_cpup(intspec),
be32_to_cpup(intspec + 1), ointsize);

Expand All @@ -126,7 +126,7 @@ int of_irq_map_raw(struct device_node *parent, const __be32 *intspec,
goto fail;
}

pr_debug("of_irq_map_raw: ipar=%s, size=%d\n", of_node_full_name(ipar), intsize);
pr_debug("of_irq_parse_raw: ipar=%s, size=%d\n", of_node_full_name(ipar), intsize);

if (ointsize != intsize)
return -EINVAL;
Expand Down Expand Up @@ -269,29 +269,29 @@ int of_irq_map_raw(struct device_node *parent, const __be32 *intspec,

return -EINVAL;
}
EXPORT_SYMBOL_GPL(of_irq_map_raw);
EXPORT_SYMBOL_GPL(of_irq_parse_raw);

/**
* of_irq_map_one - Resolve an interrupt for a device
* of_irq_parse_one - Resolve an interrupt for a device
* @device: the device whose interrupt is to be resolved
* @index: index of the interrupt to resolve
* @out_irq: structure of_irq filled by this function
*
* This function resolves an interrupt, walking the tree, for a given
* device-tree node. It's the high level pendant to of_irq_map_raw().
* device-tree node. It's the high level pendant to of_irq_parse_raw().
*/
int of_irq_map_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_irq *out_irq)
{
struct device_node *p;
const __be32 *intspec, *tmp, *addr;
u32 intsize, intlen;
int res = -EINVAL;

pr_debug("of_irq_map_one: dev=%s, index=%d\n", of_node_full_name(device), index);
pr_debug("of_irq_parse_one: dev=%s, index=%d\n", of_node_full_name(device), index);

/* OldWorld mac stuff is "special", handle out of line */
if (of_irq_workarounds & OF_IMAP_OLDWORLD_MAC)
return of_irq_map_oldworld(device, index, out_irq);
return of_irq_parse_oldworld(device, index, out_irq);

/* Get the interrupts property */
intspec = of_get_property(device, "interrupts", &intlen);
Expand Down Expand Up @@ -322,13 +322,13 @@ int of_irq_map_one(struct device_node *device, int index, struct of_irq *out_irq
goto out;

/* Get new specifier and map it */
res = of_irq_map_raw(p, intspec + index * intsize, intsize,
res = of_irq_parse_raw(p, intspec + index * intsize, intsize,
addr, out_irq);
out:
of_node_put(p);
return res;
}
EXPORT_SYMBOL_GPL(of_irq_map_one);
EXPORT_SYMBOL_GPL(of_irq_parse_one);

/**
* of_irq_to_resource - Decode a node's IRQ and return it as a resource
Expand Down
10 changes: 5 additions & 5 deletions drivers/of/of_pci_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <asm/prom.h>

/**
* of_irq_map_pci - Resolve the interrupt for a PCI device
* of_irq_parse_pci - Resolve the interrupt for a PCI device
* @pdev: the device whose interrupt is to be resolved
* @out_irq: structure of_irq filled by this function
*
Expand All @@ -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_map_pci(const struct pci_dev *pdev, struct of_irq *out_irq)
int of_irq_parse_pci(const struct pci_dev *pdev, struct of_irq *out_irq)
{
struct device_node *dn, *ppnode;
struct pci_dev *ppdev;
Expand All @@ -30,7 +30,7 @@ int of_irq_map_pci(const struct pci_dev *pdev, struct of_irq *out_irq)
*/
dn = pci_device_to_OF_node(pdev);
if (dn) {
rc = of_irq_map_one(dn, 0, out_irq);
rc = of_irq_parse_one(dn, 0, out_irq);
if (!rc)
return rc;
}
Expand Down Expand Up @@ -88,6 +88,6 @@ int of_irq_map_pci(const struct pci_dev *pdev, struct of_irq *out_irq)
lspec_be = cpu_to_be32(lspec);
laddr[0] = cpu_to_be32((pdev->bus->number << 16) | (pdev->devfn << 8));
laddr[1] = laddr[2] = cpu_to_be32(0);
return of_irq_map_raw(ppnode, &lspec_be, 1, laddr, out_irq);
return of_irq_parse_raw(ppnode, &lspec_be, 1, laddr, out_irq);
}
EXPORT_SYMBOL_GPL(of_irq_map_pci);
EXPORT_SYMBOL_GPL(of_irq_parse_pci);
2 changes: 1 addition & 1 deletion drivers/pci/host/pci-mvebu.c
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ static int __init mvebu_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
struct of_irq oirq;
int ret;

ret = of_irq_map_pci(dev, &oirq);
ret = of_irq_parse_pci(dev, &oirq);
if (ret)
return ret;

Expand Down
8 changes: 4 additions & 4 deletions include/linux/of_irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,23 @@ typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *);
#if defined(CONFIG_PPC32) && defined(CONFIG_PPC_PMAC)
extern unsigned int of_irq_workarounds;
extern struct device_node *of_irq_dflt_pic;
extern int of_irq_map_oldworld(struct device_node *device, int index,
extern int of_irq_parse_oldworld(struct device_node *device, int index,
struct of_irq *out_irq);
#else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */
#define of_irq_workarounds (0)
#define of_irq_dflt_pic (NULL)
static inline int of_irq_map_oldworld(struct device_node *device, int index,
static inline int of_irq_parse_oldworld(struct device_node *device, int index,
struct of_irq *out_irq)
{
return -EINVAL;
}
#endif /* CONFIG_PPC32 && CONFIG_PPC_PMAC */


extern int of_irq_map_raw(struct device_node *parent, const __be32 *intspec,
extern int of_irq_parse_raw(struct device_node *parent, const __be32 *intspec,
u32 ointsize, const __be32 *addr,
struct of_irq *out_irq);
extern int of_irq_map_one(struct device_node *device, int index,
extern int of_irq_parse_one(struct device_node *device, int index,
struct of_irq *out_irq);
extern unsigned int irq_create_of_mapping(struct device_node *controller,
const u32 *intspec,
Expand Down
2 changes: 1 addition & 1 deletion include/linux/of_pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

struct pci_dev;
struct of_irq;
int of_irq_map_pci(const struct pci_dev *pdev, struct of_irq *out_irq);
int of_irq_parse_pci(const struct pci_dev *pdev, struct of_irq *out_irq);

struct device_node;
struct device_node *of_pci_find_child_device(struct device_node *parent,
Expand Down

0 comments on commit 0c02c80

Please sign in to comment.