2014-03-17 15:24 GMT+01:00 Grant Likely <grant.likely@xxxxxxxxxxxx>: > On Mon, 17 Mar 2014 12:07:37 +0100, Jean-Jacques Hiblot <jjhiblot@xxxxxxxxxxxxxxx> wrote: >> Hi Grant, >> >> Sorry for the delay, I was having nice vacations. >> >> 2014-03-08 8:37 GMT+01:00 Grant Likely <grant.likely@xxxxxxxxxx>: >> > On Fri, 21 Feb 2014 14:18:40 +0100, Jean-Jacques Hiblot <jjhiblot@xxxxxxxxxxxxxxx> wrote: >> >> The goal of this patch is to allow drivers to be probed even if at the time of >> >> the DT parsing some of their ressources are not available yet. >> > >> > Hi Jean-Jacques >> > >> > [...] >> >> +int of_platform_device_prepare(struct platform_device *dev) >> >> +{ >> >> + struct device_node *np; >> >> + int i, irq_index; >> >> + struct resource *res; >> >> + >> >> + /* >> >> + * This function applies only devices described in the DT. >> >> + * Other platform devices have their ressources already populated. >> >> + */ >> >> + np = dev->dev.of_node; >> >> + if (!np) >> >> + return 0; >> > >> > I believe we already talked about the above test. This function must >> > only process devices created by of_platform_populate(). Merely checking >> > the of_node pointer is not a sufficient test because there are other >> > paths in the kernel for creating platform_devices that might get a node >> > pointer attached to it. >> Yes we talked about this, but only to move it into of_platform_device_prepare(). >> Is there an existing way to know for sure that the device has been >> created by of_platform_populate() ? I could not find one. > > No there isn't. That information is used at population time and then > discarded. We'd need to add a flag or registry to mark those devices. OK. As I see it, this could be done either by adding a new flag to struct device or by maintaining a private list of "of created" devices in of/platform.c. I favor modifying struct device as it's is by far the simplest but it's also more intrusive. Any advice ? Jean-Jacques > > g. > >> >> Jean-Jacques >> > >> > g. >> > >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- 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