static int stb0899_table_lookup(const struct stb0899_tab *tab, int max, int val)
{
int res = 0;
int min = 0, med;
if (val < tab[min].read) {
res = tab[min].real;
}
else if (val >= tab[max].read) {
res = tab[max].real;
}
else {
while ((max - min) > 1) {
med = (max + min) / 2;
if (val >= tab[min].read && val < tab[med].read)
max = med;
else
min = med;
}
res = ((val - tab[min].read) *
(tab[max].real - tab[min].real) /
(tab[max].read - tab[min].read)) +
tab[min].real;
}
return res;
}