Thread (23 messages) 23 messages, 5 authors, 2016-05-31

Re: [PATCH v2 2/7] iio: inv_mpu6050: Initial regcache support

From: Peter Rosin <hidden>
Date: 2016-05-20 06:39:23
Also in: linux-devicetree, linux-iio, lkml

Hi!

On 2016-05-20 04:34, Matt Ranostay wrote:
On Wed, May 18, 2016 at 8:00 AM, Crestez Dan Leonard
[off-list ref] wrote:
quoted
Signed-off-by: Crestez Dan Leonard <redacted>
---
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 47 ++++++++++++++++++++++++++++++
 drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c  |  5 ----
 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h  |  1 +
 drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c  |  5 ----
 4 files changed, 48 insertions(+), 10 deletions(-)
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index b269b37..5918c23 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -116,6 +116,53 @@ static const struct inv_mpu6050_hw hw_info[] = {
        },
 };

+static bool inv_mpu6050_volatile_reg(struct device *dev, unsigned int reg)
+{
+       if (reg >= INV_MPU6050_REG_RAW_ACCEL && reg < INV_MPU6050_REG_RAW_ACCEL + 6)
+               return true;
+       if (reg >= INV_MPU6050_REG_RAW_GYRO && reg < INV_MPU6050_REG_RAW_GYRO + 6)
+               return true;
I think you want to put parenthesis around the addition operations...
Maybe.
the condition check probably don't evaluate to what you are expecting.
Looks sane to me since + has highest precedence, then < and >=, and && comes
in last...
quoted
+       switch (reg) {
+       case INV_MPU6050_REG_TEMPERATURE:
+       case INV_MPU6050_REG_TEMPERATURE + 1:
+       case INV_MPU6050_REG_USER_CTRL:
+       case INV_MPU6050_REG_PWR_MGMT_1:
+       case INV_MPU6050_REG_FIFO_COUNT_H:
+       case INV_MPU6050_REG_FIFO_COUNT_H + 1:
+       case INV_MPU6050_REG_FIFO_R_W:
+               return true;
+       default:
+               return false;
+       }
+}
...but even so, I think I would use an ellipsis in the switch statement
instead, like so:

static bool inv_mpu6050_volatile_reg(struct device *dev, unsigned int reg)
{
	switch (reg) {
	case INV_MPU6050_REG_RAW_ACCEL ... INV_MPU6050_REG_RAW_ACCEL + 5:
	case INV_MPU6050_REG_RAW_GYRO ... INV_MPU6050_REG_RAW_GYRO  + 5:
	case INV_MPU6050_REG_TEMPERATURE:
	case INV_MPU6050_REG_TEMPERATURE + 1:
	case INV_MPU6050_REG_USER_CTRL:
	case INV_MPU6050_REG_PWR_MGMT_1:
	case INV_MPU6050_REG_FIFO_COUNT_H:
	case INV_MPU6050_REG_FIFO_COUNT_H + 1:
	case INV_MPU6050_REG_FIFO_R_W:
		return true;
	default:
		return false;
	}
}

Cheers,
Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help