Re: [RFC PATCH 1/4] PLATFORM: introduce structure to bind async platformdata to a dev path name

From: Andy Green
Date: Sun Mar 13 2011 - 13:26:54 EST


On 03/13/2011 04:14 PM, Somebody in the thread at some point said:

Hi -

You CAN NOT GUARANTEE the USB device ordering of bus numbers or device
numbers. It's that simple.

If the platform / board definition file is registering the USB hosts
synchronously at boot time, the driver is composed into the
monolithic kernel, there are no PCI busses or whatever on the SoC,
the bus indexing is totally deterministic.

Not true, it could change for a number of reasons, not the least being
your kernel version changed.

So again NEVER rely on this, bad things could happen in the field when
you least expect it.

Okay, I can't see how and you did not explain how, but let's agree with what you are saying.

Unlike the Shiny Device Tree path where the binding device path string is in the bootloader, with this patch series the binding device path is in the board definition file, ie, part of the same kernel. If an upgrade breaks it, the guy can look in /sys on his new broken kernel, find the new path and uplevel it to that and he's consistent again. If he goes back to an older kernel, it still works consistently (unlike if he updated his bootloader that now only knows the new way).

However as I said to Rafael if he thought bus name part of this path was too shaky, and you also think it is, it can be changed to use a pointer to the host controller since that's also coming from platform or board definition file directly in this kind of SoC implementation and is available.

-Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/