Lines Matching refs:cmd
350 struct comedi_cmd *cmd = &s->async->cmd; in das1800_handle_fifo_not_empty() local
357 if (cmd->stop_src == TRIG_COUNT && in das1800_handle_fifo_not_empty()
358 s->async->scans_done >= cmd->stop_arg) in das1800_handle_fifo_not_empty()
450 struct comedi_cmd *cmd = &async->cmd; in das1800_ai_handler() local
484 } else if (cmd->stop_src == TRIG_COUNT && in das1800_ai_handler()
485 async->scans_done >= cmd->stop_arg) { in das1800_ai_handler()
543 struct comedi_cmd *cmd) in das1800_ai_fixup_paced_timing() argument
545 unsigned int arg = cmd->convert_arg; in das1800_ai_fixup_paced_timing()
557 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); in das1800_ai_fixup_paced_timing()
558 return comedi_check_trigger_arg_is(&cmd->convert_arg, arg); in das1800_ai_fixup_paced_timing()
562 struct comedi_cmd *cmd) in das1800_ai_fixup_burst_timing() argument
564 unsigned int arg = cmd->convert_arg; in das1800_ai_fixup_burst_timing()
580 switch (cmd->flags & CMDF_ROUND_MASK) { in das1800_ai_fixup_burst_timing()
592 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg * 1000); in das1800_ai_fixup_burst_timing()
599 if (cmd->scan_begin_src == TRIG_TIMER) { in das1800_ai_fixup_burst_timing()
600 arg = cmd->convert_arg * cmd->chanlist_len; in das1800_ai_fixup_burst_timing()
601 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, arg); in das1800_ai_fixup_burst_timing()
603 arg = cmd->scan_begin_arg; in das1800_ai_fixup_burst_timing()
604 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); in das1800_ai_fixup_burst_timing()
605 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); in das1800_ai_fixup_burst_timing()
613 struct comedi_cmd *cmd) in das1800_ai_check_chanlist() argument
615 unsigned int range = CR_RANGE(cmd->chanlist[0]); in das1800_ai_check_chanlist()
619 for (i = 1; i < cmd->chanlist_len; i++) { in das1800_ai_check_chanlist()
620 range = CR_RANGE(cmd->chanlist[i]); in das1800_ai_check_chanlist()
634 struct comedi_cmd *cmd) in das1800_ai_cmdtest() argument
641 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); in das1800_ai_cmdtest()
642 err |= comedi_check_trigger_src(&cmd->scan_begin_src, in das1800_ai_cmdtest()
644 err |= comedi_check_trigger_src(&cmd->convert_src, in das1800_ai_cmdtest()
646 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); in das1800_ai_cmdtest()
647 err |= comedi_check_trigger_src(&cmd->stop_src, in das1800_ai_cmdtest()
655 err |= comedi_check_trigger_is_unique(cmd->start_src); in das1800_ai_cmdtest()
656 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); in das1800_ai_cmdtest()
657 err |= comedi_check_trigger_is_unique(cmd->convert_src); in das1800_ai_cmdtest()
658 err |= comedi_check_trigger_is_unique(cmd->stop_src); in das1800_ai_cmdtest()
663 if (cmd->scan_begin_src != TRIG_FOLLOW && in das1800_ai_cmdtest()
664 cmd->convert_src != TRIG_TIMER) in das1800_ai_cmdtest()
668 if (cmd->start_src == TRIG_EXT && cmd->stop_src == TRIG_EXT) in das1800_ai_cmdtest()
669 err |= comedi_check_trigger_arg_is(&cmd->start_arg, in das1800_ai_cmdtest()
670 cmd->stop_arg); in das1800_ai_cmdtest()
677 if (cmd->start_arg == TRIG_NOW) in das1800_ai_cmdtest()
678 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); in das1800_ai_cmdtest()
680 if (cmd->convert_src == TRIG_TIMER) { in das1800_ai_cmdtest()
681 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, in das1800_ai_cmdtest()
685 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); in das1800_ai_cmdtest()
686 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, in das1800_ai_cmdtest()
687 cmd->chanlist_len); in das1800_ai_cmdtest()
689 switch (cmd->stop_src) { in das1800_ai_cmdtest()
691 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); in das1800_ai_cmdtest()
694 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); in das1800_ai_cmdtest()
705 if (cmd->convert_src == TRIG_TIMER) { in das1800_ai_cmdtest()
706 if (cmd->scan_begin_src == TRIG_FOLLOW) in das1800_ai_cmdtest()
707 err |= das1800_ai_fixup_paced_timing(dev, cmd); in das1800_ai_cmdtest()
709 err |= das1800_ai_fixup_burst_timing(dev, cmd); in das1800_ai_cmdtest()
716 if (cmd->chanlist && cmd->chanlist_len > 0) in das1800_ai_cmdtest()
717 err |= das1800_ai_check_chanlist(dev, s, cmd); in das1800_ai_cmdtest()
748 struct comedi_cmd *cmd = &s->async->cmd; in das1800_ai_transfer_size() local
755 switch (cmd->scan_begin_src) { in das1800_ai_transfer_size()
757 if (cmd->convert_src == TRIG_TIMER) in das1800_ai_transfer_size()
758 samples = ns / cmd->convert_arg; in das1800_ai_transfer_size()
761 samples = ns / (cmd->scan_begin_arg * cmd->chanlist_len); in das1800_ai_transfer_size()
839 const struct comedi_cmd *cmd = &async->cmd; in das1800_ai_cmd() local
840 unsigned int range0 = CR_RANGE(cmd->chanlist[0]); in das1800_ai_cmd()
846 if (cmd->flags & (CMDF_WAKE_EOS | CMDF_PRIORITY)) in das1800_ai_cmd()
851 if (cmd->flags & CMDF_WAKE_EOS) { in das1800_ai_cmd()
864 if (cmd->stop_src == TRIG_EXT) in das1800_ai_cmd()
866 if (cmd->start_src == TRIG_EXT) in das1800_ai_cmd()
871 if ((cmd->start_arg & CR_INVERT) || (cmd->stop_arg & CR_INVERT)) in das1800_ai_cmd()
875 control_c = das1800_ai_chanspec_bits(s, cmd->chanlist[0]); in das1800_ai_cmd()
877 if (cmd->scan_begin_src == TRIG_FOLLOW) { in das1800_ai_cmd()
879 if (cmd->convert_src == TRIG_TIMER) { in das1800_ai_cmd()
886 } else if (cmd->scan_begin_src == TRIG_TIMER) { in das1800_ai_cmd()
894 das1800_ai_set_chanlist(dev, cmd->chanlist, cmd->chanlist_len); in das1800_ai_cmd()
897 if ((cmd->scan_begin_src == TRIG_FOLLOW || in das1800_ai_cmd()
898 cmd->scan_begin_src == TRIG_TIMER) && in das1800_ai_cmd()
899 cmd->convert_src == TRIG_TIMER) { in das1800_ai_cmd()
905 if (cmd->stop_src == TRIG_EXT) in das1800_ai_cmd()
912 outb(cmd->convert_arg / 1000 - 1, /* microseconds - 1 */ in das1800_ai_cmd()
914 outb(cmd->chanlist_len - 1, dev->iobase + DAS1800_BURST_LENGTH); in das1800_ai_cmd()