/*-----------------------------------------------------------------------------
Comedi function prototypes
---------------------------------------------------------------------------*/
-static int me4000_attach(comedi_device *dev, comedi_devconfig *it);
-static int me4000_detach(comedi_device *dev);
+static int me4000_attach(struct comedi_device *dev, comedi_devconfig *it);
+static int me4000_detach(struct comedi_device *dev);
static comedi_driver driver_me4000 = {
driver_name:"me4000",
module : THIS_MODULE,
/*-----------------------------------------------------------------------------
Meilhaus function prototypes
---------------------------------------------------------------------------*/
-static int me4000_probe(comedi_device *dev, comedi_devconfig *it);
-static int get_registers(comedi_device *dev, struct pci_dev *pci_dev_p);
-static int init_board_info(comedi_device *dev, struct pci_dev *pci_dev_p);
-static int init_ao_context(comedi_device *dev);
-static int init_ai_context(comedi_device *dev);
-static int init_dio_context(comedi_device *dev);
-static int init_cnt_context(comedi_device *dev);
-static int xilinx_download(comedi_device *dev);
-static int reset_board(comedi_device *dev);
+static int me4000_probe(struct comedi_device *dev, comedi_devconfig *it);
+static int get_registers(struct comedi_device *dev, struct pci_dev *pci_dev_p);
+static int init_board_info(struct comedi_device *dev, struct pci_dev *pci_dev_p);
+static int init_ao_context(struct comedi_device *dev);
+static int init_ai_context(struct comedi_device *dev);
+static int init_dio_context(struct comedi_device *dev);
+static int init_cnt_context(struct comedi_device *dev);
+static int xilinx_download(struct comedi_device *dev);
+static int reset_board(struct comedi_device *dev);
-static int me4000_dio_insn_bits(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
+static int me4000_dio_insn_bits(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data);
-static int me4000_dio_insn_config(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
+static int me4000_dio_insn_config(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data);
-static int cnt_reset(comedi_device *dev, unsigned int channel);
+static int cnt_reset(struct comedi_device *dev, unsigned int channel);
-static int cnt_config(comedi_device *dev,
+static int cnt_config(struct comedi_device *dev,
unsigned int channel, unsigned int mode);
-static int me4000_cnt_insn_config(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
+static int me4000_cnt_insn_config(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data);
-static int me4000_cnt_insn_write(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
+static int me4000_cnt_insn_write(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data);
-static int me4000_cnt_insn_read(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
+static int me4000_cnt_insn_read(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data);
-static int me4000_ai_insn_read(comedi_device *dev,
- comedi_subdevice *subdevice, comedi_insn *insn, lsampl_t *data);
+static int me4000_ai_insn_read(struct comedi_device *dev,
+ struct comedi_subdevice *subdevice, comedi_insn *insn, unsigned int *data);
-static int me4000_ai_cancel(comedi_device *dev, comedi_subdevice *s);
+static int me4000_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s);
-static int ai_check_chanlist(comedi_device *dev,
- comedi_subdevice *s, comedi_cmd *cmd);
+static int ai_check_chanlist(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_cmd *cmd);
-static int ai_round_cmd_args(comedi_device *dev,
- comedi_subdevice *s,
+static int ai_round_cmd_args(struct comedi_device *dev,
+ struct comedi_subdevice *s,
comedi_cmd *cmd,
unsigned int *init_ticks,
unsigned int *scan_ticks, unsigned int *chan_ticks);
-static int ai_prepare(comedi_device *dev,
- comedi_subdevice *s,
+static int ai_prepare(struct comedi_device *dev,
+ struct comedi_subdevice *s,
comedi_cmd *cmd,
unsigned int init_ticks,
unsigned int scan_ticks, unsigned int chan_ticks);
-static int ai_write_chanlist(comedi_device *dev,
- comedi_subdevice *s, comedi_cmd *cmd);
+static int ai_write_chanlist(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_cmd *cmd);
static irqreturn_t me4000_ai_isr(int irq, void *dev_id PT_REGS_ARG);
-static int me4000_ai_do_cmd_test(comedi_device *dev,
- comedi_subdevice *s, comedi_cmd *cmd);
+static int me4000_ai_do_cmd_test(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_cmd *cmd);
-static int me4000_ai_do_cmd(comedi_device *dev, comedi_subdevice *s);
+static int me4000_ai_do_cmd(struct comedi_device *dev, struct comedi_subdevice *s);
-static int me4000_ao_insn_write(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
+static int me4000_ao_insn_write(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data);
-static int me4000_ao_insn_read(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
+static int me4000_ao_insn_read(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data);
/*-----------------------------------------------------------------------------
Meilhaus inline functions
---------------------------------------------------------------------------*/
-static inline void me4000_outb(comedi_device *dev, unsigned char value,
+static inline void me4000_outb(struct comedi_device *dev, unsigned char value,
unsigned long port)
{
PORT_PDEBUG("--> 0x%02X port 0x%04lX\n", value, port);
outb(value, port);
}
-static inline void me4000_outl(comedi_device *dev, unsigned long value,
+static inline void me4000_outl(struct comedi_device *dev, unsigned long value,
unsigned long port)
{
PORT_PDEBUG("--> 0x%08lX port 0x%04lX\n", value, port);
outl(value, port);
}
-static inline unsigned long me4000_inl(comedi_device *dev, unsigned long port)
+static inline unsigned long me4000_inl(struct comedi_device *dev, unsigned long port)
{
unsigned long value;
value = inl(port);
return value;
}
-static inline unsigned char me4000_inb(comedi_device *dev, unsigned long port)
+static inline unsigned char me4000_inb(struct comedi_device *dev, unsigned long port)
{
unsigned char value;
value = inb(port);
}
};
-static int me4000_attach(comedi_device *dev, comedi_devconfig *it)
+static int me4000_attach(struct comedi_device *dev, comedi_devconfig *it)
{
- comedi_subdevice *s;
+ struct comedi_subdevice *s;
int result;
CALL_PDEBUG("In me4000_attach()\n");
return 0;
}
-static int me4000_probe(comedi_device *dev, comedi_devconfig *it)
+static int me4000_probe(struct comedi_device *dev, comedi_devconfig *it)
{
struct pci_dev *pci_device;
int result, i;
CALL_PDEBUG("In me4000_probe()\n");
/* Allocate private memory */
- if (alloc_private(dev, sizeof(me4000_info_t)) < 0) {
+ if (alloc_private(dev, sizeof(me4000_info_t)) < 0)
return -ENOMEM;
- }
+
/*
* Probe the device to determine what device in the series it is.
*/
return 0;
}
-static int get_registers(comedi_device *dev, struct pci_dev *pci_dev_p)
+static int get_registers(struct comedi_device *dev, struct pci_dev *pci_dev_p)
{
CALL_PDEBUG("In get_registers()\n");
return 0;
}
-static int init_board_info(comedi_device *dev, struct pci_dev *pci_dev_p)
+static int init_board_info(struct comedi_device *dev, struct pci_dev *pci_dev_p)
{
int result;
/* Get the serial number */
result = pci_read_config_dword(pci_dev_p, 0x2C, &info->serial_no);
- if (result != PCIBIOS_SUCCESSFUL) {
+ if (result != PCIBIOS_SUCCESSFUL)
return result;
- }
/* Get the hardware revision */
result = pci_read_config_byte(pci_dev_p, 0x08, &info->hw_revision);
- if (result != PCIBIOS_SUCCESSFUL) {
+ if (result != PCIBIOS_SUCCESSFUL)
return result;
- }
/* Get the vendor id */
info->vendor_id = pci_dev_p->vendor;
return 0;
}
-static int init_ao_context(comedi_device *dev)
+static int init_ao_context(struct comedi_device *dev)
{
int i;
return 0;
}
-static int init_ai_context(comedi_device *dev)
+static int init_ai_context(struct comedi_device *dev)
{
CALL_PDEBUG("In init_ai_context()\n");
return 0;
}
-static int init_dio_context(comedi_device *dev)
+static int init_dio_context(struct comedi_device *dev)
{
CALL_PDEBUG("In init_dio_context()\n");
return 0;
}
-static int init_cnt_context(comedi_device *dev)
+static int init_cnt_context(struct comedi_device *dev)
{
CALL_PDEBUG("In init_cnt_context()\n");
extern unsigned char *xilinx_firm;
#endif
-static int xilinx_download(comedi_device *dev)
+static int xilinx_download(struct comedi_device *dev)
{
u32 value = 0;
wait_queue_head_t queue;
return 0;
}
-static int reset_board(comedi_device *dev)
+static int reset_board(struct comedi_device *dev)
{
unsigned long icr;
return 0;
}
-static int me4000_detach(comedi_device *dev)
+static int me4000_detach(struct comedi_device *dev)
{
CALL_PDEBUG("In me4000_detach()\n");
if (info) {
if (info->pci_dev_p) {
reset_board(dev);
- if (info->plx_regbase) {
+ if (info->plx_regbase)
comedi_pci_disable(info->pci_dev_p);
- }
pci_dev_put(info->pci_dev_p);
}
}
Analog input section
===========================================================================*/
-static int me4000_ai_insn_read(comedi_device *dev,
- comedi_subdevice *subdevice, comedi_insn *insn, lsampl_t *data)
+static int me4000_ai_insn_read(struct comedi_device *dev,
+ struct comedi_subdevice *subdevice, comedi_insn *insn, unsigned int *data)
{
int chan = CR_CHAN(insn->chanspec);
return 1;
}
-static int me4000_ai_cancel(comedi_device *dev, comedi_subdevice *s)
+static int me4000_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
{
unsigned long tmp;
return 0;
}
-static int ai_check_chanlist(comedi_device *dev,
- comedi_subdevice *s, comedi_cmd *cmd)
+static int ai_check_chanlist(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_cmd *cmd)
{
int aref;
int i;
return 0;
}
-static int ai_round_cmd_args(comedi_device *dev,
- comedi_subdevice *s,
+static int ai_round_cmd_args(struct comedi_device *dev,
+ struct comedi_subdevice *s,
comedi_cmd *cmd,
unsigned int *init_ticks,
unsigned int *scan_ticks, unsigned int *chan_ticks)
rest = (cmd->start_arg * 33) % 1000;
if (cmd->flags & TRIG_ROUND_NEAREST) {
- if (rest > 33) {
+ if (rest > 33)
(*init_ticks)++;
- }
} else if (cmd->flags & TRIG_ROUND_UP) {
if (rest)
(*init_ticks)++;
rest = (cmd->scan_begin_arg * 33) % 1000;
if (cmd->flags & TRIG_ROUND_NEAREST) {
- if (rest > 33) {
+ if (rest > 33)
(*scan_ticks)++;
- }
} else if (cmd->flags & TRIG_ROUND_UP) {
if (rest)
(*scan_ticks)++;
rest = (cmd->convert_arg * 33) % 1000;
if (cmd->flags & TRIG_ROUND_NEAREST) {
- if (rest > 33) {
+ if (rest > 33)
(*chan_ticks)++;
- }
} else if (cmd->flags & TRIG_ROUND_UP) {
if (rest)
(*chan_ticks)++;
return 0;
}
-static void ai_write_timer(comedi_device *dev,
+static void ai_write_timer(struct comedi_device *dev,
unsigned int init_ticks,
unsigned int scan_ticks, unsigned int chan_ticks)
{
me4000_outl(dev, chan_ticks - 1, info->ai_context.chan_timer_reg);
}
-static int ai_prepare(comedi_device *dev,
- comedi_subdevice *s,
+static int ai_prepare(struct comedi_device *dev,
+ struct comedi_subdevice *s,
comedi_cmd *cmd,
unsigned int init_ticks,
unsigned int scan_ticks, unsigned int chan_ticks)
return 0;
}
-static int ai_write_chanlist(comedi_device *dev,
- comedi_subdevice *s, comedi_cmd *cmd)
+static int ai_write_chanlist(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_cmd *cmd)
{
unsigned int entry;
unsigned int chan;
return 0;
}
-static int me4000_ai_do_cmd(comedi_device *dev, comedi_subdevice *s)
+static int me4000_ai_do_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
{
int err;
unsigned int init_ticks = 0;
* - invalid chanlist
* So I tried to adopt this scheme.
*/
-static int me4000_ai_do_cmd_test(comedi_device *dev,
- comedi_subdevice *s, comedi_cmd *cmd)
+static int me4000_ai_do_cmd_test(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_cmd *cmd)
{
unsigned int init_ticks;
cmd->stop_src = TRIG_NONE;
err++;
}
- if (err) {
+ if (err)
return 1;
- }
/*
* Stage 2. Check for trigger source conflicts.
cmd->scan_end_src = TRIG_NONE;
err++;
}
- if (err) {
+ if (err)
return 2;
- }
/*
* Stage 3. Check if arguments are generally valid.
cmd->convert_arg = 2000;
err++;
}
- if (err) {
+
+ if (err)
return 3;
- }
/*
* Stage 4. Check for argument conflicts.
err++;
}
}
- if (err) {
+
+ if (err)
return 4;
- }
/*
* Stage 5. Check the channel list.
static irqreturn_t me4000_ai_isr(int irq, void *dev_id PT_REGS_ARG)
{
unsigned int tmp;
- comedi_device *dev = dev_id;
- comedi_subdevice *s = dev->subdevices;
+ struct comedi_device *dev = dev_id;
+ struct comedi_subdevice *s = dev->subdevices;
me4000_ai_context_t *ai_context = &info->ai_context;
int i;
int c = 0;
Analog output section
===========================================================================*/
-static int me4000_ao_insn_write(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data)
+static int me4000_ao_insn_write(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data)
{
int chan = CR_CHAN(insn->chanspec);
return 1;
}
-static int me4000_ao_insn_read(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data)
+static int me4000_ao_insn_read(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data)
{
int chan = CR_CHAN(insn->chanspec);
Digital I/O section
===========================================================================*/
-static int me4000_dio_insn_bits(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data)
+static int me4000_dio_insn_bits(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data)
{
CALL_PDEBUG("In me4000_dio_insn_bits()\n");
/* Length of data must be 2 (mask and new data, see below) */
- if (insn->n == 0) {
+ if (insn->n == 0)
return 0;
- }
+
if (insn->n != 2) {
printk("comedi%d: me4000: me4000_dio_insn_bits(): Invalid instruction length\n", dev->minor);
return -EINVAL;
return 2;
}
-static int me4000_dio_insn_config(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data)
+static int me4000_dio_insn_config(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data)
{
unsigned long tmp;
int chan = CR_CHAN(insn->chanspec);
Counter section
===========================================================================*/
-static int cnt_reset(comedi_device *dev, unsigned int channel)
+static int cnt_reset(struct comedi_device *dev, unsigned int channel)
{
CALL_PDEBUG("In cnt_reset()\n");
return 0;
}
-static int cnt_config(comedi_device *dev, unsigned int channel,
+static int cnt_config(struct comedi_device *dev, unsigned int channel,
unsigned int mode)
{
int tmp = 0;
return 0;
}
-static int me4000_cnt_insn_config(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data)
+static int me4000_cnt_insn_config(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data)
{
int err;
return 2;
}
-static int me4000_cnt_insn_read(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data)
+static int me4000_cnt_insn_read(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data)
{
unsigned short tmp;
CALL_PDEBUG("In me4000_cnt_insn_read()\n");
- if (insn->n == 0) {
+ if (insn->n == 0)
return 0;
- }
+
if (insn->n > 1) {
printk(KERN_ERR
"comedi%d: me4000: me4000_cnt_insn_read(): Invalid instruction length %d\n",
return 1;
}
-static int me4000_cnt_insn_write(comedi_device *dev,
- comedi_subdevice *s, comedi_insn *insn, lsampl_t *data)
+static int me4000_cnt_insn_write(struct comedi_device *dev,
+ struct comedi_subdevice *s, comedi_insn *insn, unsigned int *data)
{
unsigned short tmp;