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: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>hifive-unleashed-5.1
parent
aa26351d0b
commit
7de3e650fb
|
@ -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,
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue