struct comedi_insn *insn, unsigned int *data)
 {
        struct das16cs_private *devpriv = dev->private;
+       int chan = CR_CHAN(insn->chanspec);
+       int range = CR_RANGE(insn->chanspec);
+       int aref = CR_AREF(insn->chanspec);
        int i;
        int to;
-       int aref;
-       int range;
-       int chan;
-       static int range_bits[] = { 0x800, 0x000, 0x100, 0x200 };
-
-       chan = CR_CHAN(insn->chanspec);
-       aref = CR_AREF(insn->chanspec);
-       range = CR_RANGE(insn->chanspec);
 
        outw(chan, dev->iobase + 2);
 
        outw(devpriv->status1, dev->iobase + 4);
 
        devpriv->status2 &= ~0xff00;
-       devpriv->status2 |= range_bits[range];
+       switch (range) {
+       case 0:
+               devpriv->status2 |= 0x800;
+               break;
+       case 1:
+               devpriv->status2 |= 0x000;
+               break;
+       case 2:
+               devpriv->status2 |= 0x100;
+               break;
+       case 3:
+               devpriv->status2 |= 0x200;
+               break;
+       default:
+               return -EINVAL;
+       }
        outw(devpriv->status2, dev->iobase + 6);
 
        for (i = 0; i < insn->n; i++) {
                        dev_dbg(dev->class_dev, "cb_das16_cs: ai timeout\n");
                        return -ETIME;
                }
-               data[i] = (unsigned short)inw(dev->iobase + 0);
+               data[i] = inw(dev->iobase + 0);
        }
 
        return i;