Skip to content

Commit

Permalink
SPARC/LEON: avoid AMBAPP name duplicates in openprom fs when REG is m…
Browse files Browse the repository at this point in the history
…issing

When the REG property is not available the NODE-ID is used as an unique
identifier in order to avoid filesystem name duplicates in /proc/openprom
filesystem

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Daniel Hellstrom authored and David S. Miller committed Jan 4, 2011
1 parent 2791c1a commit 9663eb2
Showing 1 changed file with 19 additions and 8 deletions.
27 changes: 19 additions & 8 deletions arch/sparc/kernel/prom_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,18 +136,29 @@ static void __init ebus_path_component(struct device_node *dp, char *tmp_buf)
/* "name:vendor:device@irq,addrlo" */
static void __init ambapp_path_component(struct device_node *dp, char *tmp_buf)
{
struct amba_prom_registers *regs; unsigned int *intr;
unsigned int *device, *vendor;
struct amba_prom_registers *regs;
unsigned int *intr, *device, *vendor, reg0;
struct property *prop;
int interrupt = 0;

/* In order to get a unique ID in the device tree (multiple AMBA devices
* may have the same name) the node number is printed
*/
prop = of_find_property(dp, "reg", NULL);
if (!prop)
return;
regs = prop->value;
if (!prop) {
reg0 = (unsigned int)dp->phandle;
} else {
regs = prop->value;
reg0 = regs->phys_addr;
}

/* Not all cores have Interrupt */
prop = of_find_property(dp, "interrupts", NULL);
if (!prop)
return;
intr = prop->value;
intr = &interrupt; /* IRQ0 does not exist */
else
intr = prop->value;

prop = of_find_property(dp, "vendor", NULL);
if (!prop)
return;
Expand All @@ -159,7 +170,7 @@ static void __init ambapp_path_component(struct device_node *dp, char *tmp_buf)

sprintf(tmp_buf, "%s:%d:%d@%x,%x",
dp->name, *vendor, *device,
*intr, regs->phys_addr);
*intr, reg0);
}

static void __init __build_path_component(struct device_node *dp, char *tmp_buf)
Expand Down

0 comments on commit 9663eb2

Please sign in to comment.