diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2012-05-12 09:39:43 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-05-14 16:39:20 -0400 |
commit | 4b522ce709fd0591969ac9e8cfb52a8e44bac4b0 (patch) | |
tree | 3b886556618a46e86ef5475013bf04536465880e | |
parent | 62c5183971428a559b687fcb15f548df28dbe8dc (diff) |
staging:iio:accel: Use dev_to_iio_dev()
Replace open-coded instances of getting a iio_dev struct from a device struct
with dev_to_iio_dev().
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/iio/accel/adis16201_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/accel/adis16203_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/accel/adis16204_core.c | 4 | ||||
-rw-r--r-- | drivers/staging/iio/accel/adis16209_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/accel/adis16220_core.c | 14 | ||||
-rw-r--r-- | drivers/staging/iio/accel/adis16240_core.c | 6 | ||||
-rw-r--r-- | drivers/staging/iio/accel/lis3l02dq_core.c | 4 | ||||
-rw-r--r-- | drivers/staging/iio/accel/sca3000_core.c | 22 | ||||
-rw-r--r-- | drivers/staging/iio/accel/sca3000_ring.c | 6 |
9 files changed, 31 insertions, 31 deletions
diff --git a/drivers/staging/iio/accel/adis16201_core.c b/drivers/staging/iio/accel/adis16201_core.c index 62667803c5a7..02b340919c0e 100644 --- a/drivers/staging/iio/accel/adis16201_core.c +++ b/drivers/staging/iio/accel/adis16201_core.c | |||
@@ -171,7 +171,7 @@ static ssize_t adis16201_write_reset(struct device *dev, | |||
171 | ret = strtobool(buf, &res); | 171 | ret = strtobool(buf, &res); |
172 | if (ret || !res) | 172 | if (ret || !res) |
173 | return ret; | 173 | return ret; |
174 | return adis16201_reset(dev_get_drvdata(dev)); | 174 | return adis16201_reset(dev_to_iio_dev(dev)); |
175 | } | 175 | } |
176 | 176 | ||
177 | int adis16201_set_irq(struct iio_dev *indio_dev, bool enable) | 177 | int adis16201_set_irq(struct iio_dev *indio_dev, bool enable) |
diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c index 42d7eea06d1a..15d46bfd1b42 100644 --- a/drivers/staging/iio/accel/adis16203_core.c +++ b/drivers/staging/iio/accel/adis16203_core.c | |||
@@ -182,7 +182,7 @@ static ssize_t adis16203_write_reset(struct device *dev, | |||
182 | struct device_attribute *attr, | 182 | struct device_attribute *attr, |
183 | const char *buf, size_t len) | 183 | const char *buf, size_t len) |
184 | { | 184 | { |
185 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 185 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
186 | if (len < 1) | 186 | if (len < 1) |
187 | return -EINVAL; | 187 | return -EINVAL; |
188 | switch (buf[0]) { | 188 | switch (buf[0]) { |
diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c index eacda583313a..ac9d95e4ea47 100644 --- a/drivers/staging/iio/accel/adis16204_core.c +++ b/drivers/staging/iio/accel/adis16204_core.c | |||
@@ -173,7 +173,7 @@ static ssize_t adis16204_read_14bit_signed(struct device *dev, | |||
173 | struct device_attribute *attr, | 173 | struct device_attribute *attr, |
174 | char *buf) | 174 | char *buf) |
175 | { | 175 | { |
176 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 176 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
177 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); | 177 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); |
178 | s16 val = 0; | 178 | s16 val = 0; |
179 | ssize_t ret; | 179 | ssize_t ret; |
@@ -211,7 +211,7 @@ static ssize_t adis16204_write_reset(struct device *dev, | |||
211 | struct device_attribute *attr, | 211 | struct device_attribute *attr, |
212 | const char *buf, size_t len) | 212 | const char *buf, size_t len) |
213 | { | 213 | { |
214 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 214 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
215 | 215 | ||
216 | if (len < 1) | 216 | if (len < 1) |
217 | return -EINVAL; | 217 | return -EINVAL; |
diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c index 8e8dbe6b707d..f6fd0d31d4f0 100644 --- a/drivers/staging/iio/accel/adis16209_core.c +++ b/drivers/staging/iio/accel/adis16209_core.c | |||
@@ -157,7 +157,7 @@ static ssize_t adis16209_write_reset(struct device *dev, | |||
157 | struct device_attribute *attr, | 157 | struct device_attribute *attr, |
158 | const char *buf, size_t len) | 158 | const char *buf, size_t len) |
159 | { | 159 | { |
160 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 160 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
161 | 161 | ||
162 | if (len < 1) | 162 | if (len < 1) |
163 | return -EINVAL; | 163 | return -EINVAL; |
diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c index e8c513db2d23..6a9ac898cb01 100644 --- a/drivers/staging/iio/accel/adis16220_core.c +++ b/drivers/staging/iio/accel/adis16220_core.c | |||
@@ -145,7 +145,7 @@ static ssize_t adis16220_read_16bit(struct device *dev, | |||
145 | char *buf) | 145 | char *buf) |
146 | { | 146 | { |
147 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); | 147 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); |
148 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 148 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
149 | ssize_t ret; | 149 | ssize_t ret; |
150 | s16 val = 0; | 150 | s16 val = 0; |
151 | 151 | ||
@@ -164,7 +164,7 @@ static ssize_t adis16220_write_16bit(struct device *dev, | |||
164 | const char *buf, | 164 | const char *buf, |
165 | size_t len) | 165 | size_t len) |
166 | { | 166 | { |
167 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 167 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
168 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); | 168 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); |
169 | int ret; | 169 | int ret; |
170 | u16 val; | 170 | u16 val; |
@@ -208,7 +208,7 @@ static ssize_t adis16220_write_reset(struct device *dev, | |||
208 | struct device_attribute *attr, | 208 | struct device_attribute *attr, |
209 | const char *buf, size_t len) | 209 | const char *buf, size_t len) |
210 | { | 210 | { |
211 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 211 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
212 | bool val; | 212 | bool val; |
213 | int ret; | 213 | int ret; |
214 | 214 | ||
@@ -228,7 +228,7 @@ static ssize_t adis16220_write_capture(struct device *dev, | |||
228 | struct device_attribute *attr, | 228 | struct device_attribute *attr, |
229 | const char *buf, size_t len) | 229 | const char *buf, size_t len) |
230 | { | 230 | { |
231 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 231 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
232 | bool val; | 232 | bool val; |
233 | int ret; | 233 | int ret; |
234 | 234 | ||
@@ -393,7 +393,7 @@ static ssize_t adis16220_accel_bin_read(struct file *filp, struct kobject *kobj, | |||
393 | size_t count) | 393 | size_t count) |
394 | { | 394 | { |
395 | struct device *dev = container_of(kobj, struct device, kobj); | 395 | struct device *dev = container_of(kobj, struct device, kobj); |
396 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 396 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
397 | 397 | ||
398 | return adis16220_capture_buffer_read(indio_dev, buf, | 398 | return adis16220_capture_buffer_read(indio_dev, buf, |
399 | off, count, | 399 | off, count, |
@@ -415,7 +415,7 @@ static ssize_t adis16220_adc1_bin_read(struct file *filp, struct kobject *kobj, | |||
415 | size_t count) | 415 | size_t count) |
416 | { | 416 | { |
417 | struct device *dev = container_of(kobj, struct device, kobj); | 417 | struct device *dev = container_of(kobj, struct device, kobj); |
418 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 418 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
419 | 419 | ||
420 | return adis16220_capture_buffer_read(indio_dev, buf, | 420 | return adis16220_capture_buffer_read(indio_dev, buf, |
421 | off, count, | 421 | off, count, |
@@ -437,7 +437,7 @@ static ssize_t adis16220_adc2_bin_read(struct file *filp, struct kobject *kobj, | |||
437 | size_t count) | 437 | size_t count) |
438 | { | 438 | { |
439 | struct device *dev = container_of(kobj, struct device, kobj); | 439 | struct device *dev = container_of(kobj, struct device, kobj); |
440 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 440 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
441 | 441 | ||
442 | return adis16220_capture_buffer_read(indio_dev, buf, | 442 | return adis16220_capture_buffer_read(indio_dev, buf, |
443 | off, count, | 443 | off, count, |
diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c index f043bbdce36f..8b15eaea3381 100644 --- a/drivers/staging/iio/accel/adis16240_core.c +++ b/drivers/staging/iio/accel/adis16240_core.c | |||
@@ -154,7 +154,7 @@ static ssize_t adis16240_spi_read_signed(struct device *dev, | |||
154 | char *buf, | 154 | char *buf, |
155 | unsigned bits) | 155 | unsigned bits) |
156 | { | 156 | { |
157 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 157 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
158 | int ret; | 158 | int ret; |
159 | s16 val = 0; | 159 | s16 val = 0; |
160 | unsigned shift = 16 - bits; | 160 | unsigned shift = 16 - bits; |
@@ -177,7 +177,7 @@ static ssize_t adis16240_read_12bit_signed(struct device *dev, | |||
177 | char *buf) | 177 | char *buf) |
178 | { | 178 | { |
179 | ssize_t ret; | 179 | ssize_t ret; |
180 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 180 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
181 | 181 | ||
182 | /* Take the iio_dev status lock */ | 182 | /* Take the iio_dev status lock */ |
183 | mutex_lock(&indio_dev->mlock); | 183 | mutex_lock(&indio_dev->mlock); |
@@ -203,7 +203,7 @@ static ssize_t adis16240_write_reset(struct device *dev, | |||
203 | struct device_attribute *attr, | 203 | struct device_attribute *attr, |
204 | const char *buf, size_t len) | 204 | const char *buf, size_t len) |
205 | { | 205 | { |
206 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 206 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
207 | 207 | ||
208 | if (len < 1) | 208 | if (len < 1) |
209 | return -EINVAL; | 209 | return -EINVAL; |
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c index a7780439af15..9d263484fb86 100644 --- a/drivers/staging/iio/accel/lis3l02dq_core.c +++ b/drivers/staging/iio/accel/lis3l02dq_core.c | |||
@@ -297,7 +297,7 @@ static ssize_t lis3l02dq_read_frequency(struct device *dev, | |||
297 | struct device_attribute *attr, | 297 | struct device_attribute *attr, |
298 | char *buf) | 298 | char *buf) |
299 | { | 299 | { |
300 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 300 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
301 | int ret, len = 0; | 301 | int ret, len = 0; |
302 | s8 t; | 302 | s8 t; |
303 | ret = lis3l02dq_spi_read_reg_8(indio_dev, | 303 | ret = lis3l02dq_spi_read_reg_8(indio_dev, |
@@ -328,7 +328,7 @@ static ssize_t lis3l02dq_write_frequency(struct device *dev, | |||
328 | const char *buf, | 328 | const char *buf, |
329 | size_t len) | 329 | size_t len) |
330 | { | 330 | { |
331 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 331 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
332 | unsigned long val; | 332 | unsigned long val; |
333 | int ret; | 333 | int ret; |
334 | u8 t; | 334 | u8 t; |
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c index 3c5aea5efb2b..6ec5c204ff1d 100644 --- a/drivers/staging/iio/accel/sca3000_core.c +++ b/drivers/staging/iio/accel/sca3000_core.c | |||
@@ -241,7 +241,7 @@ error_ret: | |||
241 | static int sca3000_check_status(struct device *dev) | 241 | static int sca3000_check_status(struct device *dev) |
242 | { | 242 | { |
243 | int ret; | 243 | int ret; |
244 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 244 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
245 | struct sca3000_state *st = iio_priv(indio_dev); | 245 | struct sca3000_state *st = iio_priv(indio_dev); |
246 | 246 | ||
247 | mutex_lock(&st->lock); | 247 | mutex_lock(&st->lock); |
@@ -268,7 +268,7 @@ static ssize_t sca3000_show_rev(struct device *dev, | |||
268 | char *buf) | 268 | char *buf) |
269 | { | 269 | { |
270 | int len = 0, ret; | 270 | int len = 0, ret; |
271 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 271 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
272 | struct sca3000_state *st = iio_priv(indio_dev); | 272 | struct sca3000_state *st = iio_priv(indio_dev); |
273 | 273 | ||
274 | mutex_lock(&st->lock); | 274 | mutex_lock(&st->lock); |
@@ -296,7 +296,7 @@ sca3000_show_available_measurement_modes(struct device *dev, | |||
296 | struct device_attribute *attr, | 296 | struct device_attribute *attr, |
297 | char *buf) | 297 | char *buf) |
298 | { | 298 | { |
299 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 299 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
300 | struct sca3000_state *st = iio_priv(indio_dev); | 300 | struct sca3000_state *st = iio_priv(indio_dev); |
301 | int len = 0; | 301 | int len = 0; |
302 | 302 | ||
@@ -328,7 +328,7 @@ sca3000_show_measurement_mode(struct device *dev, | |||
328 | struct device_attribute *attr, | 328 | struct device_attribute *attr, |
329 | char *buf) | 329 | char *buf) |
330 | { | 330 | { |
331 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 331 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
332 | struct sca3000_state *st = iio_priv(indio_dev); | 332 | struct sca3000_state *st = iio_priv(indio_dev); |
333 | int len = 0, ret; | 333 | int len = 0, ret; |
334 | 334 | ||
@@ -379,7 +379,7 @@ sca3000_store_measurement_mode(struct device *dev, | |||
379 | const char *buf, | 379 | const char *buf, |
380 | size_t len) | 380 | size_t len) |
381 | { | 381 | { |
382 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 382 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
383 | struct sca3000_state *st = iio_priv(indio_dev); | 383 | struct sca3000_state *st = iio_priv(indio_dev); |
384 | int ret; | 384 | int ret; |
385 | u8 mask = 0x03; | 385 | u8 mask = 0x03; |
@@ -517,7 +517,7 @@ static ssize_t sca3000_read_av_freq(struct device *dev, | |||
517 | struct device_attribute *attr, | 517 | struct device_attribute *attr, |
518 | char *buf) | 518 | char *buf) |
519 | { | 519 | { |
520 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 520 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
521 | struct sca3000_state *st = iio_priv(indio_dev); | 521 | struct sca3000_state *st = iio_priv(indio_dev); |
522 | int len = 0, ret, val; | 522 | int len = 0, ret, val; |
523 | 523 | ||
@@ -588,7 +588,7 @@ static ssize_t sca3000_read_frequency(struct device *dev, | |||
588 | struct device_attribute *attr, | 588 | struct device_attribute *attr, |
589 | char *buf) | 589 | char *buf) |
590 | { | 590 | { |
591 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 591 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
592 | struct sca3000_state *st = iio_priv(indio_dev); | 592 | struct sca3000_state *st = iio_priv(indio_dev); |
593 | int ret, len = 0, base_freq = 0, val; | 593 | int ret, len = 0, base_freq = 0, val; |
594 | 594 | ||
@@ -630,7 +630,7 @@ static ssize_t sca3000_set_frequency(struct device *dev, | |||
630 | const char *buf, | 630 | const char *buf, |
631 | size_t len) | 631 | size_t len) |
632 | { | 632 | { |
633 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 633 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
634 | struct sca3000_state *st = iio_priv(indio_dev); | 634 | struct sca3000_state *st = iio_priv(indio_dev); |
635 | int ret, base_freq = 0; | 635 | int ret, base_freq = 0; |
636 | int ctrlval; | 636 | int ctrlval; |
@@ -690,7 +690,7 @@ static ssize_t sca3000_read_temp(struct device *dev, | |||
690 | struct device_attribute *attr, | 690 | struct device_attribute *attr, |
691 | char *buf) | 691 | char *buf) |
692 | { | 692 | { |
693 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 693 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
694 | struct sca3000_state *st = iio_priv(indio_dev); | 694 | struct sca3000_state *st = iio_priv(indio_dev); |
695 | int ret; | 695 | int ret; |
696 | int val; | 696 | int val; |
@@ -911,7 +911,7 @@ static ssize_t sca3000_query_free_fall_mode(struct device *dev, | |||
911 | char *buf) | 911 | char *buf) |
912 | { | 912 | { |
913 | int ret, len; | 913 | int ret, len; |
914 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 914 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
915 | struct sca3000_state *st = iio_priv(indio_dev); | 915 | struct sca3000_state *st = iio_priv(indio_dev); |
916 | int val; | 916 | int val; |
917 | 917 | ||
@@ -939,7 +939,7 @@ static ssize_t sca3000_set_free_fall_mode(struct device *dev, | |||
939 | const char *buf, | 939 | const char *buf, |
940 | size_t len) | 940 | size_t len) |
941 | { | 941 | { |
942 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 942 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
943 | struct sca3000_state *st = iio_priv(indio_dev); | 943 | struct sca3000_state *st = iio_priv(indio_dev); |
944 | long val; | 944 | long val; |
945 | int ret; | 945 | int ret; |
diff --git a/drivers/staging/iio/accel/sca3000_ring.c b/drivers/staging/iio/accel/sca3000_ring.c index 889bc86047f9..b7e1a002630a 100644 --- a/drivers/staging/iio/accel/sca3000_ring.c +++ b/drivers/staging/iio/accel/sca3000_ring.c | |||
@@ -157,7 +157,7 @@ static ssize_t sca3000_query_ring_int(struct device *dev, | |||
157 | { | 157 | { |
158 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); | 158 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); |
159 | int ret, val; | 159 | int ret, val; |
160 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 160 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
161 | struct sca3000_state *st = iio_priv(indio_dev); | 161 | struct sca3000_state *st = iio_priv(indio_dev); |
162 | 162 | ||
163 | mutex_lock(&st->lock); | 163 | mutex_lock(&st->lock); |
@@ -178,7 +178,7 @@ static ssize_t sca3000_set_ring_int(struct device *dev, | |||
178 | const char *buf, | 178 | const char *buf, |
179 | size_t len) | 179 | size_t len) |
180 | { | 180 | { |
181 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 181 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
182 | struct sca3000_state *st = iio_priv(indio_dev); | 182 | struct sca3000_state *st = iio_priv(indio_dev); |
183 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); | 183 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); |
184 | long val; | 184 | long val; |
@@ -219,7 +219,7 @@ static ssize_t sca3000_show_buffer_scale(struct device *dev, | |||
219 | struct device_attribute *attr, | 219 | struct device_attribute *attr, |
220 | char *buf) | 220 | char *buf) |
221 | { | 221 | { |
222 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 222 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
223 | struct sca3000_state *st = iio_priv(indio_dev); | 223 | struct sca3000_state *st = iio_priv(indio_dev); |
224 | 224 | ||
225 | return sprintf(buf, "0.%06d\n", 4*st->info->scale); | 225 | return sprintf(buf, "0.%06d\n", 4*st->info->scale); |