From 3dc42d4ab1cb8aef7f9a159c361d965e36a7e6c2 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Mon, 9 Jan 2012 15:48:35 +0000 Subject: [PATCH] --- yaml --- r: 289029 b: refs/heads/master c: 8383def69b8629df052f917acb844381bdd6e000 h: refs/heads/master i: 289027: cd2aac54efacf6b8fa950462aa5000bd845904c7 v: v3 --- [refs] | 2 +- trunk/drivers/staging/comedi/drivers/dt2801.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 98cb767f2e04..6b1ec6517bd9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 586b9839273b3b58b28a26e4518be13366cecaeb +refs/heads/master: 8383def69b8629df052f917acb844381bdd6e000 diff --git a/trunk/drivers/staging/comedi/drivers/dt2801.c b/trunk/drivers/staging/comedi/drivers/dt2801.c index 5cce1b5f4484..b85c8366a396 100644 --- a/trunk/drivers/staging/comedi/drivers/dt2801.c +++ b/trunk/drivers/staging/comedi/drivers/dt2801.c @@ -720,12 +720,20 @@ static int dt2801_dio_insn_config(struct comedi_device *dev, which = 1; /* configure */ - if (data[0]) { + switch (data[0]) { + case INSN_CONFIG_DIO_OUTPUT: s->io_bits = 0xff; dt2801_writecmd(dev, DT_C_SET_DIGOUT); - } else { + break; + case INSN_CONFIG_DIO_INPUT: s->io_bits = 0; dt2801_writecmd(dev, DT_C_SET_DIGIN); + break; + case INSN_CONFIG_DIO_QUERY: + data[1] = s->io_bits ? COMEDI_OUTPUT : COMEDI_INPUT; + return insn->n; + default: + return -EINVAL; } dt2801_writedata(dev, which);