Commit 7de3e650 authored by Alex Elder's avatar Alex Elder Committed by Greg Kroah-Hartman

greybus: ENODEV can be an expected error too

When probing for i2c devices, a read transfer operation can be used.
In this case, it is expected that some devices will not be found, so
ENODEV is an expected failure.  Don't issue a warning if the return
value is -ENODEV.

Note:  I anticipate we might have to be more precise in identifying
this specific case, but for now this eliminates a bogus warning when
probing i2c devices.
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent aa26351d
...@@ -276,6 +276,14 @@ static void gb_i2c_transfer_response(struct i2c_msg *msgs, u32 msg_count, ...@@ -276,6 +276,14 @@ static void gb_i2c_transfer_response(struct i2c_msg *msgs, u32 msg_count,
} }
} }
/*
* Some i2c transfer operations return results that are expected.
*/
static bool gb_i2c_expected_transfer_error(int errno)
{
return errno == -EAGAIN || errno == -ENODEV;
}
static int gb_i2c_transfer_operation(struct gb_i2c_device *gb_i2c_dev, static int gb_i2c_transfer_operation(struct gb_i2c_device *gb_i2c_dev,
struct i2c_msg *msgs, u32 msg_count) struct i2c_msg *msgs, u32 msg_count)
{ {
...@@ -294,7 +302,7 @@ static int gb_i2c_transfer_operation(struct gb_i2c_device *gb_i2c_dev, ...@@ -294,7 +302,7 @@ static int gb_i2c_transfer_operation(struct gb_i2c_device *gb_i2c_dev,
response = operation->response->payload; response = operation->response->payload;
gb_i2c_transfer_response(msgs, msg_count, response); gb_i2c_transfer_response(msgs, msg_count, response);
ret = msg_count; ret = msg_count;
} else if (ret != -EAGAIN) { } else if (!gb_i2c_expected_transfer_error(ret)) {
pr_err("transfer operation failed (%d)\n", ret); pr_err("transfer operation failed (%d)\n", ret);
} }
gb_operation_destroy(operation); gb_operation_destroy(operation);
......
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