summaryrefslogtreecommitdiffstats
path: root/firmware/src/tuner_e4k.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/src/tuner_e4k.c')
-rw-r--r--firmware/src/tuner_e4k.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/firmware/src/tuner_e4k.c b/firmware/src/tuner_e4k.c
index 7bd59dc..898fcf3 100644
--- a/firmware/src/tuner_e4k.c
+++ b/firmware/src/tuner_e4k.c
@@ -152,19 +152,20 @@ static const uint32_t rf_filt_center_l[] = {
static int closest_arr_idx(const uint32_t *arr, unsigned int arr_size, uint32_t freq)
{
- unsigned int i;
- uint32_t last_delta = 0xffffffff;
+ unsigned int i, bi;
+ uint32_t best_delta = 0xffffffff;
- /* iterate over the array containing an ordered list of the center
+ /* iterate over the array containing a list of the center
* frequencies, selecting the closest one */
for (i = 0; i < arr_size; i++) {
uint32_t delta = unsigned_delta(freq, arr[i]);
- if (last_delta < delta)
- return i-1;
- last_delta = delta;
+ if (delta < best_delta) {
+ best_delta = delta;
+ bi = i;
+ }
}
- return -ERANGE;
+ return bi;
}
/* return 4-bit index as to which RF filter to select */