浏览代码

coresight: delay initialisation when children are missing

Depending on when CoreSight device are discovered it is possible
that some IP block may be referencing devices that have not been
added to the bus yet.  The end result is missing nodes in the
CoreSight topology even when the devices are present and properly
initialised.

This patch solves the problem by asking the driver core to
try initialising the device at a later time when the children
of a CoreSight node are missing.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Mathieu Poirier 9 年之前
父节点
当前提交
62d39ac934
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/hwtracing/coresight/of_coresight.c

+ 1 - 1
drivers/hwtracing/coresight/of_coresight.c

@@ -166,7 +166,7 @@ struct coresight_platform_data *of_get_coresight_platform_data(
 
 
 			rdev = of_coresight_get_endpoint_device(rparent);
 			rdev = of_coresight_get_endpoint_device(rparent);
 			if (!rdev)
 			if (!rdev)
-				continue;
+				return ERR_PTR(-EPROBE_DEFER);
 
 
 			pdata->child_names[i] = dev_name(rdev);
 			pdata->child_names[i] = dev_name(rdev);
 			pdata->child_ports[i] = rendpoint.id;
 			pdata->child_ports[i] = rendpoint.id;