Re: [RFC/PATCH] of: platform: Remove unique device name enforcement
From: Grant Likely <hidden>
Date: 2014-05-20 06:50:14
On Sun, 18 May 2014 18:11:07 -0500, Rob Herring [off-list ref] wrote:
On Sun, May 18, 2014 at 12:01 PM, Ezequiel Garcia [off-list ref] wrote:quoted
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.
quoted
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.quoted
Signed-off-by: Ezequiel Garcia <redacted> --- 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-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html