Messages in this thread | | | Subject | Re: [PATCH 4/5] iio:adxl372: Add sampling frequency support | From | Lars-Peter Clausen <> | Date | Thu, 12 Jul 2018 20:31:59 +0200 |
| |
On 07/12/2018 08:25 PM, Andy Shevchenko wrote: > On Thu, Jul 12, 2018 at 6:36 PM, Stefan Popa <stefan.popa@analog.com> 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.
| |