aboutsummaryrefslogtreecommitdiffstats
path: root/src/adccmds.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-01-13 11:03:30 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-01-13 11:03:30 -0500
commit093512b9713999069b53193127ab0086e075a4f7 (patch)
treea32334bcacfb74338519162cd7628aa78e09f26a /src/adccmds.c
parent6256599a6dfc0c52a3c5e019c470d4cc46feeb82 (diff)
downloadkutter-093512b9713999069b53193127ab0086e075a4f7.tar.gz
kutter-093512b9713999069b53193127ab0086e075a4f7.tar.xz
kutter-093512b9713999069b53193127ab0086e075a4f7.zip
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>
Diffstat (limited to 'src/adccmds.c')
-rw-r--r--src/adccmds.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/adccmds.c b/src/adccmds.c
index 09db9b9d..a27dc8c0 100644
--- a/src/adccmds.c
+++ b/src/adccmds.c
@@ -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");