Re: [PATCH 4/5] iio:adxl372: Add sampling frequency support

From: Lars-Peter Clausen
Date: Thu Jul 12 2018 - 14:32:08 EST


On 07/12/2018 08:25 PM, Andy Shevchenko wrote:
> On Thu, Jul 12, 2018 at 6:36 PM, Stefan Popa <stefan.popa@xxxxxxxxxx> wrote:
>> This patch adds the option for the user to select the sampling frequency.
>> Also, the user can read the available frequencies and read the currently
>> set frequency via the read_raw function. The frequency can be set via the
>> write_raw function.
>>
>> When the frequency is set, the bandwidth is also checked and ensured
>> that it is constrained to at most half of the sampling frequency.
>
>> +static int adxl372_find_closest_match(const int *array,
>> + unsigned int size, int val)
>> +{
>> + int i;
>> +
>> + for (i = 0; i < size; i++) {
>> + if (val <= array[i])
>> + return i;
>> + }
>> +
>> + return size - 1;
>> +}
>
> Perhaps it's time to extend bsearch with something called
> bsearch_closest().
>

While it makes sense to have a helper function for this the generic bsearch
is not a good solution for small arrays. The generated code is probably
larger and the function call overhead of calling the cmp function completely
outweighs the savings from doing a binary search. bsearch() is good if your
array has 100s or 1000s of entries. If it only has 5, not so much.