On Sun, 18 May 2014 18:11:07 -0500, Rob Herring <robherring2@xxxxxxxxx> wrote: > On Sun, May 18, 2014 at 12:01 PM, Ezequiel Garcia > <ezequiel@xxxxxxxxxxxxxxxxxxxx> wrote: > > When creating a device object for a devicetree node, the device name > > is created by using the node name and the 'reg' property, to make a name > > such as "a000.foo_device". > > > > For certain devices without an associated address, and hence no 'reg' property, > > the current code attempts to make a unique name, by using a global integer. > > Names look like "foo_device.1", "bar_device.2", and so on. > > Examples of such devices are: gpio-keys', backlights and rotary-encoders. > > > > The system cannot know such devices name before hand, given they are determined > > by the kernel probe order and by the nodes present in the devicetree. This can > > be problematic, on systems that are tied to the device's name, e.g. when > > catching hotplug events. The device's uevent file in sysfs contains both the ->name and ->full_name values for a node. Does that help you? The big problem is not the structure under /sys/devices, but rather the symlinks to devices that appear under /sys/bus/*/devices. If two leaf nodes have the same name, then they will conflict when they get added to a bus_type's array of devices. Another way to handle it is to only add the suffix when a conflict actually occurs. That requires checking first whether or not a name will conflict and ammending it only when that happens. I don't know if that can be done nicely. I'll take a look. > > > > In order to fix the name, this commit removes the global integer uniqueness > > enforcement and instead uses the node name for the device name. The rationale > > behind such change, is that there's no way two nodes with the same node name > > are associated to two different devices, by the nature of the devicetree. > > In other words, it's impossible to produce a name collision for these kind > > of devices. > > This is perfectly legal: > > /bus1/device > /bus2/device > > Only the full name has to be unique. > > > > > Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx> > > --- > > Hello Grant, Rob: > > > > I'm pretty sure there's a good reason for the existence of the atomic magic > > integer, so this is not a *real* patch, but rather a bold attempt at asking you > > some explanations for this. > > > > Under what circumstances does the magic integer avoids a name collision? > > Will this propposal introduce a regression? > > See the recent changes to this function in linux-next and the > associated discussion of those commits. > > Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html