Skip to content
  • H Hartley Sweeten's avatar
    staging: comedi: adl_pci9118: clarify acquisition mode (ai_do) determination · f3d3dad6
    H Hartley Sweeten authored
    
    
    The async command can operation in 4 modes in this driver.
    
    Modes 1 and 4 use timers 1 and 2 as a cascaded timer to trigger each conversion.
    Mode 1 begins the acquisitions immediately (scan_begin_src == TRIG_FOLLOW) and
    Mode 4 begins after an external trigger (scan_begin_src == TRIG_EXT). Both modes
    use a convert_src == TRIG_TIMER.
    
    Mode 2 uses timers 1 and 2 in a double timed action (scan_begin_src == TRIG_TIMER
    and convert_src != TRIG_EXT (TRIG_TIMER and TRIG_NOW are valid)).
    
    Mode 3 does not use the timers. Each acquisition is triggered by an external
    signal (scan_begin_src == TRIG_FOLLOW and convert_src == TRIG_EXT.
    
    The (*do_cmdtest) validates the scan_begin_src as TRIG_FOLLOW, TRIG_TIMER,
    or TRIG_EXT. Remove the invalid check for TRIG_INT in the (*do_cmd).
    
    Clarify the logic used to determine the mode in the (*do_cmd).
    
    Also, simplify pci9118_calc_divisors(). Call i8253_cascade_ns_to_timer() directly
    in the (*do_cmd) for the mode 1 and mode 4 cases. Call pci9118_calc_divisors()
    only for mode 2 acquisitions.
    
    Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
    Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f3d3dad6