All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 01/11] staging:iio:dac:ad5446: Do not exit powerdown when writing a sample
@ 2012-04-24 16:49 Lars-Peter Clausen
  2012-04-24 16:49 ` [PATCH v2 02/11] staging:iio:dac:ad5446: Remove duplicated write sample functions Lars-Peter Clausen
                   ` (9 more replies)
  0 siblings, 10 replies; 16+ messages in thread
From: Lars-Peter Clausen @ 2012-04-24 16:49 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: linux-iio, device-drivers-devel, drivers, Lars-Peter Clausen

Both the powerdown mode bits and the sample value are stored in the same
register, so writing a sample while the device is powered down will clear the
power down bits. To avoid this only update the cached value when the device is
powered down.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Jonathan Cameron <jic23@kernel.org>

----
v1 actually had a small bug in that it would still write to the device's
register when the sample was updated while the device was powered down. This was
not critical since it would send out the powerdown mode again.
---
 drivers/staging/iio/dac/ad5446.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/iio/dac/ad5446.c b/drivers/staging/iio/dac/ad5446.c
index ec6968b..de796c2 100644
--- a/drivers/staging/iio/dac/ad5446.c
+++ b/drivers/staging/iio/dac/ad5446.c
@@ -272,7 +272,7 @@ static int ad5446_write_raw(struct iio_dev *indio_dev,
 			       long mask)
 {
 	struct ad5446_state *st = iio_priv(indio_dev);
-	int ret;
+	int ret = 0;
 
 	switch (mask) {
 	case IIO_CHAN_INFO_RAW:
@@ -282,8 +282,10 @@ static int ad5446_write_raw(struct iio_dev *indio_dev,
 		val <<= chan->scan_type.shift;
 		mutex_lock(&indio_dev->mlock);
 		st->cached_val = val;
-		st->chip_info->store_sample(st, val);
-		ret = spi_sync(st->spi, &st->msg);
+		if (!st->pwr_down) {
+			st->chip_info->store_sample(st, val);
+			ret = spi_sync(st->spi, &st->msg);
+		}
 		mutex_unlock(&indio_dev->mlock);
 		break;
 	default:
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2012-04-24 16:58 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-24 16:49 [PATCH v2 01/11] staging:iio:dac:ad5446: Do not exit powerdown when writing a sample Lars-Peter Clausen
2012-04-24 16:49 ` [PATCH v2 02/11] staging:iio:dac:ad5446: Remove duplicated write sample functions Lars-Peter Clausen
2012-04-24 16:49 ` [PATCH v2 03/11] staging:iio:dac:ad5446: Fix 24bit transfers Lars-Peter Clausen
2012-04-24 16:55   ` Jonathan Cameron
2012-04-24 16:49 ` [PATCH v2 04/11] staging:iio:dac:ad5446: Remove unused struct field Lars-Peter Clausen
2012-04-24 16:49 ` [PATCH v2 05/11] staging:iio:dac:ad5446: Do not check for individual chip ids in probe Lars-Peter Clausen
2012-04-24 16:49 ` [PATCH v2 06/11] staging:iio:dac:ad5446: Remove duplicated chip_info entries Lars-Peter Clausen
2012-04-24 16:49 ` [PATCH v2 07/11] staging:iio:dac:ad5446: Convert to extended channel attributes Lars-Peter Clausen
2012-04-24 16:49 ` [PATCH v2 08/11] staging:iio:dac:ad5446: Consolidate store_sample and store_pwr_down functions Lars-Peter Clausen
2012-04-24 16:56   ` Jonathan Cameron
2012-04-24 16:49 ` [PATCH v2 09/11] staging:iio:dac:ad5446: Return cached value for 'raw' attribute Lars-Peter Clausen
2012-04-24 16:56   ` Jonathan Cameron
2012-04-24 16:49 ` [PATCH v2 10/11] staging:iio:dac:ad5446: Add support for the AD5662 Lars-Peter Clausen
2012-04-24 16:57   ` Jonathan Cameron
2012-04-24 16:49 ` [PATCH v2 11/11] staging:iio:dac:ad5446: Update Kconfig entry Lars-Peter Clausen
2012-04-24 16:58   ` Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.