#define MAGIC_DMA_WORD 0x5a5a
-static const comedi_lrange range_pcl818h_ai = { 9, {
+static const struct comedi_lrange range_pcl818h_ai = { 9, {
BIP_RANGE(5),
BIP_RANGE(2.5),
BIP_RANGE(1.25),
}
};
-static const comedi_lrange range_pcl818hg_ai = { 10, {
+static const struct comedi_lrange range_pcl818hg_ai = { 10, {
BIP_RANGE(5),
BIP_RANGE(0.5),
BIP_RANGE(0.05),
}
};
-static const comedi_lrange range_pcl818l_l_ai = { 4, {
+static const struct comedi_lrange range_pcl818l_l_ai = { 4, {
BIP_RANGE(5),
BIP_RANGE(2.5),
BIP_RANGE(1.25),
}
};
-static const comedi_lrange range_pcl818l_h_ai = { 4, {
+static const struct comedi_lrange range_pcl818l_h_ai = { 4, {
BIP_RANGE(10),
BIP_RANGE(5),
BIP_RANGE(2.5),
}
};
-static const comedi_lrange range718_bipolar1 = { 1, {BIP_RANGE(1),} };
-static const comedi_lrange range718_bipolar0_5 = { 1, {BIP_RANGE(0.5),} };
-static const comedi_lrange range718_unipolar2 = { 1, {UNI_RANGE(2),} };
-static const comedi_lrange range718_unipolar1 = { 1, {BIP_RANGE(1),} };
+static const struct comedi_lrange range718_bipolar1 = { 1, {BIP_RANGE(1),} };
+static const struct comedi_lrange range718_bipolar0_5 = { 1, {BIP_RANGE(0.5),} };
+static const struct comedi_lrange range718_unipolar2 = { 1, {UNI_RANGE(2),} };
+static const struct comedi_lrange range718_unipolar1 = { 1, {BIP_RANGE(1),} };
-static int pcl818_attach(comedi_device * dev, comedi_devconfig * it);
-static int pcl818_detach(comedi_device * dev);
+static int pcl818_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int pcl818_detach(struct comedi_device * dev);
#ifdef unused
static int RTC_lock = 0; /* RTC lock */
int n_aochan; // num of D/A chans
int n_dichan; // num of DI chans
int n_dochan; // num of DO chans
- const comedi_lrange *ai_range_type; // default A/D rangelist
- const comedi_lrange *ao_range_type; // default D/A rangelist
+ const struct comedi_lrange *ai_range_type; // default A/D rangelist
+ const struct comedi_lrange *ao_range_type; // default D/A rangelist
unsigned int io_range; // len of IO space
unsigned int IRQbits; // allowed interrupts
unsigned int DMAbits; // allowed DMA chans
#define n_boardtypes (sizeof(boardtypes)/sizeof(boardtype))
-static comedi_driver driver_pcl818 = {
+static struct comedi_driver driver_pcl818 = {
driver_name:"pcl818",
module:THIS_MODULE,
attach:pcl818_attach,
int irq_blocked; // 1=IRQ now uses any subdev
int irq_was_now_closed; // when IRQ finish, there's stored int818_mode for last interrupt
int ai_mode; // who now uses IRQ - 1=AI1 int, 2=AI1 dma, 3=AI3 int, 4AI3 dma
- comedi_subdevice *last_int_sub; // ptr to subdevice which now finish
+ struct comedi_subdevice *last_int_sub; // ptr to subdevice which now finish
int ai_act_scan; // how many scans we finished
int ai_act_chan; // actual position in actual scan
unsigned int act_chanlist[16]; // MUX setting for actual AI operations
short *ai_data; // data buffer
unsigned int ai_timer1; // timers
unsigned int ai_timer2;
- comedi_subdevice *sub_ai; // ptr to AI subdevice
+ struct comedi_subdevice *sub_ai; // ptr to AI subdevice
unsigned char usefifo; // 1=use fifo
unsigned int ao_readback[2];
} pcl818_private;
/*
==============================================================================
*/
-static void setup_channel_list(comedi_device * dev, comedi_subdevice * s,
+static void setup_channel_list(struct comedi_device * dev, struct comedi_subdevice * s,
unsigned int *chanlist, unsigned int n_chan, unsigned int seglen);
-static int check_channel_list(comedi_device * dev, comedi_subdevice * s,
+static int check_channel_list(struct comedi_device * dev, struct comedi_subdevice * s,
unsigned int *chanlist, unsigned int n_chan);
-static int pcl818_ai_cancel(comedi_device * dev, comedi_subdevice * s);
-static void start_pacer(comedi_device * dev, int mode, unsigned int divisor1,
+static int pcl818_ai_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
+static void start_pacer(struct comedi_device * dev, int mode, unsigned int divisor1,
unsigned int divisor2);
#ifdef unused
==============================================================================
ANALOG INPUT MODE0, 818 cards, slow version
*/
-static int pcl818_ai_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, unsigned int * data)
+static int pcl818_ai_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
int n;
int timeout;
ANALOG OUTPUT MODE0, 818 cards
only one sample per call is supported
*/
-static int pcl818_ao_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, unsigned int * data)
+static int pcl818_ao_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
int n;
int chan = CR_CHAN(insn->chanspec);
return n;
}
-static int pcl818_ao_insn_write(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, unsigned int * data)
+static int pcl818_ao_insn_write(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
int n;
int chan = CR_CHAN(insn->chanspec);
only one sample per call is supported
*/
-static int pcl818_di_insn_bits(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, unsigned int * data)
+static int pcl818_di_insn_bits(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
if (insn->n != 2)
return -EINVAL;
only one sample per call is supported
*/
-static int pcl818_do_insn_bits(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, unsigned int * data)
+static int pcl818_do_insn_bits(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
if (insn->n != 2)
return -EINVAL;
*/
static irqreturn_t interrupt_pcl818_ai_mode13_int(int irq, void *d)
{
- comedi_device *dev = d;
- comedi_subdevice *s = dev->subdevices + 0;
+ struct comedi_device *dev = d;
+ struct comedi_subdevice *s = dev->subdevices + 0;
int low;
int timeout = 50; /* wait max 50us */
*/
static irqreturn_t interrupt_pcl818_ai_mode13_dma(int irq, void *d)
{
- comedi_device *dev = d;
- comedi_subdevice *s = dev->subdevices + 0;
+ struct comedi_device *dev = d;
+ struct comedi_subdevice *s = dev->subdevices + 0;
int i, len, bufptr;
unsigned long flags;
short *ptr;
*/
static irqreturn_t interrupt_pcl818_ai_mode13_dma_rtc(int irq, void *d)
{
- comedi_device *dev = d;
- comedi_subdevice *s = dev->subdevices + 0;
+ struct comedi_device *dev = d;
+ struct comedi_subdevice *s = dev->subdevices + 0;
unsigned long tmp;
unsigned int top1, top2, i, bufptr;
long ofs_dats;
*/
static irqreturn_t interrupt_pcl818_ai_mode13_fifo(int irq, void *d)
{
- comedi_device *dev = d;
- comedi_subdevice *s = dev->subdevices + 0;
+ struct comedi_device *dev = d;
+ struct comedi_subdevice *s = dev->subdevices + 0;
int i, len, lo;
outb(0, dev->iobase + PCL818_FI_INTCLR); // clear fifo int request
*/
static irqreturn_t interrupt_pcl818(int irq, void *d PT_REGS_ARG)
{
- comedi_device *dev = d;
+ struct comedi_device *dev = d;
if (!dev->attached) {
comedi_error(dev, "premature interrupt");
because the card doesn't seem to like being reprogrammed
while a DMA transfer is in progress
*/
- comedi_subdevice *s = dev->subdevices + 0;
+ struct comedi_subdevice *s = dev->subdevices + 0;
devpriv->ai_mode = devpriv->irq_was_now_closed;
devpriv->irq_was_now_closed = 0;
devpriv->neverending_ai = 0;
==============================================================================
ANALOG INPUT MODE 1 or 3 DMA , 818 cards
*/
-static void pcl818_ai_mode13dma_int(int mode, comedi_device * dev,
- comedi_subdevice * s)
+static void pcl818_ai_mode13dma_int(int mode, struct comedi_device * dev,
+ struct comedi_subdevice * s)
{
unsigned int flags;
unsigned int bytes;
==============================================================================
ANALOG INPUT MODE 1 or 3 DMA rtc, 818 cards
*/
-static void pcl818_ai_mode13dma_rtc(int mode, comedi_device * dev,
- comedi_subdevice * s)
+static void pcl818_ai_mode13dma_rtc(int mode, struct comedi_device * dev,
+ struct comedi_subdevice * s)
{
unsigned int flags;
short *pole;
==============================================================================
ANALOG INPUT MODE 1 or 3, 818 cards
*/
-static int pcl818_ai_cmd_mode(int mode, comedi_device * dev,
- comedi_subdevice * s)
+static int pcl818_ai_cmd_mode(int mode, struct comedi_device * dev,
+ struct comedi_subdevice * s)
{
- comedi_cmd *cmd = &s->async->cmd;
+ struct comedi_cmd *cmd = &s->async->cmd;
int divisor1, divisor2;
unsigned int seglen;
ANALOG OUTPUT MODE 1 or 3, 818 cards
*/
#ifdef PCL818_MODE13_AO
-static int pcl818_ao_mode13(int mode, comedi_device * dev, comedi_subdevice * s,
+static int pcl818_ao_mode13(int mode, struct comedi_device * dev, struct comedi_subdevice * s,
comedi_trig * it)
{
int divisor1, divisor2;
==============================================================================
ANALOG OUTPUT MODE 1, 818 cards
*/
-static int pcl818_ao_mode1(comedi_device * dev, comedi_subdevice * s,
+static int pcl818_ao_mode1(struct comedi_device * dev, struct comedi_subdevice * s,
comedi_trig * it)
{
return pcl818_ao_mode13(1, dev, s, it);
==============================================================================
ANALOG OUTPUT MODE 3, 818 cards
*/
-static int pcl818_ao_mode3(comedi_device * dev, comedi_subdevice * s,
+static int pcl818_ao_mode3(struct comedi_device * dev, struct comedi_subdevice * s,
comedi_trig * it)
{
return pcl818_ao_mode13(3, dev, s, it);
==============================================================================
Start/stop pacer onboard pacer
*/
-static void start_pacer(comedi_device * dev, int mode, unsigned int divisor1,
+static void start_pacer(struct comedi_device * dev, int mode, unsigned int divisor1,
unsigned int divisor2)
{
outb(0xb4, dev->iobase + PCL818_CTRCTL);
Check if channel list from user is builded correctly
If it's ok, then program scan/gain logic
*/
-static int check_channel_list(comedi_device * dev, comedi_subdevice * s,
+static int check_channel_list(struct comedi_device * dev, struct comedi_subdevice * s,
unsigned int *chanlist, unsigned int n_chan)
{
unsigned int chansegment[16];
return seglen;
}
-static void setup_channel_list(comedi_device * dev, comedi_subdevice * s,
+static void setup_channel_list(struct comedi_device * dev, struct comedi_subdevice * s,
unsigned int *chanlist, unsigned int n_chan, unsigned int seglen)
{
int i;
/*
==============================================================================
*/
-static int ai_cmdtest(comedi_device * dev, comedi_subdevice * s,
- comedi_cmd * cmd)
+static int ai_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_cmd * cmd)
{
int err = 0;
int tmp, divisor1, divisor2;
/*
==============================================================================
*/
-static int ai_cmd(comedi_device * dev, comedi_subdevice * s)
+static int ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s)
{
- comedi_cmd *cmd = &s->async->cmd;
+ struct comedi_cmd *cmd = &s->async->cmd;
int retval;
rt_printk("pcl818_ai_cmd()\n");
==============================================================================
cancel any mode 1-4 AI
*/
-static int pcl818_ai_cancel(comedi_device * dev, comedi_subdevice * s)
+static int pcl818_ai_cancel(struct comedi_device * dev, struct comedi_subdevice * s)
{
if (devpriv->irq_blocked > 0) {
rt_printk("pcl818_ai_cancel()\n");
==============================================================================
reset whole PCL-818 cards
*/
-static void pcl818_reset(comedi_device * dev)
+static void pcl818_reset(struct comedi_device * dev)
{
if (devpriv->usefifo) { // FIFO shutdown
outb(0, dev->iobase + PCL818_FI_INTCLR);
*/
static void rtc_dropped_irq(unsigned long data)
{
- comedi_device *dev = (void *)data;
+ struct comedi_device *dev = (void *)data;
unsigned long flags, tmp;
switch (devpriv->int818_mode) {
==============================================================================
Free any resources that we have claimed
*/
-static void free_resources(comedi_device * dev)
+static void free_resources(struct comedi_device * dev)
{
//rt_printk("free_resource()\n");
if (dev->private) {
Initialization
*/
-static int pcl818_attach(comedi_device * dev, comedi_devconfig * it)
+static int pcl818_attach(struct comedi_device * dev, comedi_devconfig * it)
{
int ret;
unsigned long iobase;
unsigned int irq, dma;
unsigned long pages;
- comedi_subdevice *s;
+ struct comedi_subdevice *s;
if ((ret = alloc_private(dev, sizeof(pcl818_private))) < 0)
return ret; /* Can't alloc mem */
==============================================================================
Removes device
*/
-static int pcl818_detach(comedi_device * dev)
+static int pcl818_detach(struct comedi_device * dev)
{
// rt_printk("comedi%d: pcl818: remove\n", dev->minor);
free_resources(dev);