Commit 37ba983c authored by Sakari Ailus's avatar Sakari Ailus Committed by Rafael J. Wysocki

device property: Constify fwnode property API

Make fwnode arguments to the fwnode property API const.
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 39e5aeed
...@@ -898,7 +898,7 @@ int acpi_node_prop_read(const struct fwnode_handle *fwnode, ...@@ -898,7 +898,7 @@ int acpi_node_prop_read(const struct fwnode_handle *fwnode,
* @fwnode: Firmware node to find the next child node for. * @fwnode: Firmware node to find the next child node for.
* @child: Handle to one of the device's child nodes or a null handle. * @child: Handle to one of the device's child nodes or a null handle.
*/ */
struct fwnode_handle *acpi_get_next_subnode(struct fwnode_handle *fwnode, struct fwnode_handle *acpi_get_next_subnode(const struct fwnode_handle *fwnode,
struct fwnode_handle *child) struct fwnode_handle *child)
{ {
const struct acpi_device *adev = to_acpi_device_node(fwnode); const struct acpi_device *adev = to_acpi_device_node(fwnode);
...@@ -967,7 +967,7 @@ struct fwnode_handle *acpi_get_next_subnode(struct fwnode_handle *fwnode, ...@@ -967,7 +967,7 @@ struct fwnode_handle *acpi_get_next_subnode(struct fwnode_handle *fwnode,
* Returns parent node of an ACPI device or data firmware node or %NULL if * Returns parent node of an ACPI device or data firmware node or %NULL if
* not available. * not available.
*/ */
struct fwnode_handle *acpi_node_get_parent(struct fwnode_handle *fwnode) struct fwnode_handle *acpi_node_get_parent(const struct fwnode_handle *fwnode)
{ {
if (is_acpi_data_node(fwnode)) { if (is_acpi_data_node(fwnode)) {
/* All data nodes have parent pointer so just return that */ /* All data nodes have parent pointer so just return that */
...@@ -996,8 +996,8 @@ struct fwnode_handle *acpi_node_get_parent(struct fwnode_handle *fwnode) ...@@ -996,8 +996,8 @@ struct fwnode_handle *acpi_node_get_parent(struct fwnode_handle *fwnode)
* %NULL if there is no next endpoint, ERR_PTR() in case of error. In case * %NULL if there is no next endpoint, ERR_PTR() in case of error. In case
* of success the next endpoint is returned. * of success the next endpoint is returned.
*/ */
struct fwnode_handle *acpi_graph_get_next_endpoint(struct fwnode_handle *fwnode, struct fwnode_handle *acpi_graph_get_next_endpoint(
struct fwnode_handle *prev) const struct fwnode_handle *fwnode, struct fwnode_handle *prev)
{ {
struct fwnode_handle *port = NULL; struct fwnode_handle *port = NULL;
struct fwnode_handle *endpoint; struct fwnode_handle *endpoint;
...@@ -1044,7 +1044,8 @@ struct fwnode_handle *acpi_graph_get_next_endpoint(struct fwnode_handle *fwnode, ...@@ -1044,7 +1044,8 @@ struct fwnode_handle *acpi_graph_get_next_endpoint(struct fwnode_handle *fwnode,
* the child node on success, NULL otherwise. * the child node on success, NULL otherwise.
*/ */
static struct fwnode_handle *acpi_graph_get_child_prop_value( static struct fwnode_handle *acpi_graph_get_child_prop_value(
struct fwnode_handle *fwnode, const char *prop_name, unsigned int val) const struct fwnode_handle *fwnode, const char *prop_name,
unsigned int val)
{ {
struct fwnode_handle *child; struct fwnode_handle *child;
...@@ -1073,17 +1074,18 @@ static struct fwnode_handle *acpi_graph_get_child_prop_value( ...@@ -1073,17 +1074,18 @@ static struct fwnode_handle *acpi_graph_get_child_prop_value(
* fields requested by the caller. Returns %0 in case of success and * fields requested by the caller. Returns %0 in case of success and
* negative errno otherwise. * negative errno otherwise.
*/ */
int acpi_graph_get_remote_endpoint(struct fwnode_handle *fwnode, int acpi_graph_get_remote_endpoint(const struct fwnode_handle *__fwnode,
struct fwnode_handle **parent, struct fwnode_handle **parent,
struct fwnode_handle **port, struct fwnode_handle **port,
struct fwnode_handle **endpoint) struct fwnode_handle **endpoint)
{ {
struct fwnode_handle *fwnode;
unsigned int port_nr, endpoint_nr; unsigned int port_nr, endpoint_nr;
struct acpi_reference_args args; struct acpi_reference_args args;
int ret; int ret;
memset(&args, 0, sizeof(args)); memset(&args, 0, sizeof(args));
ret = acpi_node_get_property_reference(fwnode, "remote-endpoint", 0, ret = acpi_node_get_property_reference(__fwnode, "remote-endpoint", 0,
&args); &args);
if (ret) if (ret)
return ret; return ret;
...@@ -1125,7 +1127,7 @@ int acpi_graph_get_remote_endpoint(struct fwnode_handle *fwnode, ...@@ -1125,7 +1127,7 @@ int acpi_graph_get_remote_endpoint(struct fwnode_handle *fwnode,
return 0; return 0;
} }
static bool acpi_fwnode_device_is_available(struct fwnode_handle *fwnode) static bool acpi_fwnode_device_is_available(const struct fwnode_handle *fwnode)
{ {
if (!is_acpi_device_node(fwnode)) if (!is_acpi_device_node(fwnode))
return false; return false;
...@@ -1133,16 +1135,17 @@ static bool acpi_fwnode_device_is_available(struct fwnode_handle *fwnode) ...@@ -1133,16 +1135,17 @@ static bool acpi_fwnode_device_is_available(struct fwnode_handle *fwnode)
return acpi_device_is_present(to_acpi_device_node(fwnode)); return acpi_device_is_present(to_acpi_device_node(fwnode));
} }
static bool acpi_fwnode_property_present(struct fwnode_handle *fwnode, static bool acpi_fwnode_property_present(const struct fwnode_handle *fwnode,
const char *propname) const char *propname)
{ {
return !acpi_node_prop_get(fwnode, propname, NULL); return !acpi_node_prop_get(fwnode, propname, NULL);
} }
static int acpi_fwnode_property_read_int_array(struct fwnode_handle *fwnode, static int
const char *propname, acpi_fwnode_property_read_int_array(const struct fwnode_handle *fwnode,
unsigned int elem_size, const char *propname,
void *val, size_t nval) unsigned int elem_size, void *val,
size_t nval)
{ {
enum dev_prop_type type; enum dev_prop_type type;
...@@ -1166,16 +1169,17 @@ static int acpi_fwnode_property_read_int_array(struct fwnode_handle *fwnode, ...@@ -1166,16 +1169,17 @@ static int acpi_fwnode_property_read_int_array(struct fwnode_handle *fwnode,
return acpi_node_prop_read(fwnode, propname, type, val, nval); return acpi_node_prop_read(fwnode, propname, type, val, nval);
} }
static int acpi_fwnode_property_read_string_array(struct fwnode_handle *fwnode, static int
const char *propname, acpi_fwnode_property_read_string_array(const struct fwnode_handle *fwnode,
const char **val, size_t nval) const char *propname, const char **val,
size_t nval)
{ {
return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING, return acpi_node_prop_read(fwnode, propname, DEV_PROP_STRING,
val, nval); val, nval);
} }
static struct fwnode_handle * static struct fwnode_handle *
acpi_fwnode_get_named_child_node(struct fwnode_handle *fwnode, acpi_fwnode_get_named_child_node(const struct fwnode_handle *fwnode,
const char *childname) const char *childname)
{ {
struct fwnode_handle *child; struct fwnode_handle *child;
...@@ -1192,7 +1196,7 @@ acpi_fwnode_get_named_child_node(struct fwnode_handle *fwnode, ...@@ -1192,7 +1196,7 @@ acpi_fwnode_get_named_child_node(struct fwnode_handle *fwnode,
} }
static struct fwnode_handle * static struct fwnode_handle *
acpi_fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode, acpi_fwnode_graph_get_next_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_handle *prev) struct fwnode_handle *prev)
{ {
struct fwnode_handle *endpoint; struct fwnode_handle *endpoint;
...@@ -1205,7 +1209,7 @@ acpi_fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode, ...@@ -1205,7 +1209,7 @@ acpi_fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode,
} }
static struct fwnode_handle * static struct fwnode_handle *
acpi_fwnode_graph_get_remote_endpoint(struct fwnode_handle *fwnode) acpi_fwnode_graph_get_remote_endpoint(const struct fwnode_handle *fwnode)
{ {
struct fwnode_handle *endpoint = NULL; struct fwnode_handle *endpoint = NULL;
...@@ -1214,7 +1218,13 @@ acpi_fwnode_graph_get_remote_endpoint(struct fwnode_handle *fwnode) ...@@ -1214,7 +1218,13 @@ acpi_fwnode_graph_get_remote_endpoint(struct fwnode_handle *fwnode)
return endpoint; return endpoint;
} }
static int acpi_fwnode_graph_parse_endpoint(struct fwnode_handle *fwnode, static struct fwnode_handle *
acpi_fwnode_get_parent(struct fwnode_handle *fwnode)
{
return acpi_node_get_parent(fwnode);
}
static int acpi_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_endpoint *endpoint) struct fwnode_endpoint *endpoint)
{ {
struct fwnode_handle *port_fwnode = fwnode_get_parent(fwnode); struct fwnode_handle *port_fwnode = fwnode_get_parent(fwnode);
...@@ -1242,7 +1252,7 @@ static int acpi_fwnode_graph_parse_endpoint(struct fwnode_handle *fwnode, ...@@ -1242,7 +1252,7 @@ static int acpi_fwnode_graph_parse_endpoint(struct fwnode_handle *fwnode,
acpi_fwnode_graph_get_next_endpoint, \ acpi_fwnode_graph_get_next_endpoint, \
.graph_get_remote_endpoint = \ .graph_get_remote_endpoint = \
acpi_fwnode_graph_get_remote_endpoint, \ acpi_fwnode_graph_get_remote_endpoint, \
.graph_get_port_parent = acpi_node_get_parent, \ .graph_get_port_parent = acpi_fwnode_get_parent, \
.graph_parse_endpoint = acpi_fwnode_graph_parse_endpoint, \ .graph_parse_endpoint = acpi_fwnode_graph_parse_endpoint, \
}; \ }; \
EXPORT_SYMBOL_GPL(ops) EXPORT_SYMBOL_GPL(ops)
......
...@@ -193,18 +193,18 @@ struct fwnode_handle *dev_fwnode(struct device *dev) ...@@ -193,18 +193,18 @@ struct fwnode_handle *dev_fwnode(struct device *dev)
} }
EXPORT_SYMBOL_GPL(dev_fwnode); EXPORT_SYMBOL_GPL(dev_fwnode);
static bool pset_fwnode_property_present(struct fwnode_handle *fwnode, static bool pset_fwnode_property_present(const struct fwnode_handle *fwnode,
const char *propname) const char *propname)
{ {
return !!pset_prop_get(to_pset_node(fwnode), propname); return !!pset_prop_get(to_pset_node(fwnode), propname);
} }
static int pset_fwnode_read_int_array(struct fwnode_handle *fwnode, static int pset_fwnode_read_int_array(const struct fwnode_handle *fwnode,
const char *propname, const char *propname,
unsigned int elem_size, void *val, unsigned int elem_size, void *val,
size_t nval) size_t nval)
{ {
struct property_set *node = to_pset_node(fwnode); const struct property_set *node = to_pset_node(fwnode);
if (!val) if (!val)
return pset_prop_count_elems_of_size(node, propname, elem_size); return pset_prop_count_elems_of_size(node, propname, elem_size);
...@@ -223,9 +223,10 @@ static int pset_fwnode_read_int_array(struct fwnode_handle *fwnode, ...@@ -223,9 +223,10 @@ static int pset_fwnode_read_int_array(struct fwnode_handle *fwnode,
return -ENXIO; return -ENXIO;
} }
static int pset_fwnode_property_read_string_array(struct fwnode_handle *fwnode, static int
const char *propname, pset_fwnode_property_read_string_array(const struct fwnode_handle *fwnode,
const char **val, size_t nval) const char *propname,
const char **val, size_t nval)
{ {
return pset_prop_read_string_array(to_pset_node(fwnode), propname, return pset_prop_read_string_array(to_pset_node(fwnode), propname,
val, nval); val, nval);
...@@ -255,7 +256,8 @@ EXPORT_SYMBOL_GPL(device_property_present); ...@@ -255,7 +256,8 @@ EXPORT_SYMBOL_GPL(device_property_present);
* @fwnode: Firmware node whose property to check * @fwnode: Firmware node whose property to check
* @propname: Name of the property * @propname: Name of the property
*/ */
bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname) bool fwnode_property_present(const struct fwnode_handle *fwnode,
const char *propname)
{ {
bool ret; bool ret;
...@@ -437,7 +439,7 @@ int device_property_match_string(struct device *dev, const char *propname, ...@@ -437,7 +439,7 @@ int device_property_match_string(struct device *dev, const char *propname,
} }
EXPORT_SYMBOL_GPL(device_property_match_string); EXPORT_SYMBOL_GPL(device_property_match_string);
static int fwnode_property_read_int_array(struct fwnode_handle *fwnode, static int fwnode_property_read_int_array(const struct fwnode_handle *fwnode,
const char *propname, const char *propname,
unsigned int elem_size, void *val, unsigned int elem_size, void *val,
size_t nval) size_t nval)
...@@ -473,7 +475,7 @@ static int fwnode_property_read_int_array(struct fwnode_handle *fwnode, ...@@ -473,7 +475,7 @@ static int fwnode_property_read_int_array(struct fwnode_handle *fwnode,
* %-EOVERFLOW if the size of the property is not as expected, * %-EOVERFLOW if the size of the property is not as expected,
* %-ENXIO if no suitable firmware interface is present. * %-ENXIO if no suitable firmware interface is present.
*/ */
int fwnode_property_read_u8_array(struct fwnode_handle *fwnode, int fwnode_property_read_u8_array(const struct fwnode_handle *fwnode,
const char *propname, u8 *val, size_t nval) const char *propname, u8 *val, size_t nval)
{ {
return fwnode_property_read_int_array(fwnode, propname, sizeof(u8), return fwnode_property_read_int_array(fwnode, propname, sizeof(u8),
...@@ -499,7 +501,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u8_array); ...@@ -499,7 +501,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u8_array);
* %-EOVERFLOW if the size of the property is not as expected, * %-EOVERFLOW if the size of the property is not as expected,
* %-ENXIO if no suitable firmware interface is present. * %-ENXIO if no suitable firmware interface is present.
*/ */
int fwnode_property_read_u16_array(struct fwnode_handle *fwnode, int fwnode_property_read_u16_array(const struct fwnode_handle *fwnode,
const char *propname, u16 *val, size_t nval) const char *propname, u16 *val, size_t nval)
{ {
return fwnode_property_read_int_array(fwnode, propname, sizeof(u16), return fwnode_property_read_int_array(fwnode, propname, sizeof(u16),
...@@ -525,7 +527,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u16_array); ...@@ -525,7 +527,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u16_array);
* %-EOVERFLOW if the size of the property is not as expected, * %-EOVERFLOW if the size of the property is not as expected,
* %-ENXIO if no suitable firmware interface is present. * %-ENXIO if no suitable firmware interface is present.
*/ */
int fwnode_property_read_u32_array(struct fwnode_handle *fwnode, int fwnode_property_read_u32_array(const struct fwnode_handle *fwnode,
const char *propname, u32 *val, size_t nval) const char *propname, u32 *val, size_t nval)
{ {
return fwnode_property_read_int_array(fwnode, propname, sizeof(u32), return fwnode_property_read_int_array(fwnode, propname, sizeof(u32),
...@@ -551,7 +553,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u32_array); ...@@ -551,7 +553,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u32_array);
* %-EOVERFLOW if the size of the property is not as expected, * %-EOVERFLOW if the size of the property is not as expected,
* %-ENXIO if no suitable firmware interface is present. * %-ENXIO if no suitable firmware interface is present.
*/ */
int fwnode_property_read_u64_array(struct fwnode_handle *fwnode, int fwnode_property_read_u64_array(const struct fwnode_handle *fwnode,
const char *propname, u64 *val, size_t nval) const char *propname, u64 *val, size_t nval)
{ {
return fwnode_property_read_int_array(fwnode, propname, sizeof(u64), return fwnode_property_read_int_array(fwnode, propname, sizeof(u64),
...@@ -577,7 +579,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u64_array); ...@@ -577,7 +579,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_u64_array);
* %-EOVERFLOW if the size of the property is not as expected, * %-EOVERFLOW if the size of the property is not as expected,
* %-ENXIO if no suitable firmware interface is present. * %-ENXIO if no suitable firmware interface is present.
*/ */
int fwnode_property_read_string_array(struct fwnode_handle *fwnode, int fwnode_property_read_string_array(const struct fwnode_handle *fwnode,
const char *propname, const char **val, const char *propname, const char **val,
size_t nval) size_t nval)
{ {
...@@ -609,7 +611,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_string_array); ...@@ -609,7 +611,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_string_array);
* %-EPROTO or %-EILSEQ if the property is not a string, * %-EPROTO or %-EILSEQ if the property is not a string,
* %-ENXIO if no suitable firmware interface is present. * %-ENXIO if no suitable firmware interface is present.
*/ */
int fwnode_property_read_string(struct fwnode_handle *fwnode, int fwnode_property_read_string(const struct fwnode_handle *fwnode,
const char *propname, const char **val) const char *propname, const char **val)
{ {
int ret = fwnode_property_read_string_array(fwnode, propname, val, 1); int ret = fwnode_property_read_string_array(fwnode, propname, val, 1);
...@@ -633,7 +635,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_string); ...@@ -633,7 +635,7 @@ EXPORT_SYMBOL_GPL(fwnode_property_read_string);
* %-EPROTO if the property is not an array of strings, * %-EPROTO if the property is not an array of strings,
* %-ENXIO if no suitable firmware interface is present. * %-ENXIO if no suitable firmware interface is present.
*/ */
int fwnode_property_match_string(struct fwnode_handle *fwnode, int fwnode_property_match_string(const struct fwnode_handle *fwnode,
const char *propname, const char *string) const char *propname, const char *string)
{ {
const char **values; const char **values;
...@@ -940,7 +942,7 @@ EXPORT_SYMBOL_GPL(fwnode_get_next_parent); ...@@ -940,7 +942,7 @@ EXPORT_SYMBOL_GPL(fwnode_get_next_parent);
* Return parent firmware node of the given node if possible or %NULL if no * Return parent firmware node of the given node if possible or %NULL if no
* parent was available. * parent was available.
*/ */
struct fwnode_handle *fwnode_get_parent(struct fwnode_handle *fwnode) struct fwnode_handle *fwnode_get_parent(const struct fwnode_handle *fwnode)
{ {
return fwnode_call_ptr_op(fwnode, get_parent); return fwnode_call_ptr_op(fwnode, get_parent);
} }
...@@ -951,8 +953,9 @@ EXPORT_SYMBOL_GPL(fwnode_get_parent); ...@@ -951,8 +953,9 @@ EXPORT_SYMBOL_GPL(fwnode_get_parent);
* @fwnode: Firmware node to find the next child node for. * @fwnode: Firmware node to find the next child node for.
* @child: Handle to one of the node's child nodes or a %NULL handle. * @child: Handle to one of the node's child nodes or a %NULL handle.
*/ */
struct fwnode_handle *fwnode_get_next_child_node(struct fwnode_handle *fwnode, struct fwnode_handle *
struct fwnode_handle *child) fwnode_get_next_child_node(const struct fwnode_handle *fwnode,
struct fwnode_handle *child)
{ {
return fwnode_call_ptr_op(fwnode, get_next_child_node, child); return fwnode_call_ptr_op(fwnode, get_next_child_node, child);
} }
...@@ -983,8 +986,9 @@ EXPORT_SYMBOL_GPL(device_get_next_child_node); ...@@ -983,8 +986,9 @@ EXPORT_SYMBOL_GPL(device_get_next_child_node);
* @fwnode: Firmware node to find the named child node for. * @fwnode: Firmware node to find the named child node for.
* @childname: String to match child node name against. * @childname: String to match child node name against.
*/ */
struct fwnode_handle *fwnode_get_named_child_node(struct fwnode_handle *fwnode, struct fwnode_handle *
const char *childname) fwnode_get_named_child_node(const struct fwnode_handle *fwnode,
const char *childname)
{ {
return fwnode_call_ptr_op(fwnode, get_named_child_node, childname); return fwnode_call_ptr_op(fwnode, get_named_child_node, childname);
} }
...@@ -1030,7 +1034,7 @@ EXPORT_SYMBOL_GPL(fwnode_handle_put); ...@@ -1030,7 +1034,7 @@ EXPORT_SYMBOL_GPL(fwnode_handle_put);
* fwnode_device_is_available - check if a device is available for use * fwnode_device_is_available - check if a device is available for use
* @fwnode: Pointer to the fwnode of the device. * @fwnode: Pointer to the fwnode of the device.
*/ */
bool fwnode_device_is_available(struct fwnode_handle *fwnode) bool fwnode_device_is_available(const struct fwnode_handle *fwnode)
{ {
return fwnode_call_bool_op(fwnode, device_is_available); return fwnode_call_bool_op(fwnode, device_is_available);
} }
...@@ -1168,7 +1172,7 @@ EXPORT_SYMBOL(device_get_mac_address); ...@@ -1168,7 +1172,7 @@ EXPORT_SYMBOL(device_get_mac_address);
* are available. * are available.
*/ */
struct fwnode_handle * struct fwnode_handle *
fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode, fwnode_graph_get_next_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_handle *prev) struct fwnode_handle *prev)
{ {
return fwnode_call_ptr_op(fwnode, graph_get_next_endpoint, prev); return fwnode_call_ptr_op(fwnode, graph_get_next_endpoint, prev);
...@@ -1182,7 +1186,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_next_endpoint); ...@@ -1182,7 +1186,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_next_endpoint);
* Return: the firmware node of the device the @endpoint belongs to. * Return: the firmware node of the device the @endpoint belongs to.
*/ */
struct fwnode_handle * struct fwnode_handle *
fwnode_graph_get_port_parent(struct fwnode_handle *endpoint) fwnode_graph_get_port_parent(const struct fwnode_handle *endpoint)
{ {
struct fwnode_handle *port, *parent; struct fwnode_handle *port, *parent;
...@@ -1202,7 +1206,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_port_parent); ...@@ -1202,7 +1206,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_port_parent);
* Extracts firmware node of a remote device the @fwnode points to. * Extracts firmware node of a remote device the @fwnode points to.
*/ */
struct fwnode_handle * struct fwnode_handle *
fwnode_graph_get_remote_port_parent(struct fwnode_handle *fwnode) fwnode_graph_get_remote_port_parent(const struct fwnode_handle *fwnode)
{ {
struct fwnode_handle *endpoint, *parent; struct fwnode_handle *endpoint, *parent;
...@@ -1221,7 +1225,8 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_port_parent); ...@@ -1221,7 +1225,8 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_port_parent);
* *
* Extracts firmware node of a remote port the @fwnode points to. * Extracts firmware node of a remote port the @fwnode points to.
*/ */
struct fwnode_handle *fwnode_graph_get_remote_port(struct fwnode_handle *fwnode) struct fwnode_handle *
fwnode_graph_get_remote_port(const struct fwnode_handle *fwnode)
{ {
return fwnode_get_next_parent(fwnode_graph_get_remote_endpoint(fwnode)); return fwnode_get_next_parent(fwnode_graph_get_remote_endpoint(fwnode));
} }
...@@ -1234,7 +1239,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_port); ...@@ -1234,7 +1239,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_port);
* Extracts firmware node of a remote endpoint the @fwnode points to. * Extracts firmware node of a remote endpoint the @fwnode points to.
*/ */
struct fwnode_handle * struct fwnode_handle *
fwnode_graph_get_remote_endpoint(struct fwnode_handle *fwnode) fwnode_graph_get_remote_endpoint(const struct fwnode_handle *fwnode)
{ {
return fwnode_call_ptr_op(fwnode, graph_get_remote_endpoint); return fwnode_call_ptr_op(fwnode, graph_get_remote_endpoint);
} }
...@@ -1249,8 +1254,9 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_endpoint); ...@@ -1249,8 +1254,9 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_endpoint);
* Return: Remote fwnode handle associated with remote endpoint node linked * Return: Remote fwnode handle associated with remote endpoint node linked
* to @node. Use fwnode_node_put() on it when done. * to @node. Use fwnode_node_put() on it when done.
*/ */
struct fwnode_handle *fwnode_graph_get_remote_node(struct fwnode_handle *fwnode, struct fwnode_handle *
u32 port_id, u32 endpoint_id) fwnode_graph_get_remote_node(const struct fwnode_handle *fwnode, u32 port_id,
u32 endpoint_id)
{ {
struct fwnode_handle *endpoint = NULL; struct fwnode_handle *endpoint = NULL;
...@@ -1286,7 +1292,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_node); ...@@ -1286,7 +1292,7 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_node);
* information in @endpoint. The caller must hold a reference to * information in @endpoint. The caller must hold a reference to
* @fwnode. * @fwnode.
*/ */
int fwnode_graph_parse_endpoint(struct fwnode_handle *fwnode, int fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_endpoint *endpoint) struct fwnode_endpoint *endpoint)
{ {
memset(endpoint, 0, sizeof(*endpoint)); memset(endpoint, 0, sizeof(*endpoint));
......
...@@ -815,23 +815,23 @@ static void of_fwnode_put(struct fwnode_handle *fwnode) ...@@ -815,23 +815,23 @@ static void of_fwnode_put(struct fwnode_handle *fwnode)
of_node_put(to_of_node(fwnode)); of_node_put(to_of_node(fwnode));
} }
static bool of_fwnode_device_is_available(struct fwnode_handle *fwnode) static bool of_fwnode_device_is_available(const struct fwnode_handle *fwnode)
{ {
return of_device_is_available(to_of_node(fwnode)); return of_device_is_available(to_of_node(fwnode));
} }
static bool of_fwnode_property_present(struct fwnode_handle *fwnode, static bool of_fwnode_property_present(const struct fwnode_handle *fwnode,
const char *propname) const char *propname)
{ {
return of_property_read_bool(to_of_node(fwnode), propname); return of_property_read_bool(to_of_node(fwnode), propname);
} }
static int of_fwnode_property_read_int_array(struct fwnode_handle *fwnode, static int of_fwnode_property_read_int_array(const struct fwnode_handle *fwnode,
const char *propname, const char *propname,
unsigned int elem_size, void *val, unsigned int elem_size, void *val,
size_t nval) size_t nval)
{ {
struct device_node *node = to_of_node(fwnode); const struct device_node *node = to_of_node(fwnode);
if (!val) if (!val)
return of_property_count_elems_of_size(node, propname, return of_property_count_elems_of_size(node, propname,
...@@ -851,24 +851,26 @@ static int of_fwnode_property_read_int_array(struct fwnode_handle *fwnode, ...@@ -851,24 +851,26 @@ static int of_fwnode_property_read_int_array(struct fwnode_handle *fwnode,
return -ENXIO; return -ENXIO;
} }
static int of_fwnode_property_read_string_array(struct fwnode_handle *fwnode, static int
const char *propname, of_fwnode_property_read_string_array(const struct fwnode_handle *fwnode,
const char **val, size_t nval) const char *propname, const char **val,
size_t nval)
{ {
struct device_node *node = to_of_node(fwnode); const struct device_node *node = to_of_node(fwnode);
return val ? return val ?
of_property_read_string_array(node, propname, val, nval) : of_property_read_string_array(node, propname, val, nval) :
of_property_count_strings(node, propname); of_property_count_strings(node, propname);
} }
static struct fwnode_handle *of_fwnode_get_parent(struct fwnode_handle *fwnode) static struct fwnode_handle *
of_fwnode_get_parent(const struct fwnode_handle *fwnode)
{ {
return of_fwnode_handle(of_get_parent(to_of_node(fwnode))); return of_fwnode_handle(of_get_parent(to_of_node(fwnode)));
} }
static struct fwnode_handle * static struct fwnode_handle *
of_fwnode_get_next_child_node(struct fwnode_handle *fwnode, of_fwnode_get_next_child_node(const struct fwnode_handle *fwnode,
struct fwnode_handle *child) struct fwnode_handle *child)
{ {
return of_fwnode_handle(of_get_next_available_child(to_of_node(fwnode), return of_fwnode_handle(of_get_next_available_child(to_of_node(fwnode),
...@@ -876,10 +878,10 @@ of_fwnode_get_next_child_node(struct fwnode_handle *fwnode, ...@@ -876,10 +878,10 @@ of_fwnode_get_next_child_node(struct fwnode_handle *fwnode,
} }
static struct fwnode_handle * static struct fwnode_handle *
of_fwnode_get_named_child_node(struct fwnode_handle *fwnode, of_fwnode_get_named_child_node(const struct fwnode_handle *fwnode,
const char *childname) const char *childname)
{ {
struct device_node *node = to_of_node(fwnode); const struct device_node *node = to_of_node(fwnode);
struct device_node *child; struct device_node *child;
for_each_available_child_of_node(node, child) for_each_available_child_of_node(node, child)
...@@ -890,7 +892,7 @@ of_fwnode_get_named_child_node(struct fwnode_handle *fwnode, ...@@ -890,7 +892,7 @@ of_fwnode_get_named_child_node(struct fwnode_handle *fwnode,
} }
static struct fwnode_handle * static struct fwnode_handle *
of_fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode, of_fwnode_graph_get_next_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_handle *prev) struct fwnode_handle *prev)
{ {
return of_fwnode_handle(of_graph_get_next_endpoint(to_of_node(fwnode), return of_fwnode_handle(of_graph_get_next_endpoint(to_of_node(fwnode),
...@@ -898,7 +900,7 @@ of_fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode, ...@@ -898,7 +900,7 @@ of_fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode,
} }
static struct fwnode_handle * static struct fwnode_handle *
of_fwnode_graph_get_remote_endpoint(struct fwnode_handle *fwnode) of_fwnode_graph_get_remote_endpoint(const struct fwnode_handle *fwnode)
{ {
return of_fwnode_handle(of_parse_phandle(to_of_node(fwnode), return of_fwnode_handle(of_parse_phandle(to_of_node(fwnode),
"remote-endpoint", 0)); "remote-endpoint", 0));
...@@ -921,10 +923,10 @@ of_fwnode_graph_get_port_parent(struct fwnode_handle *fwnode) ...@@ -921,10 +923,10 @@ of_fwnode_graph_get_port_parent(struct fwnode_handle *fwnode)
return of_fwnode_handle(of_get_next_parent(np)); return of_fwnode_handle(of_get_next_parent(np));
} }
static int of_fwnode_graph_parse_endpoint(struct fwnode_handle *fwnode, static int of_fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_endpoint *endpoint) struct fwnode_endpoint *endpoint)
{ {
struct device_node *node = to_of_node(fwnode); const struct device_node *node = to_of_node(fwnode);
struct device_node *port_node = of_get_parent(node); struct device_node *port_node = of_get_parent(node);
endpoint->local_fwnode = fwnode; endpoint->local_fwnode = fwnode;
......
...@@ -1029,13 +1029,14 @@ int acpi_node_prop_read(const struct fwnode_handle *fwnode, ...@@ -1029,13 +1029,14 @@ int acpi_node_prop_read(const struct fwnode_handle *fwnode,
int acpi_dev_prop_read(const struct acpi_device *adev, const char *propname, int acpi_dev_prop_read(const struct acpi_device *adev, const char *propname,
enum dev_prop_type proptype, void *val, size_t nval); enum dev_prop_type proptype, void *val, size_t nval);
struct fwnode_handle *acpi_get_next_subnode(struct fwnode_handle *fwnode, struct fwnode_handle *acpi_get_next_subnode(const struct fwnode_handle *fwnode,
struct fwnode_handle *child); struct fwnode_handle *child);
struct fwnode_handle *acpi_node_get_parent(struct fwnode_handle *fwnode); struct fwnode_handle *acpi_node_get_parent(const struct fwnode_handle *fwnode);
struct fwnode_handle *acpi_graph_get_next_endpoint(struct fwnode_handle *fwnode, struct fwnode_handle *
struct fwnode_handle *prev); acpi_graph_get_next_endpoint(const struct fwnode_handle *fwnode,
int acpi_graph_get_remote_endpoint(struct fwnode_handle *fwnode, struct fwnode_handle *prev);
int acpi_graph_get_remote_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_handle **remote, struct fwnode_handle **remote,
struct fwnode_handle **port, struct fwnode_handle **port,
struct fwnode_handle **endpoint); struct fwnode_handle **endpoint);
...@@ -1157,26 +1158,27 @@ static inline int acpi_dev_prop_read(const struct acpi_device *adev, ...@@ -1157,26 +1158,27 @@ static inline int acpi_dev_prop_read(const struct acpi_device *adev,
} }
static inline struct fwnode_handle * static inline struct fwnode_handle *
acpi_get_next_subnode(struct fwnode_handle *fwnode, struct fwnode_handle *child) acpi_get_next_subnode(const struct fwnode_handle *fwnode,
struct fwnode_handle *child)
{ {
return NULL; return NULL;
} }
static inline struct fwnode_handle * static inline struct fwnode_handle *
acpi_node_get_parent(struct fwnode_handle *fwnode) acpi_node_get_parent(const struct fwnode_handle *fwnode)
{ {
return NULL; return NULL;
} }
static inline struct fwnode_handle * static inline struct fwnode_handle *
acpi_graph_get_next_endpoint(struct fwnode_handle *fwnode, acpi_graph_get_next_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_handle *prev) struct fwnode_handle *prev)
{ {
return ERR_PTR(-ENXIO); return ERR_PTR(-ENXIO);
} }
static inline int static inline int
acpi_graph_get_remote_endpoint(struct fwnode_handle *fwnode, acpi_graph_get_remote_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_handle **remote, struct fwnode_handle **remote,
struct fwnode_handle **port, struct fwnode_handle **port,
struct fwnode_handle **endpoint) struct fwnode_handle **endpoint)
......
...@@ -55,30 +55,32 @@ struct fwnode_endpoint { ...@@ -55,30 +55,32 @@ struct fwnode_endpoint {
struct fwnode_operations { struct fwnode_operations {
void (*get)(struct fwnode_handle *fwnode); void (*get)(struct fwnode_handle *fwnode);
void (*put)(struct fwnode_handle *fwnode); void (*put)(struct fwnode_handle *fwnode);
bool (*device_is_available)(struct fwnode_handle *fwnode); bool (*device_is_available)(const struct fwnode_handle *fwnode);
bool (*property_present)(struct fwnode_handle *fwnode, bool (*property_present)(const struct fwnode_handle *fwnode,
const char *propname); const char *propname);
int (*property_read_int_array)(struct fwnode_handle *fwnode, int (*property_read_int_array)(const struct fwnode_handle *fwnode,
const char *propname, const char *propname,
unsigned int elem_size, void *val, unsigned int elem_size, void *val,
size_t nval); size_t nval);
int (*property_read_string_array)(struct fwnode_handle *fwnode_handle, int
const char *propname, (*property_read_string_array)(const struct fwnode_handle *fwnode_handle,
const char **val, size_t nval); const char *propname, const char **val,
struct fwnode_handle *(*get_parent)(struct fwnode_handle *fwnode); size_t nval);
struct fwnode_handle *(*get_parent)(const struct fwnode_handle *fwnode);
struct fwnode_handle * struct fwnode_handle *
(*get_next_child_node)(struct fwnode_handle *fwnode, (*get_next_child_node)(const struct fwnode_handle *fwnode,
struct fwnode_handle *child); struct fwnode_handle *child);
struct fwnode_handle * struct fwnode_handle *
(*get_named_child_node)(struct fwnode_handle *fwnode, const char *name); (*get_named_child_node)(const struct fwnode_handle *fwnode,
const char *name);
struct fwnode_handle * struct fwnode_handle *
(*graph_get_next_endpoint)(struct fwnode_handle *fwnode, (*graph_get_next_endpoint)(const struct fwnode_handle *fwnode,
struct fwnode_handle *prev); struct fwnode_handle *prev);
struct fwnode_handle * struct fwnode_handle *
(*graph_get_remote_endpoint)(struct fwnode_handle *fwnode); (*graph_get_remote_endpoint)(const struct fwnode_handle *fwnode);
struct fwnode_handle * struct fwnode_handle *
(*graph_get_port_parent)(struct fwnode_handle *fwnode); (*graph_get_port_parent)(struct fwnode_handle *fwnode);
int (*graph_parse_endpoint)(struct fwnode_handle *fwnode, int (*graph_parse_endpoint)(const struct fwnode_handle *fwnode,
struct fwnode_endpoint *endpoint); struct fwnode_endpoint *endpoint);
}; };
......
...@@ -51,46 +51,48 @@ int device_property_read_string(struct device *dev, const char *propname, ...@@ -51,46 +51,48 @@ int device_property_read_string(struct device *dev, const char *propname,
int device_property_match_string(struct device *dev, int device_property_match_string(struct device *dev,
const char *propname, const char *string); const char *propname, const char *string);
bool fwnode_device_is_available(struct fwnode_handle *fwnode); bool fwnode_device_is_available(const struct fwnode_handle *fwnode);
bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname); bool fwnode_property_present(const struct fwnode_handle *fwnode,
int fwnode_property_read_u8_array(struct fwnode_handle *fwnode, const char *propname);
int fwnode_property_read_u8_array(const struct fwnode_handle *fwnode,
const char *propname, u8 *val, const char *propname, u8 *val,
size_t nval); size_t nval);
int fwnode_property_read_u16_array(struct fwnode_handle *fwnode, int fwnode_property_read_u16_array(const struct fwnode_handle *fwnode,
const char *propname, u16 *val, const char *propname, u16 *val,
size_t nval); size_t nval);
int fwnode_property_read_u32_array(struct fwnode_handle *fwnode, int fwnode_property_read_u32_array(const struct fwnode_handle *fwnode,
const char *propname, u32 *val, const char *propname, u32 *val,
size_t nval); size_t nval);
int fwnode_property_read_u64_array(struct fwnode_handle *fwnode, int fwnode_property_read_u64_array(const struct fwnode_handle *fwnode,
const char *propname, u64 *val, const char *propname, u64 *val,
size_t nval); size_t nval);
int fwnode_property_read_string_array(struct fwnode_handle *fwnode, int fwnode_property_read_string_array(const struct fwnode_handle *fwnode,
const char *propname, const char **val, const char *propname, const char **val,
size_t nval); size_t nval);
int fwnode_property_read_string(struct fwnode_handle *fwnode, int fwnode_property_read_string(const struct fwnode_handle *fwnode,
const char *propname, const char **val); const char *propname, const char **val);
int fwnode_property_match_string(struct fwnode_handle *fwnode, int fwnode_property_match_string(const struct fwnode_handle *fwnode,
const char *propname, const char *string); const char *propname, const char *string);
struct fwnode_handle *fwnode_get_parent(struct fwnode_handle *fwnode); struct fwnode_handle *fwnode_get_parent(const struct fwnode_handle *fwnode);
struct fwnode_handle *fwnode_get_next_parent(struct fwnode_handle *fwnode); struct fwnode_handle *fwnode_get_next_parent(
struct fwnode_handle *fwnode_get_next_child_node(struct fwnode_handle *fwnode, struct fwnode_handle *fwnode);
struct fwnode_handle *child); struct fwnode_handle *fwnode_get_next_child_node(
const struct fwnode_handle *fwnode, struct fwnode_handle *child);
#define fwnode_for_each_child_node(fwnode, child) \ #define fwnode_for_each_child_node(fwnode, child) \
for (child = fwnode_get_next_child_node(fwnode, NULL); child; \ for (child = fwnode_get_next_child_node(fwnode, NULL); child; \
child = fwnode_get_next_child_node(fwnode, child)) child = fwnode_get_next_child_node(fwnode, child))
struct fwnode_handle *device_get_next_child_node(struct device *dev, struct fwnode_handle *device_get_next_child_node(
struct fwnode_handle *child); struct device *dev, struct fwnode_handle *child);
#define device_for_each_child_node(dev, child) \ #define device_for_each_child_node(dev, child) \
for (child = device_get_next_child_node(dev, NULL); child; \ for (child = device_get_next_child_node(dev, NULL); child; \
child = device_get_next_child_node(dev, child)) child = device_get_next_child_node(dev, child))
struct fwnode_handle *fwnode_get_named_child_node(struct fwnode_handle *fwnode, struct fwnode_handle *fwnode_get_named_child_node(
const char *childname); const struct fwnode_handle *fwnode, const char *childname);
struct fwnode_handle *device_get_named_child_node(struct device *dev, struct fwnode_handle *device_get_named_child_node(struct device *dev,
const char *childname); const char *childname);
...@@ -129,31 +131,31 @@ static inline int device_property_read_u64(struct device *dev, ...@@ -129,31 +131,31 @@ static inline int device_property_read_u64(struct device *dev,
return device_property_read_u64_array(dev, propname, val, 1); return device_property_read_u64_array(dev, propname, val, 1);
} }
static inline bool fwnode_property_read_bool(struct fwnode_handle *fwnode, static inline bool fwnode_property_read_bool(const struct fwnode_handle *fwnode,
const char *propname) const char *propname)
{ {
return fwnode_property_present(fwnode, propname); return fwnode_property_present(fwnode, propname);
} }
static inline int fwnode_property_read_u8(struct fwnode_handle *fwnode, static inline int fwnode_property_read_u8(const struct fwnode_handle *fwnode,
const char *propname, u8 *val) const char *propname, u8 *val)
{ {
return fwnode_property_read_u8_array(fwnode, propname, val, 1); return fwnode_property_read_u8_array(fwnode, propname, val, 1);
} }
static inline int fwnode_property_read_u16(struct fwnode_handle *fwnode, static inline int fwnode_property_read_u16(const struct fwnode_handle *fwnode,
const char *propname, u16 *val) const char *propname, u16 *val)
{ {
return fwnode_property_read_u16_array(fwnode, propname, val, 1); return fwnode_property_read_u16_array(fwnode, propname, val, 1);
} }
static inline int fwnode_property_read_u32(struct fwnode_handle *fwnode, static inline int fwnode_property_read_u32(const struct fwnode_handle *fwnode,
const char *propname, u32 *val) const char *propname, u32 *val)
{ {
return fwnode_property_read_u32_array(fwnode, propname, val, 1); return fwnode_property_read_u32_array(fwnode, propname, val, 1);
} }
static inline int fwnode_property_read_u64(struct fwnode_handle *fwnode, static inline int fwnode_property_read_u64(const struct fwnode_handle *fwnode,
const char *propname, u64 *val) const char *propname, u64 *val)
{ {
return fwnode_property_read_u64_array(fwnode, propname, val, 1); return fwnode_property_read_u64_array(fwnode, propname, val, 1);
...@@ -274,19 +276,20 @@ int device_get_phy_mode(struct device *dev); ...@@ -274,19 +276,20 @@ int device_get_phy_mode(struct device *dev);
void *device_get_mac_address(struct device *dev, char *addr, int alen); void *device_get_mac_address(struct device *dev, char *addr, int alen);
struct fwnode_handle *fwnode_graph_get_next_endpoint( struct fwnode_handle *fwnode_graph_get_next_endpoint(
struct fwnode_handle *fwnode, struct fwnode_handle *prev); const struct fwnode_handle *fwnode, struct fwnode_handle *prev);
struct fwnode_handle * struct fwnode_handle *
fwnode_graph_get_port_parent(struct fwnode_handle *fwnode); fwnode_graph_get_port_parent(const struct fwnode_handle *fwnode);
struct fwnode_handle *fwnode_graph_get_remote_port_parent( struct fwnode_handle *fwnode_graph_get_remote_port_parent(
struct fwnode_handle *fwnode); const struct fwnode_handle *fwnode);
struct fwnode_handle *fwnode_graph_get_remote_port( struct fwnode_handle *fwnode_graph_get_remote_port(
struct fwnode_handle *fwnode); const struct fwnode_handle *fwnode);
struct fwnode_handle *fwnode_graph_get_remote_endpoint( struct fwnode_handle *fwnode_graph_get_remote_endpoint(
struct fwnode_handle *fwnode); const struct fwnode_handle *fwnode);
struct fwnode_handle *fwnode_graph_get_remote_node(struct fwnode_handle *fwnode, struct fwnode_handle *
u32 port, u32 endpoint); fwnode_graph_get_remote_node(const struct fwnode_handle *fwnode, u32 port,
u32 endpoint);
int fwnode_graph_parse_endpoint(struct fwnode_handle *fwnode, int fwnode_graph_parse_endpoint(const struct fwnode_handle *fwnode,
struct fwnode_endpoint *endpoint); struct fwnode_endpoint *endpoint);
#endif /* _LINUX_PROPERTY_H_ */ #endif /* _LINUX_PROPERTY_H_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment