summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2017-05-04 12:27:21 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2017-05-04 12:57:00 +0200
commit49831918036ab3292870dc2c6035292e6af47ae1 (patch)
tree3727edcdaa65dfccc6949d938c216b51957f3442
parentb30047b433a60e6183216e8364971efddd5d208e (diff)
downloadbarebox-49831918036ab3292870dc2c6035292e6af47ae1.tar.gz
barebox-49831918036ab3292870dc2c6035292e6af47ae1.tar.xz
state: Make an alias mandatory
The userspace barebox-state utility gets confused when no alias exists. Make the alias mandatory, so that people make it right^tm without having to ask. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--Documentation/devicetree/bindings/barebox/barebox,state.rst6
-rw-r--r--common/state/state.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/barebox/barebox,state.rst b/Documentation/devicetree/bindings/barebox/barebox,state.rst
index 51b874a8be..06a0d100c8 100644
--- a/Documentation/devicetree/bindings/barebox/barebox,state.rst
+++ b/Documentation/devicetree/bindings/barebox/barebox,state.rst
@@ -32,6 +32,8 @@ Required properties:
* ``backend``: contains a phandle to the device/partition which holds the
actual state data.
* ``backend-type``: should be ``raw`` or ``dtb``.
+* additionally a state node must have an alias in the /aliases/ node pointing
+ to it.
Optional properties:
@@ -74,6 +76,10 @@ Optional properties:
Example::
+ /aliases {
+ state = &state;
+ };
+
state: state {
magic = <0x27031977>;
compatible = "barebox,state";
diff --git a/common/state/state.c b/common/state/state.c
index c3c8b768c7..41bee0fdc5 100644
--- a/common/state/state.c
+++ b/common/state/state.c
@@ -567,8 +567,10 @@ struct state *state_new_from_node(struct device_node *node, char *path,
uint32_t stridesize;
alias = of_alias_get(node);
- if (!alias)
- alias = node->name;
+ if (!alias) {
+ pr_err("State node %s does not have an alias in the /aliases/ node\n", node->full_name);
+ return ERR_PTR(-EINVAL);
+ }
state = state_new(alias);
if (IS_ERR(state))