|
@@ -180,31 +180,6 @@ static int pset_prop_read_string_array(struct property_set *pset,
|
|
return array_len;
|
|
return array_len;
|
|
}
|
|
}
|
|
|
|
|
|
-static int pset_prop_read_string(struct property_set *pset,
|
|
|
|
- const char *propname, const char **strings)
|
|
|
|
-{
|
|
|
|
- const struct property_entry *prop;
|
|
|
|
- const char * const *pointer;
|
|
|
|
-
|
|
|
|
- prop = pset_prop_get(pset, propname);
|
|
|
|
- if (!prop)
|
|
|
|
- return -EINVAL;
|
|
|
|
- if (!prop->is_string)
|
|
|
|
- return -EILSEQ;
|
|
|
|
- if (prop->is_array) {
|
|
|
|
- pointer = prop->pointer.str;
|
|
|
|
- if (!pointer)
|
|
|
|
- return -ENODATA;
|
|
|
|
- } else {
|
|
|
|
- pointer = &prop->value.str;
|
|
|
|
- if (*pointer && strnlen(*pointer, prop->length) >= prop->length)
|
|
|
|
- return -EILSEQ;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- *strings = *pointer;
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
struct fwnode_handle *dev_fwnode(struct device *dev)
|
|
struct fwnode_handle *dev_fwnode(struct device *dev)
|
|
{
|
|
{
|
|
return IS_ENABLED(CONFIG_OF) && dev->of_node ?
|
|
return IS_ENABLED(CONFIG_OF) && dev->of_node ?
|
|
@@ -582,19 +557,6 @@ static int __fwnode_property_read_string_array(struct fwnode_handle *fwnode,
|
|
return -ENXIO;
|
|
return -ENXIO;
|
|
}
|
|
}
|
|
|
|
|
|
-static int __fwnode_property_read_string(struct fwnode_handle *fwnode,
|
|
|
|
- const char *propname, const char **val)
|
|
|
|
-{
|
|
|
|
- if (is_of_node(fwnode))
|
|
|
|
- return of_property_read_string(to_of_node(fwnode), propname, val);
|
|
|
|
- else if (is_acpi_node(fwnode))
|
|
|
|
- return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING,
|
|
|
|
- val, 1);
|
|
|
|
- else if (is_pset_node(fwnode))
|
|
|
|
- return pset_prop_read_string(to_pset_node(fwnode), propname, val);
|
|
|
|
- return -ENXIO;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* fwnode_property_read_string_array - return string array property of a node
|
|
* fwnode_property_read_string_array - return string array property of a node
|
|
* @fwnode: Firmware node to get the property of
|
|
* @fwnode: Firmware node to get the property of
|
|
@@ -646,13 +608,8 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_string_array);
|
|
int fwnode_property_read_string(struct fwnode_handle *fwnode,
|
|
int fwnode_property_read_string(struct fwnode_handle *fwnode,
|
|
const char *propname, const char **val)
|
|
const char *propname, const char **val)
|
|
{
|
|
{
|
|
- int ret;
|
|
|
|
|
|
+ int ret = fwnode_property_read_string_array(fwnode, propname, val, 1);
|
|
|
|
|
|
- ret = __fwnode_property_read_string(fwnode, propname, val);
|
|
|
|
- if (ret == -EINVAL && !IS_ERR_OR_NULL(fwnode) &&
|
|
|
|
- !IS_ERR_OR_NULL(fwnode->secondary))
|
|
|
|
- ret = __fwnode_property_read_string(fwnode->secondary,
|
|
|
|
- propname, val);
|
|
|
|
return ret < 0 ? ret : 0;
|
|
return ret < 0 ? ret : 0;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(fwnode_property_read_string);
|
|
EXPORT_SYMBOL_GPL(fwnode_property_read_string);
|