adccmds: Run gpio_adc_setup() before oid_alloc()

Order the adc config code so that a shutdown from gpio_adc_setup()
doesn't result in analog_in_shutdown() running on a 'struct analog_in'
that hasn't yet been configured.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2019-01-13 11:03:30 -05:00
parent 6256599a6d
commit 093512b971
1 changed files with 2 additions and 1 deletions

View File

@ -61,10 +61,11 @@ analog_in_event(struct timer *timer)
void
command_config_analog_in(uint32_t *args)
{
struct gpio_adc pin = gpio_adc_setup(args[1]);
struct analog_in *a = oid_alloc(
args[0], command_config_analog_in, sizeof(*a));
a->timer.func = analog_in_event;
a->pin = gpio_adc_setup(args[1]);
a->pin = pin;
a->state = 1;
}
DECL_COMMAND(command_config_analog_in, "config_analog_in oid=%c pin=%u");