return 0;
 }
 
-#endif /*  PCIDMA */
-
 static int ni_request_cdo_mite_channel(struct comedi_device *dev)
 {
-#ifdef PCIDMA
        struct ni_private *devpriv = dev->private;
        struct mite_channel *mite_chan;
        unsigned long flags;
                        NI_M_CDIO_DMA_SEL_CDO(bits));
 
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
-#endif /*  PCIDMA */
        return 0;
 }
+#endif /*  PCIDMA */
 
 static void ni_release_ai_mite_channel(struct comedi_device *dev)
 {
        }
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
 }
-#endif /*  PCIDMA */
 
 static void ni_release_cdo_mite_channel(struct comedi_device *dev)
 {
-#ifdef PCIDMA
        struct ni_private *devpriv = dev->private;
        unsigned long flags;
 
                devpriv->cdo_mite_chan = NULL;
        }
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
-#endif /*  PCIDMA */
 }
 
-#ifdef PCIDMA
 static void ni_e_series_enable_second_irq(struct comedi_device *dev,
                                          unsigned gpct_index, short enable)
 {
        return insn->n;
 }
 
+#ifdef PCIDMA
 static int ni_m_series_dio_insn_config(struct comedi_device *dev,
                                       struct comedi_subdevice *s,
                                       struct comedi_insn *insn,
        const unsigned timeout = 1000;
        int retval = 0;
        unsigned i;
-#ifdef PCIDMA
        struct ni_private *devpriv = dev->private;
        unsigned long flags;
-#endif
 
        if (trig_num != cmd->start_arg)
                return -EINVAL;
        /* read alloc the entire buffer */
        comedi_buf_read_alloc(s, s->async->prealloc_bufsz);
 
-#ifdef PCIDMA
        spin_lock_irqsave(&devpriv->mite_channel_lock, flags);
        if (devpriv->cdo_mite_chan) {
                mite_prep_dma(devpriv->cdo_mite_chan, 32, 32);
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
        if (retval < 0)
                return retval;
-#endif
+
        /*
         * XXX not sure what interrupt C group does
         * wait for dma to fill output fifo
        struct ni_private *devpriv = dev->private;
        unsigned cdio_status;
        struct comedi_subdevice *s = &dev->subdevices[NI_DIO_SUBDEV];
-#ifdef PCIDMA
        unsigned long flags;
-#endif
 
-       if (!devpriv->is_m_series)
-               return;
-#ifdef PCIDMA
        spin_lock_irqsave(&devpriv->mite_channel_lock, flags);
        if (devpriv->cdo_mite_chan) {
                unsigned cdo_mite_status =
                mite_sync_output_dma(devpriv->cdo_mite_chan, s);
        }
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
-#endif
 
        cdio_status = ni_readl(dev, NI_M_CDIO_STATUS_REG);
        if (cdio_status & NI_M_CDIO_STATUS_CDO_ERROR) {
        }
        comedi_handle_events(dev, s);
 }
+#endif /*  PCIDMA */
 
 static int ni_serial_hw_readwrite8(struct comedi_device *dev,
                                   struct comedi_subdevice *s,
                handle_b_interrupt(dev, b_status, ao_mite_status);
        handle_gpct_interrupt(dev, 0);
        handle_gpct_interrupt(dev, 1);
-       handle_cdio_interrupt(dev);
+#ifdef PCIDMA
+       if (devpriv->is_m_series)
+               handle_cdio_interrupt(dev);
+#endif
 
        spin_unlock_irqrestore(&dev->spinlock, flags);
        return IRQ_HANDLED;
        s->maxdata      = 1;
        s->range_table  = &range_digital;
        if (devpriv->is_m_series) {
+#ifdef PCIDMA
                s->subdev_flags |= SDF_LSAMPL;
                s->insn_bits    = ni_m_series_dio_insn_bits;
                s->insn_config  = ni_m_series_dio_insn_config;
                               NI_M_CDI_CMD_RESET,
                          NI_M_CDIO_CMD_REG);
                ni_writel(dev, s->io_bits, NI_M_DIO_DIR_REG);
+#endif /* PCIDMA */
        } else {
                s->insn_bits    = ni_dio_insn_bits;
                s->insn_config  = ni_dio_insn_config;