Re: [PATCH] iio: accel: kxcjk-1013: Fix kxcjk10013_set_range

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/11/14 08:20, Daniel Baluta wrote:
> Currently, we get the new GSEL bits by OR-ing the old values
> with the new ones. This only works first time when the old
> values are 0.
> 
> Startup:
> 	* GSEL0 = 0, GSEL1 = 0
> 
> Set range to 4G: (GSEL0 = 1, GSEL1 = 0)
> 	* GSEL0 = 0 | 1 = 1
> 	* GSEL1 = 0 | 0 = 0
> 	* correct
> 
> Change range to 2G: (GSEL0 = 0, GSEL1 = 0)
> 	* GSEL0 = 1 | 0 = 1
> 	* GSEL1 = 0 | 0 = 0
> 	* wrong, GSEL0 should be 0
> 
> This has the nice effect that we can use the full scale range,
> exported in in_accel_scale_available.
> 
> Fixes: a735e3d7f03 (iio: accel: kxcjk-1013: Set adjustable range)
> Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxxxx>
> Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
Applied to the fixes-togreg branch of iio.git and marked for stable.
Thanks,

> ---
>  drivers/iio/accel/kxcjk-1013.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
> index 98909a9..21f1279 100644
> --- a/drivers/iio/accel/kxcjk-1013.c
> +++ b/drivers/iio/accel/kxcjk-1013.c
> @@ -269,6 +269,8 @@ static int kxcjk1013_set_range(struct kxcjk1013_data *data, int range_index)
>  		return ret;
>  	}
>  
> +	ret &= ~(KXCJK1013_REG_CTRL1_BIT_GSEL0 |
> +		 KXCJK1013_REG_CTRL1_BIT_GSEL1);
>  	ret |= (KXCJK1013_scale_table[range_index].gsel_0 << 3);
>  	ret |= (KXCJK1013_scale_table[range_index].gsel_1 << 4);
>  
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux