Title: [8711] trunk/drivers/staging/iio/accel/adis16220_core.c: adis16220: read capture buffer one by one will be stable
Revision
8711
Author
bhsong
Date
2010-05-13 02:09:25 -0400 (Thu, 13 May 2010)

Log Message

adis16220: read capture buffer one by one will be stable

Modified Paths


Diff

Modified: trunk/drivers/staging/iio/accel/adis16220_core.c (8710 => 8711)


--- trunk/drivers/staging/iio/accel/adis16220_core.c	2010-05-13 05:32:05 UTC (rev 8710)
+++ trunk/drivers/staging/iio/accel/adis16220_core.c	2010-05-13 06:09:25 UTC (rev 8711)
@@ -355,22 +355,6 @@
 static ssize_t adis16220_capture_buffer_read(struct adis16220_state *st, char *buf,
 			loff_t off, size_t count, int addr)
 {
-	struct spi_message msg;
-	struct spi_transfer xfers[] = {
-		{
-			.tx_buf = st->tx,
-			.bits_per_word = 8,
-			.len = 2,
-			.cs_change = 1,
-			.delay_usecs = 25,
-		}, {
-			.tx_buf = st->tx,
-			.rx_buf = st->rx,
-			.bits_per_word = 8,
-			.cs_change = 1,
-			.delay_usecs = 25,
-		},
-	};
 	int ret;
 	int i;
 
@@ -389,27 +373,12 @@
 		return -EIO;
 
 	/* read count/2 values from capture buffer */
-	mutex_lock(&st->buf_lock);
-
 	for (i = 0; i < count; i += 2) {
-		st->tx[i] = ADIS16220_READ_REG(addr);
-		st->tx[i + 1] = 0;
+		ret = adis16220_spi_read_reg_16(&st->indio_dev->dev, addr, (u16 *)(buf + i));
+		if (ret)
+			return -EIO;
 	}
-	xfers[1].len = count;
 
-	spi_message_init(&msg);
-	spi_message_add_tail(&xfers[0], &msg);
-	spi_message_add_tail(&xfers[1], &msg);
-	ret = spi_sync(st->us, &msg);
-	if (ret) {
-
-		mutex_unlock(&st->buf_lock);
-		return -EIO;
-	}
-
-	memcpy(buf, st->rx, count);
-
-	mutex_unlock(&st->buf_lock);
 	return count;
 }
 
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to