static uint32_t get_index(uint32_t channel, int *cached_id) { int i; int adc_reading; if (*cached_id != -1) return *cached_id; adc_reading = get_saradc_value(channel); for (i = 0; i < ARRAY_SIZE(id_readings); i++) { if (adc_reading <= id_readings[i]) { printk(BIOS_DEBUG, "ADC reading %d, ID %d\n", adc_reading, i); *cached_id = i; return i; } } die("Read impossible value (> 1023) from 10-bit ADC!"); }
static uint32_t get_index(uint32_t channel, int *cached_id) { int i; int adc_reading; if (*cached_id != -1) return *cached_id; adc_reading = get_saradc_value(channel); for (i = 0; i < ARRAY_SIZE(id_readings); i++) { if (adc_reading <= id_readings[i]) { printk(BIOS_DEBUG, "ADC reading %d, ID %d\n", adc_reading, i); *cached_id = i; return i; } } printk(BIOS_DEBUG, "ERROR: Unmatched ADC reading of %d\n", adc_reading); return 0; }