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

[PATCH V4 10/12] boot_constraint: Add support for Hisilicon platforms

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

On 13-12-17, 10:47, Greg Kroah-Hartman wrote:
On Sun, Oct 29, 2017 at 07:18:58PM +0530, Viresh Kumar wrote:
quoted
+static const struct of_device_id machines[] __initconst = {
+	{ .compatible = "hisilicon,hi3660", .data = &hikey3660_constraints },
+	{ .compatible = "hisilicon,hi3798cv200", .data = &hikey3798cv200_constraints },
+	{ .compatible = "hisilicon,hi6220", .data = &hikey6220_constraints },
+	{ }
+};
+
+static int __init hikey_constraints_init(void)
+{
+	const struct hikey_machine_constraints *constraints;
+	const struct of_device_id *match;
+	struct device_node *np;
+
+	if (!boot_constraint_earlycon_enabled())
+		return 0;
+
+	np = of_find_node_by_path("/");
What is this for?
We need to match the above list of "machines" with the root node and "np" here
points to the root node.. and ...
quoted
+	if (!np)
+		return -ENODEV;
+
+	match = of_match_node(machines, np);
Its used here.
quoted
+	of_node_put(np);
quoted
+/*
+ * The amba-pl011 driver registers itself from arch_initcall level. Setup the
+ * serial boot constraints before that in order not to miss any boot messages.
+ */
+postcore_initcall_sync(hikey_constraints_init);
Now you have to worry about the bootconstraints earlycon being called
before/after your code.
For boot-constraints to work for any device, it is extremely important to add
the constraint before the device is probed by its driver, otherwise the driver
would end up re-configuring the resources. There is no other way then having
this order dependency here.
That's another linking order dependancy you
just created.  It feels more complex for something so "simple" as
looking for the earlycon flag...
-- 
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