Re: [PATCH v2 5/6] iio: bmi160: Fix time needed to sleep after command execution

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

 




On 30/12/16 10:49, Jonathan Cameron wrote:
> On 08/12/16 14:22, Marcin Niestroj wrote:
>> Datasheet specifies typical and maximum execution times for which CMD
>> register is occupied after previous command execution. We took these
>> values as minimum and maximum time for usleep_range() call before making
>> a new command execution.
>>
>> To be sure, that the CMD register is no longer occupied we need to wait
>> *at least* the maximum time specified by datasheet.
>>
>> Signed-off-by: Marcin Niestroj <m.niestroj@xxxxxxxxxxxxxxxx>
> This looks like a definite bug that we would want to fix in stable as well.
> If possible, could you ensure this is the first patch in the updated series?
Actually don't worry. It applies cleanly to my fixes-togreg-post-rc1 branch anyway
so I'll take it that way and send upstream asap.

Applied to the fixes-togreg-post-rc1 branch and marked for stable.

Thanks,

Jonathan
> 
> Thanks,
> 
> Jonathan
>> ---
>> Patch introduced in v2
>>
>>  drivers/iio/imu/bmi160/bmi160_core.c | 25 ++++++-------------------
>>  1 file changed, 6 insertions(+), 19 deletions(-)
>>
>> diff --git a/drivers/iio/imu/bmi160/bmi160_core.c b/drivers/iio/imu/bmi160/bmi160_core.c
>> index 095533c..88bcf3f 100644
>> --- a/drivers/iio/imu/bmi160/bmi160_core.c
>> +++ b/drivers/iio/imu/bmi160/bmi160_core.c
>> @@ -67,10 +67,8 @@
>>  
>>  #define BMI160_REG_DUMMY		0x7F
>>  
>> -#define BMI160_ACCEL_PMU_MIN_USLEEP	3200
>> -#define BMI160_ACCEL_PMU_MAX_USLEEP	3800
>> -#define BMI160_GYRO_PMU_MIN_USLEEP	55000
>> -#define BMI160_GYRO_PMU_MAX_USLEEP	80000
>> +#define BMI160_ACCEL_PMU_MIN_USLEEP	3800
>> +#define BMI160_GYRO_PMU_MIN_USLEEP	80000
>>  #define BMI160_SOFTRESET_USLEEP		1000
>>  
>>  #define BMI160_CHANNEL(_type, _axis, _index) {			\
>> @@ -153,20 +151,9 @@ static struct bmi160_regs bmi160_regs[] = {
>>  	},
>>  };
>>  
>> -struct bmi160_pmu_time {
>> -	unsigned long min;
>> -	unsigned long max;
>> -};
>> -
>> -static struct bmi160_pmu_time bmi160_pmu_time[] = {
>> -	[BMI160_ACCEL] = {
>> -		.min = BMI160_ACCEL_PMU_MIN_USLEEP,
>> -		.max = BMI160_ACCEL_PMU_MAX_USLEEP
>> -	},
>> -	[BMI160_GYRO] = {
>> -		.min = BMI160_GYRO_PMU_MIN_USLEEP,
>> -		.max = BMI160_GYRO_PMU_MIN_USLEEP,
>> -	},
>> +static unsigned long bmi160_pmu_time[] = {
>> +	[BMI160_ACCEL] = BMI160_ACCEL_PMU_MIN_USLEEP,
>> +	[BMI160_GYRO] = BMI160_GYRO_PMU_MIN_USLEEP,
>>  };
>>  
>>  struct bmi160_scale {
>> @@ -293,7 +280,7 @@ int bmi160_set_mode(struct bmi160_data *data, enum bmi160_sensor_type t,
>>  	if (ret < 0)
>>  		return ret;
>>  
>> -	usleep_range(bmi160_pmu_time[t].min, bmi160_pmu_time[t].max);
>> +	usleep_range(bmi160_pmu_time[t], bmi160_pmu_time[t] + 1000);
>>  
>>  	return 0;
>>  }
>>
> 
> --
> 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
> 

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



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux