diff options
author | Sakari Ailus <sakari.ailus@linux.intel.com> | 2017-07-11 18:20:20 +0300 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2017-11-27 14:12:20 +0800 |
commit | 78c7bff759e6a0c54cc886ebea8781f2041841ef (patch) | |
tree | 590b3f17149113a9268ded4f6df805fac214d6bf /drivers | |
parent | c36f8b2d07a42a54ca0d016df39cf2592b6838dc (diff) |
UPSTREAM: device property: Introduce fwnode_call_bool_op() for ops that return bool
fwnode_call_int_op() isn't suitable for calling ops that return bool
since it effectively causes the result returned to the user to be
true when an op hasn't been defined or the fwnode is NULL.
Address this by introducing fwnode_call_bool_op() for calling ops
that return bool.
Fixes: 3708184afc77 "device property: Move FW type specific functionality to FW specific files"
Fixes: 2294b3af05e9 "device property: Introduce fwnode_device_is_available()"
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit e8158b486d5f3f55cf372c5a32b42f263bf7f123)
Signed-off-by: Brian J Lovin <brian.j.lovin@intel.com>
BUG=b:64133998
TEST=media device topology shows subdevs registered successfully
TEST=no camera regression
Change-Id: I82ea61a7dd11337859eea3b4030df4e3bb9a1501
Reviewed-on: https://chromium-review.googlesource.com/693681
Commit-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Hyungwoo Yang <hyungwoo.yang@intel.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/property.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/base/property.c b/drivers/base/property.c index 4e105096c47e..d268b83e4148 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -248,10 +248,10 @@ bool fwnode_property_present(struct fwnode_handle *fwnode, const char *propname) { bool ret; - ret = fwnode_call_int_op(fwnode, property_present, propname); + ret = fwnode_call_bool_op(fwnode, property_present, propname); if (ret == false && !IS_ERR_OR_NULL(fwnode) && !IS_ERR_OR_NULL(fwnode->secondary)) - ret = fwnode_call_int_op(fwnode->secondary, property_present, + ret = fwnode_call_bool_op(fwnode->secondary, property_present, propname); return ret; } @@ -954,7 +954,7 @@ EXPORT_SYMBOL_GPL(fwnode_handle_put); */ bool fwnode_device_is_available(struct fwnode_handle *fwnode) { - return fwnode_call_int_op(fwnode, device_is_available); + return fwnode_call_bool_op(fwnode, device_is_available); } EXPORT_SYMBOL_GPL(fwnode_device_is_available); |