Skip to content

Commit

Permalink
[POWERPC] powerpc: Workaround for of_platform without "reg" nor "dcr-…
Browse files Browse the repository at this point in the history
…reg"

Devices with no "reg" nor "dcr-reg" property are given a bus_id which
is the node name alone. This means that if more than one such device
with the same names are present in the system, sysfs will have
collisions when creating the symlinks and will fail registering the
devices.

This works around that problem by assigning successive numbers to such
devices.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Benjamin Herrenschmidt authored and Paul Mackerras committed Dec 4, 2006
1 parent 974a76f commit 9309180
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions arch/powerpc/kernel/of_platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
#include <asm/topology.h>
#include <asm/pci-bridge.h>
#include <asm/ppc-pci.h>
#include <asm/atomic.h>


/*
* The list of OF IDs below is used for matching bus types in the
Expand All @@ -51,6 +53,8 @@ static struct of_device_id of_default_bus_ids[] = {
{},
};

static atomic_t bus_no_reg_magic;

/*
*
* OF platform device type definition & base infrastructure
Expand Down Expand Up @@ -165,6 +169,7 @@ static void of_platform_make_bus_id(struct of_device *dev)
char *name = dev->dev.bus_id;
const u32 *reg;
u64 addr;
long magic;

/*
* If it's a DCR based device, use 'd' for native DCRs
Expand Down Expand Up @@ -203,9 +208,11 @@ static void of_platform_make_bus_id(struct of_device *dev)
}

/*
* No BusID, use the node name and pray
* No BusID, use the node name and add a globally incremented
* counter (and pray...)
*/
snprintf(name, BUS_ID_SIZE, "%s", node->name);
magic = atomic_add_return(1, &bus_no_reg_magic);
snprintf(name, BUS_ID_SIZE, "%s.%d", node->name, magic - 1);
}

struct of_device* of_platform_device_create(struct device_node *np,
Expand Down

0 comments on commit 9309180

Please sign in to comment.