|
@@ -478,21 +478,16 @@ ssize_t iio_enum_write(struct iio_dev *indio_dev,
|
|
size_t len)
|
|
size_t len)
|
|
{
|
|
{
|
|
const struct iio_enum *e = (const struct iio_enum *)priv;
|
|
const struct iio_enum *e = (const struct iio_enum *)priv;
|
|
- unsigned int i;
|
|
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
if (!e->set)
|
|
if (!e->set)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
- for (i = 0; i < e->num_items; i++) {
|
|
|
|
- if (sysfs_streq(buf, e->items[i]))
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (i == e->num_items)
|
|
|
|
- return -EINVAL;
|
|
|
|
|
|
+ ret = __sysfs_match_string(e->items, e->num_items, buf);
|
|
|
|
+ if (ret < 0)
|
|
|
|
+ return ret;
|
|
|
|
|
|
- ret = e->set(indio_dev, chan, i);
|
|
|
|
|
|
+ ret = e->set(indio_dev, chan, ret);
|
|
return ret ? ret : len;
|
|
return ret ? ret : len;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(iio_enum_write);
|
|
EXPORT_SYMBOL_GPL(iio_enum_write);
|