nidas v1.2.3
|
#include "dmd_mmat.h"
#include <linux/types.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/fs.h>
#include <linux/workqueue.h>
#include <linux/poll.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <asm/io.h>
#include <nidas/linux/Revision.h>
#include <nidas/linux/ver_macros.h>
#include <nidas/linux/klog.h>
#include <nidas/linux/isa_bus.h>
#include <nidas/linux/filters/short_filters_kernel.h>
Macros | |
#define | IRQF_SHARED SA_SHIRQ |
#define | REPO_REVISION "unknown" |
#define | REPORT_UNDER_OVERFLOWS |
Functions | |
module_param_array (ioports, int, numboards, 0) | |
module_param_array (irqs, int, numirqs, 0) | |
module_param_array (types, int, numtypes, 0) | |
module_param_array (d2aconfig, int, numd2aconfig, 0) | |
MODULE_AUTHOR ("Gordon Maclean <maclean@ucar.edu>") | |
MODULE_LICENSE ("Dual BSD/GPL") | |
MODULE_DESCRIPTION ("Driver for Diamond DMM analog cards") | |
MODULE_VERSION (REPO_REVISION) | |
static void | setTimerClock (struct DMMAT *brd, int clock, int mode, unsigned short val) |
Set counter value in a 82C54 clock. | |
static unsigned int | readLatchedTimer (struct DMMAT *brd, int clock) |
Read counter value in a 82C54 clock. | |
static int | div_10 (unsigned int x, unsigned int y, int prec, int *fp) |
static int | setClock1InputRate_MM16AT (struct DMMAT *brd, int rate) |
static int | setClock1InputRate_MM32AT (struct DMMAT *brd, int rate) |
static int | setupClock12 (struct DMMAT *brd, int inputRate, int outputRate) |
static void | releaseClock12 (struct DMMAT *brd) |
const char * | getA2DDeviceName (struct DMMAT_A2D *a2d) |
static int | getNumA2DChannelsMM16AT (struct DMMAT_A2D *a2d) |
Determine number of available channels - depends on single-ended vs differential jumpering. | |
static int | getNumA2DChannelsMM32XAT (struct DMMAT_A2D *a2d) |
Determine number of available channels - depends on single-ended vs differential jumpering. | |
static int | selectA2DChannelsMM16AT (struct DMMAT_A2D *a2d) |
returns: 0: ok, -EINVAL: channels out of range. | |
static int | selectA2DChannelsMM32XAT (struct DMMAT_A2D *a2d) |
returns: 0: ok, -EINVAL: channels out of range. | |
static int | getConvRateMM16AT (struct DMMAT_A2D *a2d, unsigned char *val) |
static int | getConvRateMM32XAT (struct DMMAT_A2D *a2d, unsigned char *val) |
static int | getGainSettingMM16AT (struct DMMAT_A2D *a2d, int gain, int bipolar, unsigned char *val) |
static int | getGainSettingMM32XAT (struct DMMAT_A2D *a2d, int gain, int bipolar, unsigned char *val) |
static int | getFifoLevelMM16AT (struct DMMAT_A2D *a2d) |
static int | getFifoLevelMM32XAT (struct DMMAT_A2D *a2d) |
static void | resetFifoMM16AT (struct DMMAT_A2D *a2d) |
static void | resetFifoMM32XAT (struct DMMAT_A2D *a2d) |
static void | waitForA2DSettleMM16AT (struct DMMAT_A2D *a2d) |
static void | waitForA2DSettleMM32XAT (struct DMMAT_A2D *a2d) |
static void | freeA2DFilters (struct DMMAT_A2D *a2d) |
static void | resetA2D_processing (struct DMMAT_A2D *a2d) |
Reset state of data processing. | |
static int | configA2D (struct DMMAT_A2D *a2d, struct nidas_a2d_config *cfg) |
static int | addA2DSampleConfig (struct DMMAT_A2D *a2d, struct nidas_a2d_sample_config *cfg) |
static irqreturn_t | dmmat_a2d_handler (struct DMMAT_A2D *a2d) |
static irqreturn_t | dmmat_cntr_handler (struct DMMAT_CNTR *cntr) |
static irqreturn_t | dmmat_irq_handler (int irq, void *dev_id) |
static int | dmd_mmat_add_irq_user (struct DMMAT *brd, int user_type) |
static int | dmd_mmat_remove_irq_user (struct DMMAT *brd, int user_type) |
static void | stopA2D_MM16AT (struct DMMAT_A2D *a2d) |
static void | stopA2D_MM32XAT (struct DMMAT_A2D *a2d) |
static void | stopA2D (struct DMMAT_A2D *a2d) |
General function to stop the A2D. | |
static int | getA2DThreshold_MM16AT (struct DMMAT_A2D *a2d) |
static int | getA2DThreshold_MM32XAT (struct DMMAT_A2D *a2d) |
static void | startA2D_MM16AT (struct DMMAT_A2D *a2d) |
static void | startA2D_MM32XAT (struct DMMAT_A2D *a2d) |
static int | startA2D (struct DMMAT_A2D *a2d) |
static int | startAutoCal_MM32XAT (struct DMMAT_A2D *a2d) |
static void | stopCntr_MM16AT (struct DMMAT_CNTR *cntr) |
static void | stopCntr_MM32AT (struct DMMAT_CNTR *cntr) |
static int | stopCNTR (struct DMMAT_CNTR *cntr) |
General function to stop a counter. | |
static int | startCntr_MM16AT (struct DMMAT_CNTR *cntr) |
static int | startCntr_MM32AT (struct DMMAT_CNTR *cntr) |
static int | startCNTR (struct DMMAT_CNTR *cntr, struct DMMAT_CNTR_Config *cfg) |
General function to start a counter. | |
static void | do_filters (struct DMMAT_A2D *a2d, dsm_sample_time_t tt, const short *dp) |
Invoke filters. | |
static void | dmmat_a2d_bottom_half (struct work_struct *work) |
Worker function that invokes filters on the data in a fifo sample. | |
static void | dmmat_a2d_bottom_half_fast (struct work_struct *work) |
Worker function that invokes filters on the data in a fifo sample. | |
static void | dmmat_a2d_waveform_bh (struct work_struct *work) |
Worker function for forming samples when operating in waveform mode. | |
static int | setD2A_MM16AT (struct DMMAT_D2A *d2a, struct DMMAT_D2A_Outputs *outputs, int iout) |
static int | setD2A_MM32AT (struct DMMAT_D2A *d2a, struct DMMAT_D2A_Outputs *outputs, int iout) |
static int | setD2A_MM32DXAT (struct DMMAT_D2A *d2a, struct DMMAT_D2A_Outputs *outputs, int iout) |
static int | setD2A_mult (struct DMMAT_D2A *d2a, struct DMMAT_D2A_Outputs *outputs) |
static void | getD2A_mult (struct DMMAT_D2A *d2a, struct DMMAT_D2A_Outputs *outputs) |
static void | getD2A_conv (struct DMMAT_D2A *d2a, struct DMMAT_D2A_Conversion *conv) |
static int | addWaveform_MM16AT (struct DMMAT_D2A *d2a, struct D2A_Waveform *wave) |
static int | addWaveform_MM32XAT (struct DMMAT_D2A *d2a, struct D2A_Waveform *wave) |
static int | loadWaveforms_MM16AT (struct DMMAT_D2A *d2a) |
static int | loadWaveforms_MM32XAT (struct DMMAT_D2A *d2a) |
static void | stopWaveforms_MM16AT (struct DMMAT_D2A *d2a) |
static void | stopWaveforms_MM32XAT (struct DMMAT_D2A *d2a) |
static void | stopWaveforms (struct DMMAT_D2A *d2a) |
General function to stop the D2A waveform. | |
static void | startWaveforms_MM16AT (struct DMMAT_D2A *d2a) |
static void | startWaveforms_MM32XAT (struct DMMAT_D2A *d2a) |
static int | startWaveforms (struct DMMAT_D2A *d2a) |
static void | startD2D_MM16AT (struct DMMAT_D2D *d2d) |
static void | startD2D_MM32XAT (struct DMMAT_D2D *d2d) |
static int | startD2D (struct DMMAT_D2D *d2d) |
static void | stopD2D_MM16AT (struct DMMAT_D2D *d2d) |
static void | stopD2D_MM32XAT (struct DMMAT_D2D *d2d) |
static int | stopD2D (struct DMMAT_D2D *d2d) |
static int | dmmat_open_a2d (struct inode *inode, struct file *filp) |
static int | dmmat_release_a2d (struct inode *inode, struct file *filp) |
static unsigned int | dmmat_poll_a2d (struct file *filp, poll_table *wait) |
static ssize_t | dmmat_read_a2d (struct file *filp, char __user *buf, size_t count, loff_t *f_pos) |
static long | dmmat_ioctl_a2d (struct file *filp, unsigned int cmd, unsigned long arg) |
static int | dmmat_open_cntr (struct inode *inode, struct file *filp) |
static int | dmmat_release_cntr (struct inode *inode, struct file *filp) |
static ssize_t | dmmat_read_cntr (struct file *filp, char __user *buf, size_t count, loff_t *f_pos) |
static long | dmmat_ioctl_cntr (struct file *filp, unsigned int cmd, unsigned long arg) |
unsigned int | dmmat_poll_cntr (struct file *filp, poll_table *wait) |
static int | dmmat_open_d2a (struct inode *inode, struct file *filp) |
static int | dmmat_release_d2a (struct inode *inode, struct file *filp) |
static long | dmmat_ioctl_d2a (struct file *filp, unsigned int cmd, unsigned long arg) |
static int | dmmat_open_d2d (struct inode *inode, struct file *filp) |
static int | dmmat_release_d2d (struct inode *inode, struct file *filp) |
static unsigned int | dmmat_poll_d2d (struct file *filp, poll_table *wait) |
static ssize_t | dmmat_read_d2d (struct file *filp, char __user *buf, size_t count, loff_t *f_pos) |
static long | dmmat_ioctl_d2d (struct file *filp, unsigned int cmd, unsigned long arg) |
static int | init_a2d (struct DMMAT *brd) |
static void | freeFilters (struct DMMAT_A2D *a2d) |
static void | cleanup_a2d (struct DMMAT *brd) |
static void | cntr_timer_fn (struct timer_list *tlist) |
Timer function which fetches the current counter value, makes a timetagged sample out of it, puts it in the circular buffer for the read method and wakens the read queue. | |
static int __init | init_cntr (struct DMMAT *brd) |
static void | cleanup_cntr (struct DMMAT *brd) |
static int | checkD2A_MM32DXAT (struct DMMAT_D2A *d2a) |
static int __init | init_d2a (struct DMMAT *brd) |
static void | cleanup_d2a (struct DMMAT *brd) |
static int __init | init_d2d (struct DMMAT *brd) |
static void | cleanup_d2d (struct DMMAT *brd) |
static void | dmd_mmat_cleanup (void) |
static int __init | dmd_mmat_init (void) |
module_init (dmd_mmat_init) | |
module_exit (dmd_mmat_cleanup) | |
Variables | |
static unsigned int | ioports [MAX_DMMAT_BOARDS] = { 0x380, 0, 0, 0 } |
static int | numboards = 0 |
static int | numActualBoards = 0 |
static int | irqs [MAX_DMMAT_BOARDS] = { 12, 0, 0, 0 } |
static int | numirqs = 0 |
static int | types [MAX_DMMAT_BOARDS] = { DMM32DXAT_BOARD, 0, 0, 0 } |
static int | numtypes = 0 |
static const char * | BOARD_TYPE_STRS [] |
static int | d2aconfig [MAX_DMMAT_BOARDS] = { DMMAT_D2A_UNI_5, 0, 0, 0 } |
static int | numd2aconfig = 0 |
static dev_t | dmmat_device = MKDEV(0,0) |
static struct class * | dmmat_class |
static struct DMMAT * | board = 0 |
static struct workqueue_struct * | work_queue = 0 |
static struct file_operations | a2d_fops |
static struct file_operations | cntr_fops |
static struct file_operations | d2a_fops |
static struct file_operations | d2d_fops |
#define IRQF_SHARED SA_SHIRQ |
Referenced by dmd_mmat_add_irq_user().
#define REPO_REVISION "unknown" |
Referenced by dmd_mmat_init().
#define REPORT_UNDER_OVERFLOWS |
|
static |
References nidas_a2d_sample_config::bipolar, nidas_a2d_sample_config::channels, nidas_a2d_sample_config::filterData, nidas_a2d_sample_config::filterType, nidas_a2d_sample_config::gain, get_short_filter_methods(), getA2DDeviceName(), MAX_DMMAT_A2D_CHANNELS, nidas_a2d_sample_config::nFilterData, nidas_a2d_sample_config::nvars, nidas_a2d_sample_config::rate, and nidas_a2d_sample_config::sindex.
Referenced by dmmat_ioctl_a2d(), and dmmat_ioctl_d2d().
|
static |
Referenced by init_d2a().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD.
Referenced by init_d2a().
|
static |
Referenced by init_d2a().
|
static |
References dmmat_class, free_dsm_circ_buf(), and freeFilters().
Referenced by dmd_mmat_cleanup().
|
static |
References dmmat_class, and free_dsm_circ_buf().
Referenced by dmd_mmat_cleanup().
|
static |
References dmmat_class.
Referenced by dmd_mmat_cleanup().
|
static |
References dmmat_class.
Referenced by dmd_mmat_cleanup().
|
static |
Timer function which fetches the current counter value, makes a timetagged sample out of it, puts it in the circular buffer for the read method and wakens the read queue.
This timer function is called at the rate requested by the user.
References readLatchedTimer().
Referenced by init_cntr().
|
static |
References getA2DDeviceName(), nidas_a2d_config::latencyUsecs, resetA2D_processing(), nidas_a2d_config::scanRate, TMSECS_PER_SEC, USECS_PER_MSEC, and USECS_PER_SEC.
Referenced by dmmat_ioctl_a2d(), and dmmat_ioctl_d2d().
|
static |
References fp.
Referenced by setupClock12().
|
static |
References DMM16AT_BOARD, dmmat_irq_handler(), IRQF_SHARED, and irqs.
Referenced by startA2D(), and startCNTR().
|
static |
References board, cleanup_a2d(), cleanup_cntr(), cleanup_d2a(), cleanup_d2d(), dmmat_class, dmmat_device, numboards, and work_queue.
Referenced by dmd_mmat_init().
|
static |
References board, BOARD_TYPE_STRS, dmd_mmat_cleanup(), DMM16AT_BOARD, DMM32AT_BOARD, DMM32DXAT_BOARD, DMM32XAT_BOARD, dmmat_class, dmmat_device, err, init_a2d(), init_cntr(), init_d2a(), init_d2d(), ioports, irqs, MAX_DMMAT_BOARDS, numActualBoards, numboards, REPO_REVISION, setClock1InputRate_MM16AT(), setClock1InputRate_MM32AT(), types, and work_queue.
|
static |
Referenced by startA2D(), stopA2D(), and stopCNTR().
|
static |
Worker function that invokes filters on the data in a fifo sample.
The contents of the fifo sample is not necessarily a multiple of the number of channels scanned.
References do_filters(), getA2DDeviceName(), dsm_sample::length, screen_timetag(), and TMSECS_PER_SEC.
Referenced by init_a2d().
|
static |
Worker function that invokes filters on the data in a fifo sample.
The contents of the fifo sample must be a multiple of the number of channels scanned.
References do_filters(), getA2DDeviceName(), screen_timetag(), and TMSECS_PER_SEC.
Referenced by init_a2d().
|
static |
References getA2DDeviceName(), and work_queue.
Referenced by dmmat_irq_handler().
|
static |
Worker function for forming samples when operating in waveform mode.
References getA2DDeviceName().
Referenced by init_a2d().
|
static |
Referenced by dmmat_irq_handler().
|
static |
References addA2DSampleConfig(), board, configA2D(), DMM32DXAT_BOARD, DMM32XAT_BOARD, DMMAT_A2D_DO_AUTOCAL, DMMAT_A2D_GET_STATUS, DMMAT_IOC_MAGIC, DMMAT_IOC_MAXNR, DMMAT_START, DMMAT_STOP, err, getA2DDeviceName(), len, MAX_A2D_CHANNELS, MAX_DMMAT_A2D_CHANNELS, nidas_a2d_sample_config::nFilterData, NIDAS_A2D_CONFIG_SAMPLE, NIDAS_A2D_GET_NCHAN, NIDAS_A2D_IOC_MAGIC, NIDAS_A2D_SET_CONFIG, numActualBoards, startA2D(), startAutoCal_MM32XAT(), and stopA2D().
|
static |
References board, DMMAT_CNTR_GET_STATUS, DMMAT_CNTR_START, DMMAT_CNTR_STOP, DMMAT_IOC_MAGIC, DMMAT_IOC_MAXNR, err, numActualBoards, startCNTR(), and stopCNTR().
|
static |
References board, DMMAT_ADD_WAVEFORM, DMMAT_D2A_GET, DMMAT_D2A_GET_CONVERSION, DMMAT_D2A_GET_NOUTPUTS, DMMAT_D2A_OUTPUTS_PER_BRD, DMMAT_D2A_SET, DMMAT_D2A_SET_CONFIG, DMMAT_IOC_MAGIC, DMMAT_IOC_MAXNR, DMMAT_START, DMMAT_STOP, err, getD2A_conv(), getD2A_mult(), len, numActualBoards, setD2A_mult(), D2A_Waveform::size, startWaveforms(), stopWaveforms(), and D2A_Config::waveformRate.
|
static |
References addA2DSampleConfig(), board, configA2D(), DMMAT_A2D_GET_STATUS, DMMAT_ADD_WAVEFORM, DMMAT_D2A_GET_CONVERSION, DMMAT_D2A_SET_CONFIG, DMMAT_IOC_MAGIC, DMMAT_IOC_MAXNR, DMMAT_START, DMMAT_STOP, err, getA2DDeviceName(), getD2A_conv(), len, MAX_A2D_CHANNELS, MAX_DMMAT_A2D_CHANNELS, NIDAS_A2D_CONFIG_SAMPLE, NIDAS_A2D_GET_NCHAN, NIDAS_A2D_IOC_MAGIC, NIDAS_A2D_SET_CONFIG, numActualBoards, D2A_Waveform::size, startD2D(), stopD2D(), and D2A_Config::waveformRate.
|
static |
References dmmat_a2d_handler(), and dmmat_cntr_handler().
Referenced by dmd_mmat_add_irq_user().
|
static |
References board, and numActualBoards.
|
static |
References board, and numActualBoards.
|
static |
References board, and numActualBoards.
|
static |
References board, and numActualBoards.
|
static |
unsigned int dmmat_poll_cntr | ( | struct file * | filp, |
poll_table * | wait ) |
|
static |
|
static |
References nidas_circbuf_read().
|
static |
References nidas_circbuf_read().
|
static |
References nidas_circbuf_read().
|
static |
References board, numActualBoards, and stopA2D().
|
static |
References board, numActualBoards, and stopCNTR().
|
static |
References board, numActualBoards, and stopWaveforms().
|
static |
References board, numActualBoards, and stopD2D().
|
static |
Invoke filters.
References getA2DDeviceName(), and a2d_sample::id.
Referenced by dmmat_a2d_bottom_half(), and dmmat_a2d_bottom_half_fast().
|
static |
Referenced by resetA2D_processing().
|
static |
Referenced by cleanup_a2d().
const char * getA2DDeviceName | ( | struct DMMAT_A2D * | a2d | ) |
Referenced by addA2DSampleConfig(), configA2D(), dmmat_a2d_bottom_half(), dmmat_a2d_bottom_half_fast(), dmmat_a2d_handler(), dmmat_a2d_waveform_bh(), dmmat_ioctl_a2d(), dmmat_ioctl_d2d(), do_filters(), getA2DThreshold_MM32XAT(), getGainSettingMM16AT(), getGainSettingMM32XAT(), init_a2d(), startA2D(), startD2D(), and stopA2D().
|
static |
Referenced by init_a2d().
|
static |
References DMM32AT_BOARD, getA2DDeviceName(), and MSECS_PER_SEC.
Referenced by init_a2d().
|
static |
Referenced by init_a2d().
|
static |
Referenced by init_a2d().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD, and numActualBoards.
Referenced by dmmat_ioctl_d2a(), and dmmat_ioctl_d2d().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD, and numActualBoards.
Referenced by dmmat_ioctl_d2a().
|
static |
Referenced by init_a2d().
|
static |
Referenced by init_a2d().
|
static |
References getA2DDeviceName().
Referenced by init_a2d().
|
static |
References getA2DDeviceName().
Referenced by init_a2d().
|
static |
Determine number of available channels - depends on single-ended vs differential jumpering.
Referenced by init_a2d().
|
static |
Determine number of available channels - depends on single-ended vs differential jumpering.
Referenced by init_a2d().
|
static |
References a2d_fops, DMM16AT_BOARD, DMM32AT_BOARD, DMM32DXAT_BOARD, DMM32XAT_BOARD, dmmat_a2d_bottom_half(), dmmat_a2d_bottom_half_fast(), dmmat_a2d_waveform_bh(), dmmat_class, dmmat_device, getA2DDeviceName(), getA2DThreshold_MM16AT(), getA2DThreshold_MM32XAT(), getConvRateMM16AT(), getConvRateMM32XAT(), getFifoLevelMM16AT(), getFifoLevelMM32XAT(), getGainSettingMM16AT(), getGainSettingMM32XAT(), getNumA2DChannelsMM16AT(), getNumA2DChannelsMM32XAT(), resetFifoMM16AT(), resetFifoMM32XAT(), selectA2DChannelsMM16AT(), selectA2DChannelsMM32XAT(), startA2D_MM16AT(), startA2D_MM32XAT(), stopA2D_MM16AT(), stopA2D_MM32XAT(), waitForA2DSettleMM16AT(), and waitForA2DSettleMM32XAT().
Referenced by dmd_mmat_init().
|
static |
References alloc_dsm_circ_buf(), cntr_fops, cntr_timer_fn(), DMM16AT_BOARD, DMM32AT_BOARD, DMM32DXAT_BOARD, DMM32XAT_BOARD, dmmat_class, dmmat_device, startCntr_MM16AT(), startCntr_MM32AT(), stopCntr_MM16AT(), and stopCntr_MM32AT().
Referenced by dmd_mmat_init().
|
static |
References addWaveform_MM16AT(), addWaveform_MM32XAT(), checkD2A_MM32DXAT(), d2a_fops, d2aconfig, DMM16AT_BOARD, DMM32AT_BOARD, DMM32DXAT_BOARD, DMM32XAT_BOARD, dmmat_class, DMMAT_D2A_BI_10, DMMAT_D2A_BI_2P5, DMMAT_D2A_BI_5, DMMAT_D2A_UNI_10, DMMAT_D2A_UNI_5, dmmat_device, loadWaveforms_MM16AT(), loadWaveforms_MM32XAT(), setD2A_MM16AT(), setD2A_MM32AT(), setD2A_MM32DXAT(), startWaveforms_MM16AT(), startWaveforms_MM32XAT(), stopWaveforms_MM16AT(), and stopWaveforms_MM32XAT().
Referenced by dmd_mmat_init().
|
static |
References d2d_fops, DMM16AT_BOARD, DMM32AT_BOARD, DMM32DXAT_BOARD, DMM32XAT_BOARD, dmmat_class, dmmat_device, startD2D_MM16AT(), startD2D_MM32XAT(), stopD2D_MM16AT(), and stopD2D_MM32XAT().
Referenced by dmd_mmat_init().
|
static |
Referenced by init_d2a().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD.
Referenced by init_d2a().
MODULE_AUTHOR | ( | "Gordon Maclean <maclean@ucar.edu>" | ) |
MODULE_DESCRIPTION | ( | "Driver for Diamond DMM analog cards" | ) |
module_exit | ( | dmd_mmat_cleanup | ) |
module_init | ( | dmd_mmat_init | ) |
MODULE_LICENSE | ( | "Dual BSD/GPL" | ) |
module_param_array | ( | d2aconfig | , |
int | , | ||
numd2aconfig | , | ||
0 | ) |
MODULE_VERSION | ( | REPO_REVISION | ) |
|
static |
Read counter value in a 82C54 clock.
Works on both MM16AT and MM32XAT, assuming both have set page bit(s) to 0: MM16AT: bit 6 in base+10 is the page bit MM32XAT: bits 0-2 in base+8 are page bits
Referenced by cntr_timer_fn().
|
static |
Referenced by stopA2D(), and stopWaveforms().
|
static |
Reset state of data processing.
References free_dsm_circ_buf(), freeA2DFilters(), MAX_DMMAT_A2D_CHANNELS, and work_queue.
Referenced by configA2D(), and stopA2D().
|
static |
Referenced by init_a2d().
|
static |
Referenced by init_a2d().
|
static |
returns: 0: ok, -EINVAL: channels out of range.
Referenced by init_a2d().
|
static |
returns: 0: ok, -EINVAL: channels out of range.
Referenced by init_a2d().
|
static |
References rate.
Referenced by dmd_mmat_init().
|
static |
References rate.
Referenced by dmd_mmat_init().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD.
Referenced by init_d2a().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD.
Referenced by init_d2a().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD.
Referenced by init_d2a().
|
static |
References DMMAT_D2A_OUTPUTS_PER_BRD, and numActualBoards.
Referenced by dmmat_ioctl_d2a().
|
static |
Set counter value in a 82C54 clock.
Works on both MM16AT and MM32XAT, assuming both have set page bit(s) to 0: MM16AT: bit 6 in base+10 is the page bit MM32XAT: bits 0-2 in base+8 are page bits Does not hold a spin_lock.
Referenced by setupClock12(), startCntr_MM16AT(), and startCntr_MM32AT().
|
static |
References div_10(), and setTimerClock().
Referenced by startA2D(), and startWaveforms().
|
static |
References alloc_dsm_circ_buf(), dmd_mmat_add_irq_user(), dmd_mmat_remove_irq_user(), free_dsm_circ_buf(), getA2DDeviceName(), MAX_DMMAT_A2D_CHANNELS, MSECS_PER_SEC, and setupClock12().
Referenced by dmmat_ioctl_a2d(), and startD2D().
|
static |
References screen_timetag_init(), USECS_PER_SEC, and USECS_PER_TMSEC.
Referenced by init_a2d().
|
static |
References DMM32AT_BOARD, screen_timetag_init(), USECS_PER_SEC, and USECS_PER_TMSEC.
Referenced by init_a2d().
|
static |
Referenced by dmmat_ioctl_a2d().
|
static |
General function to start a counter.
Calls the board specific method.
References dmd_mmat_add_irq_user(), DMMAT_CNTR_Config::msecPeriod, MSECS_PER_SEC, and stopCNTR().
Referenced by dmmat_ioctl_cntr().
|
static |
References setTimerClock().
Referenced by init_cntr().
|
static |
References setTimerClock().
Referenced by init_cntr().
|
static |
References getA2DDeviceName(), startA2D(), startWaveforms(), and TMSECS_PER_SEC.
Referenced by dmmat_ioctl_d2d().
|
static |
Referenced by init_d2d().
|
static |
Referenced by init_d2d().
|
static |
References setupClock12().
Referenced by dmmat_ioctl_d2a(), and startD2D().
|
static |
Referenced by init_d2a().
|
static |
Referenced by init_d2a().
|
static |
General function to stop the A2D.
Calls the board specific method. a2d->mutex should be locked, so that a2d->running reflects the current state of the A2D.
References dmd_mmat_remove_irq_user(), getA2DDeviceName(), releaseClock12(), and resetA2D_processing().
Referenced by dmmat_ioctl_a2d(), dmmat_release_a2d(), and stopD2D().
|
static |
Referenced by init_a2d().
|
static |
Referenced by init_a2d().
|
static |
General function to stop a counter.
Calls the board specific method.
References dmd_mmat_remove_irq_user().
Referenced by dmmat_ioctl_cntr(), dmmat_release_cntr(), and startCNTR().
|
static |
Referenced by init_cntr().
|
static |
Referenced by init_cntr().
|
static |
References stopA2D(), and stopWaveforms().
Referenced by dmmat_ioctl_d2d(), and dmmat_release_d2d().
|
static |
Referenced by init_d2d().
|
static |
Referenced by init_d2d().
|
static |
General function to stop the D2A waveform.
Calls the board specific method. d2da>waveform_mutex should be locked, so that d2a->waveform_running reflects the current state of the A2D.
References DMMAT_D2A_OUTPUTS_PER_BRD, and releaseClock12().
Referenced by dmmat_ioctl_d2a(), dmmat_release_d2a(), and stopD2D().
|
static |
Referenced by init_d2a().
|
static |
Referenced by init_d2a().
|
static |
Referenced by init_a2d().
|
static |
Referenced by init_a2d().
|
static |
Referenced by init_a2d().
|
static |
|
static |
Referenced by dmd_mmat_init().
|
static |
Referenced by init_cntr().
|
static |
Referenced by init_d2a().
|
static |
Referenced by init_d2a().
|
static |
Referenced by init_d2d().
|
static |
Referenced by cleanup_a2d(), cleanup_cntr(), cleanup_d2a(), cleanup_d2d(), dmd_mmat_cleanup(), dmd_mmat_init(), init_a2d(), init_cntr(), init_d2a(), and init_d2d().
|
static |
Referenced by dmd_mmat_cleanup(), dmd_mmat_init(), init_a2d(), init_cntr(), init_d2a(), and init_d2d().
|
static |
Referenced by dmd_mmat_init().
|
static |
Referenced by dmd_mmat_add_irq_user(), dmd_mmat_init(), main(), setConfig(), and setConfig().
|
static |
Referenced by dmd_mmat_init(), dmmat_ioctl_a2d(), dmmat_ioctl_cntr(), dmmat_ioctl_d2a(), dmmat_ioctl_d2d(), dmmat_open_a2d(), dmmat_open_cntr(), dmmat_open_d2a(), dmmat_open_d2d(), dmmat_release_a2d(), dmmat_release_cntr(), dmmat_release_d2a(), dmmat_release_d2d(), getD2A_conv(), getD2A_mult(), and setD2A_mult().
|
static |
Referenced by dmd_mmat_cleanup(), and dmd_mmat_init().
|
static |
|
static |
|
static |
|
static |
Referenced by dmd_mmat_init().
|
static |
Referenced by dmd_mmat_cleanup(), dmd_mmat_init(), dmmat_a2d_handler(), and resetA2D_processing().