Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1403062 > unrolled thread
| Started by | Crestez Dan Leonard <leonard.crestez@intel.com> |
|---|---|
| First post | 2016-05-18 17:10 +0200 |
| Last post | 2016-05-29 17:40 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v2 4/7] iio: inv_mpu6050: Cache non-volatile bits of user_ctrl Crestez Dan Leonard <leonard.crestez@intel.com> - 2016-05-18 17:10 +0200
Re: [PATCH v2 4/7] iio: inv_mpu6050: Cache non-volatile bits of user_ctrl Jonathan Cameron <jic23@kernel.org> - 2016-05-29 17:40 +0200
| From | Crestez Dan Leonard <leonard.crestez@intel.com> |
|---|---|
| Date | 2016-05-18 17:10 +0200 |
| Subject | [PATCH v2 4/7] iio: inv_mpu6050: Cache non-volatile bits of user_ctrl |
| Message-ID | <rAbgK-3KP-27@gated-at.bofh.it> |
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
---
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 ++
drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 9 ++++++---
drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
index 297b0ef..bd2c0fd 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
@@ -80,6 +80,7 @@ enum inv_devices {
* @enable: master enable state.
* @accl_fifo_enable: enable accel data output
* @gyro_fifo_enable: enable gyro data output
+ * @user_ctrl: The non-volatile bits of user_ctrl
* @fifo_rate: FIFO update rate.
*/
struct inv_mpu6050_chip_config {
@@ -89,6 +90,7 @@ struct inv_mpu6050_chip_config {
unsigned int enable:1;
unsigned int accl_fifo_enable:1;
unsigned int gyro_fifo_enable:1;
+ u8 user_ctrl;
u16 fifo_rate;
};
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
index 3fc0b71..56ee1e2 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
@@ -53,13 +53,15 @@ int inv_reset_fifo(struct iio_dev *indio_dev)
if (result)
goto reset_fifo_fail;
/* disable fifo reading */
- result = regmap_write(st->map, st->reg->user_ctrl, 0);
+ st->chip_config.user_ctrl &= ~INV_MPU6050_BIT_FIFO_EN;
+ result = regmap_write(st->map, st->reg->user_ctrl,
+ st->chip_config.user_ctrl);
if (result)
goto reset_fifo_fail;
/* reset FIFO*/
result = regmap_write(st->map, st->reg->user_ctrl,
- INV_MPU6050_BIT_FIFO_RST);
+ st->chip_config.user_ctrl | INV_MPU6050_BIT_FIFO_RST);
if (result)
goto reset_fifo_fail;
@@ -76,8 +78,9 @@ int inv_reset_fifo(struct iio_dev *indio_dev)
return result;
}
/* enable FIFO reading and I2C master interface*/
+ st->chip_config.user_ctrl |= INV_MPU6050_BIT_FIFO_EN;
result = regmap_write(st->map, st->reg->user_ctrl,
- INV_MPU6050_BIT_FIFO_EN);
+ st->chip_config.user_ctrl);
if (result)
goto reset_fifo_fail;
/* enable sensor output to FIFO */
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
index 1a6bad3..fc55923 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
@@ -74,7 +74,9 @@ static int inv_mpu6050_set_enable(struct iio_dev *indio_dev, bool enable)
if (result)
return result;
- result = regmap_write(st->map, st->reg->user_ctrl, 0);
+ st->chip_config.user_ctrl &= ~INV_MPU6050_BIT_FIFO_EN;
+ result = regmap_write(st->map, st->reg->user_ctrl,
+ st->chip_config.user_ctrl);
if (result)
return result;
--
2.5.5
[toc] | [next] | [standalone]
| From | Jonathan Cameron <jic23@kernel.org> |
|---|---|
| Date | 2016-05-29 17:40 +0200 |
| Subject | Re: [PATCH v2 4/7] iio: inv_mpu6050: Cache non-volatile bits of user_ctrl |
| Message-ID | <rEaYO-81Z-17@gated-at.bofh.it> |
| In reply to | #1403062 |
On 18/05/16 16:00, Crestez Dan Leonard wrote:
> Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com>
Kind of a pity we have to do this, but fair enough!
Jonathan
> ---
> drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 ++
> drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 9 ++++++---
> drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 4 +++-
> 3 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> index 297b0ef..bd2c0fd 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> @@ -80,6 +80,7 @@ enum inv_devices {
> * @enable: master enable state.
> * @accl_fifo_enable: enable accel data output
> * @gyro_fifo_enable: enable gyro data output
> + * @user_ctrl: The non-volatile bits of user_ctrl
> * @fifo_rate: FIFO update rate.
> */
> struct inv_mpu6050_chip_config {
> @@ -89,6 +90,7 @@ struct inv_mpu6050_chip_config {
> unsigned int enable:1;
> unsigned int accl_fifo_enable:1;
> unsigned int gyro_fifo_enable:1;
> + u8 user_ctrl;
> u16 fifo_rate;
> };
>
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
> index 3fc0b71..56ee1e2 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c
> @@ -53,13 +53,15 @@ int inv_reset_fifo(struct iio_dev *indio_dev)
> if (result)
> goto reset_fifo_fail;
> /* disable fifo reading */
> - result = regmap_write(st->map, st->reg->user_ctrl, 0);
> + st->chip_config.user_ctrl &= ~INV_MPU6050_BIT_FIFO_EN;
> + result = regmap_write(st->map, st->reg->user_ctrl,
> + st->chip_config.user_ctrl);
> if (result)
> goto reset_fifo_fail;
>
> /* reset FIFO*/
> result = regmap_write(st->map, st->reg->user_ctrl,
> - INV_MPU6050_BIT_FIFO_RST);
> + st->chip_config.user_ctrl | INV_MPU6050_BIT_FIFO_RST);
> if (result)
> goto reset_fifo_fail;
>
> @@ -76,8 +78,9 @@ int inv_reset_fifo(struct iio_dev *indio_dev)
> return result;
> }
> /* enable FIFO reading and I2C master interface*/
> + st->chip_config.user_ctrl |= INV_MPU6050_BIT_FIFO_EN;
> result = regmap_write(st->map, st->reg->user_ctrl,
> - INV_MPU6050_BIT_FIFO_EN);
> + st->chip_config.user_ctrl);
> if (result)
> goto reset_fifo_fail;
> /* enable sensor output to FIFO */
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
> index 1a6bad3..fc55923 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
> @@ -74,7 +74,9 @@ static int inv_mpu6050_set_enable(struct iio_dev *indio_dev, bool enable)
> if (result)
> return result;
>
> - result = regmap_write(st->map, st->reg->user_ctrl, 0);
> + st->chip_config.user_ctrl &= ~INV_MPU6050_BIT_FIFO_EN;
> + result = regmap_write(st->map, st->reg->user_ctrl,
> + st->chip_config.user_ctrl);
> if (result)
> return result;
>
>
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web