static void handle_a_interrupt(struct comedi_device *dev, unsigned short status,
                               unsigned ai_mite_status)
 {
-       struct ni_private *devpriv = dev->private;
        struct comedi_subdevice *s = dev->read_subdev;
+       struct comedi_cmd *cmd = &s->async->cmd;
 
        /* 67xx boards don't have ai subdevice, but their gpct0 might generate an a interrupt */
        if (s->type == COMEDI_SUBD_UNUSED)
                        return;
                }
                if (status & AI_SC_TC_St) {
-                       if (!devpriv->ai_continuous)
+                       if (cmd->stop_src == TRIG_COUNT)
                                shutdown_ai_command(dev);
                }
        }
                /* load SC (Scan Count) */
                ni_stc_writew(dev, AI_SC_Load, AI_Command_1_Register);
 
-               devpriv->ai_continuous = 0;
                if (stop_count == 0) {
                        devpriv->ai_cmd2 |= AI_End_On_End_Of_Scan;
                        interrupt_a_enable |= AI_STOP_Interrupt_Enable;
 
                /* load SC (Scan Count) */
                ni_stc_writew(dev, AI_SC_Load, AI_Command_1_Register);
-
-               devpriv->ai_continuous = 1;
-
                break;
        }
 
 
        unsigned short dio_output;
        unsigned short dio_control;
        int aimode;
-       int ai_continuous;
        unsigned int ai_calib_source;
        unsigned int ai_calib_source_enabled;
        spinlock_t window_lock;