Linux IIO development
 help / color / mirror / Atom feed
* [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write."
@ 2013-01-31 14:27 Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 02/11] staging:iio:adxrs450: Make transfer buffers __be32 Lars-Peter Clausen
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

This partially reverts commit cb4496876f03631eff913b3c608c964d48d61eb9. There is
no apparent reason why we should split a transaction which consists out of
multiple transfers into multiple transactions each having one transfer. While
this works it introduces a bunch of unnecessary context switch and additional
setup costs.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 48 ++++++++++++++++++++++----------
 1 file changed, 34 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index f0ce81d..318e8c9 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -34,8 +34,21 @@ static int adxrs450_spi_read_reg_16(struct iio_dev *indio_dev,
 				    u8 reg_address,
 				    u16 *val)
 {
+	struct spi_message msg;
 	struct adxrs450_state *st = iio_priv(indio_dev);
 	int ret;
+	struct spi_transfer xfers[] = {
+		{
+			.tx_buf = st->tx,
+			.bits_per_word = 8,
+			.len = 4,
+			.cs_change = 1,
+		}, {
+			.rx_buf = st->rx,
+			.bits_per_word = 8,
+			.len = 4,
+		},
+	};
 
 	mutex_lock(&st->buf_lock);
 	st->tx[0] = ADXRS450_READ_DATA | (reg_address >> 7);
@@ -46,13 +59,10 @@ static int adxrs450_spi_read_reg_16(struct iio_dev *indio_dev,
 	if (!(hweight32(be32_to_cpu(*(u32 *)st->tx)) & 1))
 		st->tx[3]  |= ADXRS450_P;
 
-	ret = spi_write(st->us, st->tx, 4);
-	if (ret) {
-		dev_err(&st->us->dev, "problem while reading 16 bit register 0x%02x\n",
-			reg_address);
-		goto error_ret;
-	}
-	ret = spi_read(st->us, st->rx, 4);
+	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) {
 		dev_err(&st->us->dev, "problem while reading 16 bit register 0x%02x\n",
 				reg_address);
@@ -105,8 +115,21 @@ static int adxrs450_spi_write_reg_16(struct iio_dev *indio_dev,
  **/
 static int adxrs450_spi_sensor_data(struct iio_dev *indio_dev, s16 *val)
 {
+	struct spi_message msg;
 	struct adxrs450_state *st = iio_priv(indio_dev);
 	int ret;
+	struct spi_transfer xfers[] = {
+		{
+			.tx_buf = st->tx,
+			.bits_per_word = 8,
+			.len = 4,
+			.cs_change = 1,
+		}, {
+			.rx_buf = st->rx,
+			.bits_per_word = 8,
+			.len = 4,
+		},
+	};
 
 	mutex_lock(&st->buf_lock);
 	st->tx[0] = ADXRS450_SENSOR_DATA;
@@ -114,13 +137,10 @@ static int adxrs450_spi_sensor_data(struct iio_dev *indio_dev, s16 *val)
 	st->tx[2] = 0;
 	st->tx[3] = 0;
 
-	ret = spi_write(st->us, st->tx, 4);
-	if (ret) {
-		dev_err(&st->us->dev, "Problem while reading sensor data\n");
-		goto error_ret;
-	}
-
-	ret = spi_read(st->us, st->rx, 4);
+	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) {
 		dev_err(&st->us->dev, "Problem while reading sensor data\n");
 		goto error_ret;
-- 
1.8.0


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

* [PATCH 02/11] staging:iio:adxrs450: Make transfer buffers __be32
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 03/11] staging:iio:adxrs450: Perform sign extension for the calibbias register Lars-Peter Clausen
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

Fixes the following sparse warnings:

	drivers/staging/iio/gyro/adxrs450_core.c:46:15: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:62:17: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:89:15: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:129:17: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:168:16: warning: cast to restricted __be32

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450.h      | 10 ++---
 drivers/staging/iio/gyro/adxrs450_core.c | 66 +++++++++++++++-----------------
 2 files changed, 35 insertions(+), 41 deletions(-)

diff --git a/drivers/staging/iio/gyro/adxrs450.h b/drivers/staging/iio/gyro/adxrs450.h
index f8cf21f..97abea3 100644
--- a/drivers/staging/iio/gyro/adxrs450.h
+++ b/drivers/staging/iio/gyro/adxrs450.h
@@ -4,9 +4,9 @@
 #define ADXRS450_STARTUP_DELAY	50 /* ms */
 
 /* The MSB for the spi commands */
-#define ADXRS450_SENSOR_DATA    0x20
-#define ADXRS450_WRITE_DATA	0x40
-#define ADXRS450_READ_DATA	0x80
+#define ADXRS450_SENSOR_DATA    (0x20 << 24)
+#define ADXRS450_WRITE_DATA	(0x40 << 24)
+#define ADXRS450_READ_DATA	(0x80 << 24)
 
 #define ADXRS450_RATE1	0x00	/* Rate Registers */
 #define ADXRS450_TEMP1	0x02	/* Temperature Registers */
@@ -54,8 +54,8 @@ enum {
 struct adxrs450_state {
 	struct spi_device	*us;
 	struct mutex		buf_lock;
-	u8			tx[ADXRS450_MAX_RX] ____cacheline_aligned;
-	u8			rx[ADXRS450_MAX_TX];
+	__be32			tx ____cacheline_aligned;
+	__be32			rx;
 
 };
 
diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index 318e8c9..91a2fae 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -36,29 +36,28 @@ static int adxrs450_spi_read_reg_16(struct iio_dev *indio_dev,
 {
 	struct spi_message msg;
 	struct adxrs450_state *st = iio_priv(indio_dev);
+	u32 tx;
 	int ret;
 	struct spi_transfer xfers[] = {
 		{
-			.tx_buf = st->tx,
+			.tx_buf = &st->tx,
 			.bits_per_word = 8,
-			.len = 4,
+			.len = sizeof(st->tx),
 			.cs_change = 1,
 		}, {
-			.rx_buf = st->rx,
+			.rx_buf = &st->rx,
 			.bits_per_word = 8,
-			.len = 4,
+			.len = sizeof(st->rx),
 		},
 	};
 
 	mutex_lock(&st->buf_lock);
-	st->tx[0] = ADXRS450_READ_DATA | (reg_address >> 7);
-	st->tx[1] = reg_address << 1;
-	st->tx[2] = 0;
-	st->tx[3] = 0;
+	tx = ADXRS450_READ_DATA | (reg_address << 17);
 
-	if (!(hweight32(be32_to_cpu(*(u32 *)st->tx)) & 1))
-		st->tx[3]  |= ADXRS450_P;
+	if (!(hweight32(tx) & 1))
+		tx |= ADXRS450_P;
 
+	st->tx = cpu_to_be32(tx);
 	spi_message_init(&msg);
 	spi_message_add_tail(&xfers[0], &msg);
 	spi_message_add_tail(&xfers[1], &msg);
@@ -69,7 +68,7 @@ static int adxrs450_spi_read_reg_16(struct iio_dev *indio_dev,
 		goto error_ret;
 	}
 
-	*val = (be32_to_cpu(*(u32 *)st->rx) >> 5) & 0xFFFF;
+	*val = (be32_to_cpu(st->rx) >> 5) & 0xFFFF;
 
 error_ret:
 	mutex_unlock(&st->buf_lock);
@@ -88,18 +87,17 @@ static int adxrs450_spi_write_reg_16(struct iio_dev *indio_dev,
 				     u16 val)
 {
 	struct adxrs450_state *st = iio_priv(indio_dev);
+	u32 tx;
 	int ret;
 
 	mutex_lock(&st->buf_lock);
-	st->tx[0] = ADXRS450_WRITE_DATA | reg_address >> 7;
-	st->tx[1] = reg_address << 1 | val >> 15;
-	st->tx[2] = val >> 7;
-	st->tx[3] = val << 1;
+	tx = ADXRS450_WRITE_DATA | (reg_address << 17) | (val << 1);
 
-	if (!(hweight32(be32_to_cpu(*(u32 *)st->tx)) & 1))
-		st->tx[3] |= ADXRS450_P;
+	if (!(hweight32(tx) & 1))
+		tx |= ADXRS450_P;
 
-	ret = spi_write(st->us, st->tx, 4);
+	st->tx = cpu_to_be32(tx);
+	ret = spi_write(st->us, &st->tx, sizeof(st->tx));
 	if (ret)
 		dev_err(&st->us->dev, "problem while writing 16 bit register 0x%02x\n",
 			reg_address);
@@ -120,22 +118,19 @@ static int adxrs450_spi_sensor_data(struct iio_dev *indio_dev, s16 *val)
 	int ret;
 	struct spi_transfer xfers[] = {
 		{
-			.tx_buf = st->tx,
+			.tx_buf = &st->tx,
 			.bits_per_word = 8,
-			.len = 4,
+			.len = sizeof(st->tx),
 			.cs_change = 1,
 		}, {
-			.rx_buf = st->rx,
+			.rx_buf = &st->rx,
 			.bits_per_word = 8,
-			.len = 4,
+			.len = sizeof(st->rx),
 		},
 	};
 
 	mutex_lock(&st->buf_lock);
-	st->tx[0] = ADXRS450_SENSOR_DATA;
-	st->tx[1] = 0;
-	st->tx[2] = 0;
-	st->tx[3] = 0;
+	st->tx = cpu_to_be32(ADXRS450_SENSOR_DATA);
 
 	spi_message_init(&msg);
 	spi_message_add_tail(&xfers[0], &msg);
@@ -146,7 +141,7 @@ static int adxrs450_spi_sensor_data(struct iio_dev *indio_dev, s16 *val)
 		goto error_ret;
 	}
 
-	*val = (be32_to_cpu(*(u32 *)st->rx) >> 10) & 0xFFFF;
+	*val = (be32_to_cpu(st->rx) >> 10) & 0xFFFF;
 
 error_ret:
 	mutex_unlock(&st->buf_lock);
@@ -163,20 +158,19 @@ static int adxrs450_spi_initial(struct adxrs450_state *st,
 {
 	struct spi_message msg;
 	int ret;
+	u32 tx;
 	struct spi_transfer xfers = {
-		.tx_buf = st->tx,
-		.rx_buf = st->rx,
+		.tx_buf = &st->tx,
+		.rx_buf = &st->rx,
 		.bits_per_word = 8,
-		.len = 4,
+		.len = sizeof(st->tx),
 	};
 
 	mutex_lock(&st->buf_lock);
-	st->tx[0] = ADXRS450_SENSOR_DATA;
-	st->tx[1] = 0;
-	st->tx[2] = 0;
-	st->tx[3] = 0;
+	tx = ADXRS450_SENSOR_DATA;
 	if (chk)
-		st->tx[3] |= (ADXRS450_CHK | ADXRS450_P);
+		tx |= (ADXRS450_CHK | ADXRS450_P);
+	st->tx = cpu_to_be32(tx);
 	spi_message_init(&msg);
 	spi_message_add_tail(&xfers, &msg);
 	ret = spi_sync(st->us, &msg);
@@ -185,7 +179,7 @@ static int adxrs450_spi_initial(struct adxrs450_state *st,
 		goto error_ret;
 	}
 
-	*val = be32_to_cpu(*(u32 *)st->rx);
+	*val = be32_to_cpu(st->rx);
 
 error_ret:
 	mutex_unlock(&st->buf_lock);
-- 
1.8.0


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

* [PATCH 03/11] staging:iio:adxrs450: Perform sign extension for the calibbias register
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 02/11] staging:iio:adxrs450: Make transfer buffers __be32 Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 04/11] staging:iio:adxrs450: Reject out of range calibscale values Lars-Peter Clausen
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

The calibbias (DNC) register contains a 10-bit twos complement value. Perform a
proper sign extension when reading the register, otherwise negative will
incorrectly be displayed as large positive values.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index 91a2fae..4c462d3 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -326,7 +326,7 @@ static int adxrs450_read_raw(struct iio_dev *indio_dev,
 		ret = adxrs450_spi_read_reg_16(indio_dev, ADXRS450_DNC1, &t);
 		if (ret)
 			break;
-		*val = t;
+		*val = sign_extend32(t, 9);
 		ret = IIO_VAL_INT;
 		break;
 	default:
-- 
1.8.0


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

* [PATCH 04/11] staging:iio:adxrs450: Reject out of range calibscale values
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 02/11] staging:iio:adxrs450: Make transfer buffers __be32 Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 03/11] staging:iio:adxrs450: Perform sign extension for the calibbias register Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 05/11] staging:iio:adxrs450: Don't spam the bootlog Lars-Peter Clausen
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

Instead of silently discarding the upper bits reject out of range values for the
calibscale property.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index 4c462d3..96e5284 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -258,9 +258,10 @@ static int adxrs450_write_raw(struct iio_dev *indio_dev,
 	int ret;
 	switch (mask) {
 	case IIO_CHAN_INFO_CALIBBIAS:
+		if (val < -0x400 || val >= 0x400)
+			return -EINVAL;
 		ret = adxrs450_spi_write_reg_16(indio_dev,
-						ADXRS450_DNC1,
-						val & 0x3FF);
+						ADXRS450_DNC1, val);
 		break;
 	default:
 		ret = -EINVAL;
-- 
1.8.0


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

* [PATCH 05/11] staging:iio:adxrs450: Don't spam the bootlog
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (2 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 04/11] staging:iio:adxrs450: Reject out of range calibscale values Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 06/11] staging:iio:adxrs450: Reflow overlong lines Lars-Peter Clausen
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

Don't spam the bootlog with the devices part id and serial number.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index 96e5284..24b7a0f 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -231,20 +231,6 @@ static int adxrs450_initial_setup(struct iio_dev *indio_dev)
 		dev_err(&st->us->dev, "The device is not in normal status!\n");
 		return -EINVAL;
 	}
-	ret = adxrs450_spi_read_reg_16(indio_dev, ADXRS450_PID1, &data);
-	if (ret)
-		return ret;
-	dev_info(&st->us->dev, "The Part ID is 0x%x\n", data);
-
-	ret = adxrs450_spi_read_reg_16(indio_dev, ADXRS450_SNL, &data);
-	if (ret)
-		return ret;
-	t = data;
-	ret = adxrs450_spi_read_reg_16(indio_dev, ADXRS450_SNH, &data);
-	if (ret)
-		return ret;
-	t |= data << 16;
-	dev_info(&st->us->dev, "The Serial Number is 0x%x\n", t);
 
 	return 0;
 }
-- 
1.8.0


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

* [PATCH 06/11] staging:iio:adxrs450: Reflow overlong lines
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (3 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 05/11] staging:iio:adxrs450: Don't spam the bootlog Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 07/11] staging:iio:adxrs450: Don't split string across multiple lines Lars-Peter Clausen
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

Reflow two lines to meet the 80 characters per line limit.

Fixes the following checkpatch warnings:
	WARNING: line over 80 characters
	#29: FILE: staging/iio/gyro/adxrs450_core.c:29:
	+ * @reg_address: the address of the lower of the two registers,which should be an even address,

	WARNING: line over 80 characters
	#81: FILE: staging/iio/gyro/adxrs450_core.c:81:
	+ * @reg_address: the address of the lower of the two registers,which should be an even address,

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index 24b7a0f..dd0b744 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -26,8 +26,8 @@
 /**
  * adxrs450_spi_read_reg_16() - read 2 bytes from a register pair
  * @dev: device associated with child of actual iio_dev
- * @reg_address: the address of the lower of the two registers,which should be an even address,
- * Second register's address is reg_address + 1.
+ * @reg_address: the address of the lower of the two registers, which should be
+ *	an even address, the second register's address is reg_address + 1.
  * @val: somewhere to pass back the value read
  **/
 static int adxrs450_spi_read_reg_16(struct iio_dev *indio_dev,
@@ -78,8 +78,8 @@ error_ret:
 /**
  * adxrs450_spi_write_reg_16() - write 2 bytes data to a register pair
  * @dev: device associated with child of actual actual iio_dev
- * @reg_address: the address of the lower of the two registers,which should be an even address,
- * Second register's address is reg_address + 1.
+ * @reg_address: the address of the lower of the two registers,which should be
+ *	an even address, the second register's address is reg_address + 1.
  * @val: value to be written.
  **/
 static int adxrs450_spi_write_reg_16(struct iio_dev *indio_dev,
-- 
1.8.0


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

* [PATCH 07/11] staging:iio:adxrs450: Don't split string across multiple lines
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (4 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 06/11] staging:iio:adxrs450: Reflow overlong lines Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 08/11] staging:iio:adxrs450: Use usleep_range for the sequential transfer dealy Lars-Peter Clausen
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

This is one of the exceptions to the 80 chars per line rule since breaking the
string in half it badly affects the grep-ability.

Fixes the following checkpatch warning:
	WARNING: quoted string split across lines
	#203: FILE: staging/iio/gyro/adxrs450_core.c:203:
		+		dev_warn(&st->us->dev, "The initial power on response "
		+			 "is not correct! Restart without reset?\n");

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index dd0b744..ea10f84 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -199,8 +199,7 @@ static int adxrs450_initial_setup(struct iio_dev *indio_dev)
 	if (ret)
 		return ret;
 	if (t != 0x01)
-		dev_warn(&st->us->dev, "The initial power on response "
-			 "is not correct! Restart without reset?\n");
+		dev_warn(&st->us->dev, "The initial power on response is not correct! Restart without reset?\n");
 
 	msleep(ADXRS450_STARTUP_DELAY);
 	ret = adxrs450_spi_initial(st, &t, 0);
-- 
1.8.0


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

* [PATCH 08/11] staging:iio:adxrs450: Use usleep_range for the sequential transfer dealy
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (5 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 07/11] staging:iio:adxrs450: Don't split string across multiple lines Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 09/11] staging:iio:adxrs450: Fixup kernel doc comments Lars-Peter Clausen
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

The adxrs450 requires a delay of at least 0.1 ms between register writes.  Using
msleep() for such small delays is not recommended. So use usleep_range instead.

Fixes the following checkpatch warning:
	WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
	+	msleep(1);

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index ea10f84..4115fe1 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -101,7 +101,7 @@ static int adxrs450_spi_write_reg_16(struct iio_dev *indio_dev,
 	if (ret)
 		dev_err(&st->us->dev, "problem while writing 16 bit register 0x%02x\n",
 			reg_address);
-	msleep(1); /* enforce sequential transfer delay 0.1ms */
+	usleep_range(100, 1000); /* enforce sequential transfer delay 0.1ms */
 	mutex_unlock(&st->buf_lock);
 	return ret;
 }
-- 
1.8.0


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

* [PATCH 09/11] staging:iio:adxrs450: Fixup kernel doc comments
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (6 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 08/11] staging:iio:adxrs450: Use usleep_range for the sequential transfer dealy Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 10/11] staging:iio:adxrs450: Move header file contents to main file Lars-Peter Clausen
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

Fix the name of the iio_device parameter for a few functions and add
documentation for one missing function parameter.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/adxrs450_core.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
index 4115fe1..714e323 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450_core.c
@@ -25,7 +25,7 @@
 
 /**
  * adxrs450_spi_read_reg_16() - read 2 bytes from a register pair
- * @dev: device associated with child of actual iio_dev
+ * @indio_dev: device associated with child of actual iio_dev
  * @reg_address: the address of the lower of the two registers, which should be
  *	an even address, the second register's address is reg_address + 1.
  * @val: somewhere to pass back the value read
@@ -77,7 +77,7 @@ error_ret:
 
 /**
  * adxrs450_spi_write_reg_16() - write 2 bytes data to a register pair
- * @dev: device associated with child of actual actual iio_dev
+ * @indio_dev: device associated with child of actual actual iio_dev
  * @reg_address: the address of the lower of the two registers,which should be
  *	an even address, the second register's address is reg_address + 1.
  * @val: value to be written.
@@ -108,7 +108,7 @@ static int adxrs450_spi_write_reg_16(struct iio_dev *indio_dev,
 
 /**
  * adxrs450_spi_sensor_data() - read 2 bytes sensor data
- * @dev: device associated with child of actual iio_dev
+ * @indio_dev: device associated with child of actual iio_dev
  * @val: somewhere to pass back the value read
  **/
 static int adxrs450_spi_sensor_data(struct iio_dev *indio_dev, s16 *val)
@@ -152,6 +152,7 @@ error_ret:
  * adxrs450_spi_initial() - use for initializing procedure.
  * @st: device instance specific data
  * @val: somewhere to pass back the value read
+ * @chk: Whether to perform fault check
  **/
 static int adxrs450_spi_initial(struct adxrs450_state *st,
 		u32 *val, char chk)
-- 
1.8.0


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

* [PATCH 10/11] staging:iio:adxrs450: Move header file contents to main file
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (7 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 09/11] staging:iio:adxrs450: Fixup kernel doc comments Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-01-31 14:27 ` [PATCH 11/11] staging:iio: Move adxrs450 driver out of staging Lars-Peter Clausen
  2013-02-02  9:29 ` [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Jonathan Cameron
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

The contents of the adxrs450 header file is not used outside the main drivers
file, so just move the contents from the header file into the drivers main file.
Also rename the adxrs450 driver file from adxrs450_core.c to adxrs450.c.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/staging/iio/gyro/Makefile                  |  1 -
 .../iio/gyro/{adxrs450_core.c => adxrs450.c}       | 58 +++++++++++++++++++-
 drivers/staging/iio/gyro/adxrs450.h                | 62 ----------------------
 3 files changed, 57 insertions(+), 64 deletions(-)
 rename drivers/staging/iio/gyro/{adxrs450_core.c => adxrs450.c} (86%)
 delete mode 100644 drivers/staging/iio/gyro/adxrs450.h

diff --git a/drivers/staging/iio/gyro/Makefile b/drivers/staging/iio/gyro/Makefile
index e66c5ef..ad35e57 100644
--- a/drivers/staging/iio/gyro/Makefile
+++ b/drivers/staging/iio/gyro/Makefile
@@ -8,5 +8,4 @@ obj-$(CONFIG_ADIS16060) += adis16060.o
 adis16260-y             := adis16260_core.o
 obj-$(CONFIG_ADIS16260) += adis16260.o
 
-adxrs450-y             := adxrs450_core.o
 obj-$(CONFIG_ADXRS450) += adxrs450.o
diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450.c
similarity index 86%
rename from drivers/staging/iio/gyro/adxrs450_core.c
rename to drivers/staging/iio/gyro/adxrs450.c
index 714e323..d9d4383 100644
--- a/drivers/staging/iio/gyro/adxrs450_core.c
+++ b/drivers/staging/iio/gyro/adxrs450.c
@@ -21,7 +21,63 @@
 #include <linux/iio/iio.h>
 #include <linux/iio/sysfs.h>
 
-#include "adxrs450.h"
+#define ADXRS450_STARTUP_DELAY	50 /* ms */
+
+/* The MSB for the spi commands */
+#define ADXRS450_SENSOR_DATA    (0x20 << 24)
+#define ADXRS450_WRITE_DATA	(0x40 << 24)
+#define ADXRS450_READ_DATA	(0x80 << 24)
+
+#define ADXRS450_RATE1	0x00	/* Rate Registers */
+#define ADXRS450_TEMP1	0x02	/* Temperature Registers */
+#define ADXRS450_LOCST1	0x04	/* Low CST Memory Registers */
+#define ADXRS450_HICST1	0x06	/* High CST Memory Registers */
+#define ADXRS450_QUAD1	0x08	/* Quad Memory Registers */
+#define ADXRS450_FAULT1	0x0A	/* Fault Registers */
+#define ADXRS450_PID1	0x0C	/* Part ID Register 1 */
+#define ADXRS450_SNH	0x0E	/* Serial Number Registers, 4 bytes */
+#define ADXRS450_SNL	0x10
+#define ADXRS450_DNC1	0x12	/* Dynamic Null Correction Registers */
+/* Check bits */
+#define ADXRS450_P	0x01
+#define ADXRS450_CHK	0x02
+#define ADXRS450_CST	0x04
+#define ADXRS450_PWR	0x08
+#define ADXRS450_POR	0x10
+#define ADXRS450_NVM	0x20
+#define ADXRS450_Q	0x40
+#define ADXRS450_PLL	0x80
+#define ADXRS450_UV	0x100
+#define ADXRS450_OV	0x200
+#define ADXRS450_AMP	0x400
+#define ADXRS450_FAIL	0x800
+
+#define ADXRS450_WRERR_MASK	(0x7 << 29)
+
+#define ADXRS450_MAX_RX 4
+#define ADXRS450_MAX_TX 4
+
+#define ADXRS450_GET_ST(a)	((a >> 26) & 0x3)
+
+enum {
+	ID_ADXRS450,
+	ID_ADXRS453,
+};
+
+/**
+ * struct adxrs450_state - device instance specific data
+ * @us:			actual spi_device
+ * @buf_lock:		mutex to protect tx and rx
+ * @tx:			transmit buffer
+ * @rx:			receive buffer
+ **/
+struct adxrs450_state {
+	struct spi_device	*us;
+	struct mutex		buf_lock;
+	__be32			tx ____cacheline_aligned;
+	__be32			rx;
+
+};
 
 /**
  * adxrs450_spi_read_reg_16() - read 2 bytes from a register pair
diff --git a/drivers/staging/iio/gyro/adxrs450.h b/drivers/staging/iio/gyro/adxrs450.h
deleted file mode 100644
index 97abea3..0000000
--- a/drivers/staging/iio/gyro/adxrs450.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef SPI_ADXRS450_H_
-#define SPI_ADXRS450_H_
-
-#define ADXRS450_STARTUP_DELAY	50 /* ms */
-
-/* The MSB for the spi commands */
-#define ADXRS450_SENSOR_DATA    (0x20 << 24)
-#define ADXRS450_WRITE_DATA	(0x40 << 24)
-#define ADXRS450_READ_DATA	(0x80 << 24)
-
-#define ADXRS450_RATE1	0x00	/* Rate Registers */
-#define ADXRS450_TEMP1	0x02	/* Temperature Registers */
-#define ADXRS450_LOCST1	0x04	/* Low CST Memory Registers */
-#define ADXRS450_HICST1	0x06	/* High CST Memory Registers */
-#define ADXRS450_QUAD1	0x08	/* Quad Memory Registers */
-#define ADXRS450_FAULT1	0x0A	/* Fault Registers */
-#define ADXRS450_PID1	0x0C	/* Part ID Register 1 */
-#define ADXRS450_SNH	0x0E	/* Serial Number Registers, 4 bytes */
-#define ADXRS450_SNL	0x10
-#define ADXRS450_DNC1	0x12	/* Dynamic Null Correction Registers */
-/* Check bits */
-#define ADXRS450_P	0x01
-#define ADXRS450_CHK	0x02
-#define ADXRS450_CST	0x04
-#define ADXRS450_PWR	0x08
-#define ADXRS450_POR	0x10
-#define ADXRS450_NVM	0x20
-#define ADXRS450_Q	0x40
-#define ADXRS450_PLL	0x80
-#define ADXRS450_UV	0x100
-#define ADXRS450_OV	0x200
-#define ADXRS450_AMP	0x400
-#define ADXRS450_FAIL	0x800
-
-#define ADXRS450_WRERR_MASK	(0x7 << 29)
-
-#define ADXRS450_MAX_RX 4
-#define ADXRS450_MAX_TX 4
-
-#define ADXRS450_GET_ST(a)	((a >> 26) & 0x3)
-
-enum {
-	ID_ADXRS450,
-	ID_ADXRS453,
-};
-
-/**
- * struct adxrs450_state - device instance specific data
- * @us:			actual spi_device
- * @buf_lock:		mutex to protect tx and rx
- * @tx:			transmit buffer
- * @rx:			receive buffer
- **/
-struct adxrs450_state {
-	struct spi_device	*us;
-	struct mutex		buf_lock;
-	__be32			tx ____cacheline_aligned;
-	__be32			rx;
-
-};
-
-#endif /* SPI_ADXRS450_H_ */
-- 
1.8.0


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

* [PATCH 11/11] staging:iio: Move adxrs450 driver out of staging
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (8 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 10/11] staging:iio:adxrs450: Move header file contents to main file Lars-Peter Clausen
@ 2013-01-31 14:27 ` Lars-Peter Clausen
  2013-02-02  9:29 ` [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Jonathan Cameron
  10 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2013-01-31 14:27 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Lars-Peter Clausen

The adxrs450 is in a reasonable shape now. It follows the IIO ABI and non of the
standard code checker tools report any issue, so move it out of staging.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/iio/gyro/Kconfig                  | 10 ++++++++++
 drivers/iio/gyro/Makefile                 |  1 +
 drivers/{staging => }/iio/gyro/adxrs450.c |  0
 drivers/staging/iio/gyro/Kconfig          | 10 ----------
 drivers/staging/iio/gyro/Makefile         |  2 --
 5 files changed, 11 insertions(+), 12 deletions(-)
 rename drivers/{staging => }/iio/gyro/adxrs450.c (100%)

diff --git a/drivers/iio/gyro/Kconfig b/drivers/iio/gyro/Kconfig
index bbcb7ae..6227cbb 100644
--- a/drivers/iio/gyro/Kconfig
+++ b/drivers/iio/gyro/Kconfig
@@ -26,6 +26,16 @@ config ADIS16136
 	  Say yes here to build support for the Analog Devices ADIS16133, ADIS16135,
 	  ADIS16136 gyroscope devices.
 
+config ADXRS450
+	tristate "Analog Devices ADXRS450/3 Digital Output Gyroscope SPI driver"
+	depends on SPI
+	help
+	  Say yes here to build support for Analog Devices ADXRS450 and ADXRS453
+	  programmable digital output gyroscope.
+
+	  This driver can also be built as a module.  If so, the module
+	  will be called adxrs450.
+
 config HID_SENSOR_GYRO_3D
 	depends on HID_SENSOR_HUB
 	select IIO_BUFFER
diff --git a/drivers/iio/gyro/Makefile b/drivers/iio/gyro/Makefile
index 8410a76..94eba8d 100644
--- a/drivers/iio/gyro/Makefile
+++ b/drivers/iio/gyro/Makefile
@@ -5,4 +5,5 @@
 obj-$(CONFIG_ADIS16080) += adis16080.o
 obj-$(CONFIG_ADIS16130) += adis16130.o
 obj-$(CONFIG_ADIS16136) += adis16136.o
+obj-$(CONFIG_ADXRS450) += adxrs450.o
 obj-$(CONFIG_HID_SENSOR_GYRO_3D) += hid-sensor-gyro-3d.o
diff --git a/drivers/staging/iio/gyro/adxrs450.c b/drivers/iio/gyro/adxrs450.c
similarity index 100%
rename from drivers/staging/iio/gyro/adxrs450.c
rename to drivers/iio/gyro/adxrs450.c
diff --git a/drivers/staging/iio/gyro/Kconfig b/drivers/staging/iio/gyro/Kconfig
index 073bfdc..b433371 100644
--- a/drivers/staging/iio/gyro/Kconfig
+++ b/drivers/staging/iio/gyro/Kconfig
@@ -22,14 +22,4 @@ config ADIS16260
 	  This driver can also be built as a module.  If so, the module
 	  will be called adis16260.
 
-config ADXRS450
-	tristate "Analog Devices ADXRS450/3 Digital Output Gyroscope SPI driver"
-	depends on SPI
-	help
-	  Say yes here to build support for Analog Devices ADXRS450 and ADXRS453
-	  programmable digital output gyroscope.
-
-	  This driver can also be built as a module.  If so, the module
-	  will be called adxrs450.
-
 endmenu
diff --git a/drivers/staging/iio/gyro/Makefile b/drivers/staging/iio/gyro/Makefile
index ad35e57..975f95b 100644
--- a/drivers/staging/iio/gyro/Makefile
+++ b/drivers/staging/iio/gyro/Makefile
@@ -7,5 +7,3 @@ obj-$(CONFIG_ADIS16060) += adis16060.o
 
 adis16260-y             := adis16260_core.o
 obj-$(CONFIG_ADIS16260) += adis16260.o
-
-obj-$(CONFIG_ADXRS450) += adxrs450.o
-- 
1.8.0


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

* Re: [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write."
  2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
                   ` (9 preceding siblings ...)
  2013-01-31 14:27 ` [PATCH 11/11] staging:iio: Move adxrs450 driver out of staging Lars-Peter Clausen
@ 2013-02-02  9:29 ` Jonathan Cameron
  10 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron @ 2013-02-02  9:29 UTC (permalink / raw)
  To: Lars-Peter Clausen; +Cc: Jonathan Cameron, linux-iio

On 01/31/2013 02:27 PM, Lars-Peter Clausen wrote:
> This partially reverts commit cb4496876f03631eff913b3c608c964d48d61eb9. There is
> no apparent reason why we should split a transaction which consists out of
> multiple transfers into multiple transactions each having one transfer. While
> this works it introduces a bunch of unnecessary context switch and additional
> setup costs.
> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Whole series applied to togreg branch of iio.git.

Thanks,
> ---
>  drivers/staging/iio/gyro/adxrs450_core.c | 48 ++++++++++++++++++++++----------
>  1 file changed, 34 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
> index f0ce81d..318e8c9 100644
> --- a/drivers/staging/iio/gyro/adxrs450_core.c
> +++ b/drivers/staging/iio/gyro/adxrs450_core.c
> @@ -34,8 +34,21 @@ static int adxrs450_spi_read_reg_16(struct iio_dev *indio_dev,
>  				    u8 reg_address,
>  				    u16 *val)
>  {
> +	struct spi_message msg;
>  	struct adxrs450_state *st = iio_priv(indio_dev);
>  	int ret;
> +	struct spi_transfer xfers[] = {
> +		{
> +			.tx_buf = st->tx,
> +			.bits_per_word = 8,
> +			.len = 4,
> +			.cs_change = 1,
> +		}, {
> +			.rx_buf = st->rx,
> +			.bits_per_word = 8,
> +			.len = 4,
> +		},
> +	};
>  
>  	mutex_lock(&st->buf_lock);
>  	st->tx[0] = ADXRS450_READ_DATA | (reg_address >> 7);
> @@ -46,13 +59,10 @@ static int adxrs450_spi_read_reg_16(struct iio_dev *indio_dev,
>  	if (!(hweight32(be32_to_cpu(*(u32 *)st->tx)) & 1))
>  		st->tx[3]  |= ADXRS450_P;
>  
> -	ret = spi_write(st->us, st->tx, 4);
> -	if (ret) {
> -		dev_err(&st->us->dev, "problem while reading 16 bit register 0x%02x\n",
> -			reg_address);
> -		goto error_ret;
> -	}
> -	ret = spi_read(st->us, st->rx, 4);
> +	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) {
>  		dev_err(&st->us->dev, "problem while reading 16 bit register 0x%02x\n",
>  				reg_address);
> @@ -105,8 +115,21 @@ static int adxrs450_spi_write_reg_16(struct iio_dev *indio_dev,
>   **/
>  static int adxrs450_spi_sensor_data(struct iio_dev *indio_dev, s16 *val)
>  {
> +	struct spi_message msg;
>  	struct adxrs450_state *st = iio_priv(indio_dev);
>  	int ret;
> +	struct spi_transfer xfers[] = {
> +		{
> +			.tx_buf = st->tx,
> +			.bits_per_word = 8,
> +			.len = 4,
> +			.cs_change = 1,
> +		}, {
> +			.rx_buf = st->rx,
> +			.bits_per_word = 8,
> +			.len = 4,
> +		},
> +	};
>  
>  	mutex_lock(&st->buf_lock);
>  	st->tx[0] = ADXRS450_SENSOR_DATA;
> @@ -114,13 +137,10 @@ static int adxrs450_spi_sensor_data(struct iio_dev *indio_dev, s16 *val)
>  	st->tx[2] = 0;
>  	st->tx[3] = 0;
>  
> -	ret = spi_write(st->us, st->tx, 4);
> -	if (ret) {
> -		dev_err(&st->us->dev, "Problem while reading sensor data\n");
> -		goto error_ret;
> -	}
> -
> -	ret = spi_read(st->us, st->rx, 4);
> +	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) {
>  		dev_err(&st->us->dev, "Problem while reading sensor data\n");
>  		goto error_ret;
> 

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

end of thread, other threads:[~2013-02-02  9:29 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-31 14:27 [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 02/11] staging:iio:adxrs450: Make transfer buffers __be32 Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 03/11] staging:iio:adxrs450: Perform sign extension for the calibbias register Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 04/11] staging:iio:adxrs450: Reject out of range calibscale values Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 05/11] staging:iio:adxrs450: Don't spam the bootlog Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 06/11] staging:iio:adxrs450: Reflow overlong lines Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 07/11] staging:iio:adxrs450: Don't split string across multiple lines Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 08/11] staging:iio:adxrs450: Use usleep_range for the sequential transfer dealy Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 09/11] staging:iio:adxrs450: Fixup kernel doc comments Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 10/11] staging:iio:adxrs450: Move header file contents to main file Lars-Peter Clausen
2013-01-31 14:27 ` [PATCH 11/11] staging:iio: Move adxrs450 driver out of staging Lars-Peter Clausen
2013-02-02  9:29 ` [PATCH 01/11] Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write." Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox