mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 14:41:02 +07:00
iio: Factor IIO value formating into its own function
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
11cb454f09
commit
3661f3f5e9
@ -35,6 +35,8 @@ int __iio_add_chan_devattr(const char *postfix,
|
|||||||
struct list_head *attr_list);
|
struct list_head *attr_list);
|
||||||
void iio_free_chan_devattr_list(struct list_head *attr_list);
|
void iio_free_chan_devattr_list(struct list_head *attr_list);
|
||||||
|
|
||||||
|
ssize_t iio_format_value(char *buf, unsigned int type, int val, int val2);
|
||||||
|
|
||||||
/* Event interface flags */
|
/* Event interface flags */
|
||||||
#define IIO_BUSY_BIT_POS 1
|
#define IIO_BUSY_BIT_POS 1
|
||||||
|
|
||||||
|
@ -363,22 +363,20 @@ ssize_t iio_enum_write(struct iio_dev *indio_dev,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(iio_enum_write);
|
EXPORT_SYMBOL_GPL(iio_enum_write);
|
||||||
|
|
||||||
static ssize_t iio_read_channel_info(struct device *dev,
|
/**
|
||||||
struct device_attribute *attr,
|
* iio_format_value() - Formats a IIO value into its string representation
|
||||||
char *buf)
|
* @buf: The buffer to which the formated value gets written
|
||||||
|
* @type: One of the IIO_VAL_... constants. This decides how the val and val2
|
||||||
|
* parameters are formatted.
|
||||||
|
* @val: First part of the value, exact meaning depends on the type parameter.
|
||||||
|
* @val2: Second part of the value, exact meaning depends on the type parameter.
|
||||||
|
*/
|
||||||
|
ssize_t iio_format_value(char *buf, unsigned int type, int val, int val2)
|
||||||
{
|
{
|
||||||
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
|
|
||||||
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
|
|
||||||
unsigned long long tmp;
|
unsigned long long tmp;
|
||||||
int val, val2;
|
|
||||||
bool scale_db = false;
|
bool scale_db = false;
|
||||||
int ret = indio_dev->info->read_raw(indio_dev, this_attr->c,
|
|
||||||
&val, &val2, this_attr->address);
|
|
||||||
|
|
||||||
if (ret < 0)
|
switch (type) {
|
||||||
return ret;
|
|
||||||
|
|
||||||
switch (ret) {
|
|
||||||
case IIO_VAL_INT:
|
case IIO_VAL_INT:
|
||||||
return sprintf(buf, "%d\n", val);
|
return sprintf(buf, "%d\n", val);
|
||||||
case IIO_VAL_INT_PLUS_MICRO_DB:
|
case IIO_VAL_INT_PLUS_MICRO_DB:
|
||||||
@ -410,6 +408,22 @@ static ssize_t iio_read_channel_info(struct device *dev,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t iio_read_channel_info(struct device *dev,
|
||||||
|
struct device_attribute *attr,
|
||||||
|
char *buf)
|
||||||
|
{
|
||||||
|
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
|
||||||
|
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
|
||||||
|
int val, val2;
|
||||||
|
int ret = indio_dev->info->read_raw(indio_dev, this_attr->c,
|
||||||
|
&val, &val2, this_attr->address);
|
||||||
|
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return iio_format_value(buf, ret, val, val2);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* iio_str_to_fixpoint() - Parse a fixed-point number from a string
|
* iio_str_to_fixpoint() - Parse a fixed-point number from a string
|
||||||
* @str: The string to parse
|
* @str: The string to parse
|
||||||
|
Loading…
Reference in New Issue
Block a user