Thread (40 messages) 40 messages, 6 authors, 2017-12-14

[PATCH V4 08/12] boot_constraint: Manage deferrable constraints

From: viresh.kumar@linaro.org (Viresh Kumar)
Date: 2017-12-13 14:39:17
Also in: lkml

On 13-12-17, 10:33, Russell King - ARM Linux wrote:
On Wed, Dec 13, 2017 at 03:57:07PM +0530, Viresh Kumar wrote:
quoted
On 13-12-17, 10:53, Greg Kroah-Hartman wrote:
quoted
On Sun, Oct 29, 2017 at 07:18:56PM +0530, Viresh Kumar wrote:
quoted
+static void add_deferrable_of_single(struct device_node *np,
+				     struct dev_boot_constraint *constraints,
+				     int count)
+{
+	struct device *dev;
+	int ret;
+
+	if (!of_device_is_available(np))
+		return;
+
+	ret = of_platform_bus_create(np, NULL, NULL, NULL, false);
+	if (ret)
+		return;
+
+	if (of_device_is_compatible(np, "arm,primecell")) {
Why is "arm,primecell" in the core code here?
All we need here is a struct device pointer to add constraints. But how we get
the device node depends on what bus type the device corresponds to. Currently
this only support amba and platform devices, but we may need to get spi, i2c,
etc later on.

How do you suggest to keep this stuff out of core here ? Are you asking me to
add a generic API in the OF core to find the struct device pointer using a node
pointer ?
Why do we need this?  Why can't we lookup the "struct device" by DT
node, and then look at the device's bus type and decide what to do
from that?
My requirement is only to get the struct device * for the DT node and I don't
really need to get into the bus specific details at all. I was not sure if there
is a way to lookup for the "struct device" by its DT node currently and so
depended on helpers like of_find_device_by_node(). Can you please point me to
the routine (or the way we can traverse all devices) ?
Wouldn't a better solution be to use fwnode stuff for this, and
make the bus-type handling a property of the bus type itself,
pushing the bus specific code into the bus layer?
As I said earlier, I don't really need to work at the bus level. I just need the
device structure and so that may not be required.

-- 
viresh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help