Revert rr271190, it was based on a misunderstanding. The problem of

non-existant device<->xref info needs to be handled by creating the info,
which will come in a subsequent commit.
This commit is contained in:
Ian Lepore 2014-09-06 17:50:59 +00:00
parent f622737b2e
commit f021180bfb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=271199
2 changed files with 5 additions and 21 deletions

View File

@ -554,15 +554,15 @@ OF_node_from_xref(phandle_t xref)
return (node);
}
static phandle_t
xref_from_node(phandle_t node, phandle_t notfoundvalue)
phandle_t
OF_xref_from_node(phandle_t node)
{
struct xrefinfo *xi;
phandle_t xref;
if (xref_init_done) {
if ((xi = xrefinfo_find(node, FIND_BY_NODE)) == NULL)
return (notfoundvalue);
return (node);
return (xi->xref);
}
@ -570,24 +570,10 @@ xref_from_node(phandle_t node, phandle_t notfoundvalue)
-1 && OF_getencprop(node, "ibm,phandle", &xref,
sizeof(xref)) == -1 && OF_getencprop(node,
"linux,phandle", &xref, sizeof(xref)) == -1)
return (notfoundvalue);
return (node);
return (xref);
}
phandle_t
OF_xref_from_node(phandle_t node)
{
return (xref_from_node(node, node));
}
phandle_t
OF_xref_from_node_strict(phandle_t node)
{
return (xref_from_node(node, -1));
}
device_t
OF_device_from_xref(phandle_t xref)
{

View File

@ -128,12 +128,10 @@ ssize_t OF_package_to_path(phandle_t node, char *buf, size_t len);
* Some OF implementations (IBM, FDT) have a concept of effective phandles
* used for device-tree cross-references. Given one of these, returns the
* real phandle. If one can't be found (or running on OF implementations
* without this property), OF_xref_from_node() returns its input, while the
* strict version returns -1.
* without this property), returns its input.
*/
phandle_t OF_node_from_xref(phandle_t xref);
phandle_t OF_xref_from_node(phandle_t node);
phandle_t OF_xref_from_node_strict(phandle_t node);
/*
* When properties contain references to other nodes using xref handles it is