return insn->n;
 }
 
-/*
- * Reads the value of the specified Digital input channel
- */
-static int i_APCI3120_InsnReadDigitalInput(struct comedi_device *dev,
-                                          struct comedi_subdevice *s,
-                                          struct comedi_insn *insn,
-                                          unsigned int *data)
-{
-       struct addi_private *devpriv = dev->private;
-       unsigned int ui_Chan, ui_TmpValue;
-
-       ui_Chan = CR_CHAN(insn->chanspec);      /*  channel specified */
-
-       /* this_board->di_read(dev,ui_Chan,data); */
-       if (ui_Chan <= 3) {
-               ui_TmpValue = (unsigned int) inw(devpriv->iobase + APCI3120_RD_STATUS);
-
-/*
- * since only 1 channel reqd to bring it to last bit it is rotated 8
- * +(chan - 1) times then ANDed with 1 for last bit.
- */
-               *data = (ui_TmpValue >> (ui_Chan + 8)) & 1;
-               /* return 0; */
-       } else {
-               /*       comedi_error(dev," chan spec wrong"); */
-               return -EINVAL; /*  "sorry channel spec wrong " */
-       }
-       return insn->n;
-
-}
-
-/*
- * Reads the value of the Digital input Port i.e.4channels
- * value is returned in data[0]
- */
-static int i_APCI3120_InsnBitsDigitalInput(struct comedi_device *dev,
-                                          struct comedi_subdevice *s,
-                                          struct comedi_insn *insn,
-                                          unsigned int *data)
+static int apci3120_di_insn_bits(struct comedi_device *dev,
+                                struct comedi_subdevice *s,
+                                struct comedi_insn *insn,
+                                unsigned int *data)
 {
        struct addi_private *devpriv = dev->private;
-       unsigned int ui_TmpValue;
+       unsigned int val;
 
-       ui_TmpValue = (unsigned int) inw(devpriv->iobase + APCI3120_RD_STATUS);
-       /*****  state of 4 channels  in the 11, 10, 9, 8   bits of status reg
-                       rotated right 8 times to bring them to last four bits
-                       ANDed with oxf for  value.
-       *****/
+       /* the input channels are bits 11:8 of the status reg */
+       val = inw(devpriv->iobase + APCI3120_RD_STATUS);
+       data[1] = (val >> 8) & 0xf;
 
-       *data = (ui_TmpValue >> 8) & 0xf;
-       /* this_board->di_bits(dev,data); */
        return insn->n;
 }