|
@@ -512,6 +512,12 @@ int iio_str_to_fixpoint(const char *str, int fract_mult,
|
|
int i = 0, f = 0;
|
|
int i = 0, f = 0;
|
|
bool integer_part = true, negative = false;
|
|
bool integer_part = true, negative = false;
|
|
|
|
|
|
|
|
+ if (fract_mult == 0) {
|
|
|
|
+ *fract = 0;
|
|
|
|
+
|
|
|
|
+ return kstrtoint(str, 0, integer);
|
|
|
|
+ }
|
|
|
|
+
|
|
if (str[0] == '-') {
|
|
if (str[0] == '-') {
|
|
negative = true;
|
|
negative = true;
|
|
str++;
|
|
str++;
|
|
@@ -571,6 +577,9 @@ static ssize_t iio_write_channel_info(struct device *dev,
|
|
if (indio_dev->info->write_raw_get_fmt)
|
|
if (indio_dev->info->write_raw_get_fmt)
|
|
switch (indio_dev->info->write_raw_get_fmt(indio_dev,
|
|
switch (indio_dev->info->write_raw_get_fmt(indio_dev,
|
|
this_attr->c, this_attr->address)) {
|
|
this_attr->c, this_attr->address)) {
|
|
|
|
+ case IIO_VAL_INT:
|
|
|
|
+ fract_mult = 0;
|
|
|
|
+ break;
|
|
case IIO_VAL_INT_PLUS_MICRO:
|
|
case IIO_VAL_INT_PLUS_MICRO:
|
|
fract_mult = 100000;
|
|
fract_mult = 100000;
|
|
break;
|
|
break;
|