* boards in this way is optional, and completely driver-dependent.
* Some drivers use arrays such as this, other do not.
*/
-typedef struct atao_board_struct {
+struct atao_board {
const char *name;
int n_ao_chans;
-} atao_board;
-static const atao_board atao_boards[] = {
+};
+
+static const struct atao_board atao_boards[] = {
{
- name: "ai-ao-6",
- n_ao_chans:6,
+ .name = "ai-ao-6",
+ .n_ao_chans = 6,
},
{
- name: "ai-ao-10",
- n_ao_chans:10,
+ .name = "ai-ao-10",
+ .n_ao_chans = 10,
},
};
-#define thisboard ((atao_board *)dev->board_ptr)
+#define thisboard ((struct atao_board *)dev->board_ptr)
+
+struct atao_private {
-typedef struct {
unsigned short cfg1;
unsigned short cfg2;
unsigned short cfg3;
/* Used for AO readback */
- lsampl_t ao_readback[10];
-} atao_private;
-#define devpriv ((atao_private *)dev->private)
-
-static int atao_attach(comedi_device * dev, comedi_devconfig * it);
-static int atao_detach(comedi_device * dev);
-static comedi_driver driver_atao = {
- driver_name:"ni_at_ao",
- module:THIS_MODULE,
- attach:atao_attach,
- detach:atao_detach,
- board_name:&atao_boards[0].name,
- offset:sizeof(atao_board),
- num_names:sizeof(atao_boards) / sizeof(atao_board),
+ unsigned int ao_readback[10];
+};
+
+#define devpriv ((struct atao_private *)dev->private)
+
+static int atao_attach(struct comedi_device *dev, struct comedi_devconfig *it);
+static int atao_detach(struct comedi_device *dev);
+static struct comedi_driver driver_atao = {
+ .driver_name = "ni_at_ao",
+ .module = THIS_MODULE,
+ .attach = atao_attach,
+ .detach = atao_detach,
+ .board_name = &atao_boards[0].name,
+ .offset = sizeof(struct atao_board),
+ .num_names = ARRAY_SIZE(atao_boards),
};
COMEDI_INITCLEANUP(driver_atao);
-static void atao_reset(comedi_device * dev);
-
-static int atao_ao_winsn(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int atao_ao_rinsn(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int atao_dio_insn_bits(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int atao_dio_insn_config(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int atao_calib_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int atao_calib_insn_write(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-
-static int atao_attach(comedi_device * dev, comedi_devconfig * it)
+static void atao_reset(struct comedi_device *dev);
+
+static int atao_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data);
+static int atao_ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data);
+static int atao_dio_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data);
+static int atao_dio_insn_config(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data);
+static int atao_calib_insn_read(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data);
+static int atao_calib_insn_write(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data);
+
+static int atao_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
- comedi_subdevice *s;
+ struct comedi_subdevice *s;
unsigned long iobase;
int ao_unipolar;
}
dev->iobase = iobase;
- //dev->board_ptr = atao_probe(dev);
+ /* dev->board_ptr = atao_probe(dev); */
dev->board_name = thisboard->name;
- if (alloc_private(dev, sizeof(atao_private)) < 0)
+ if (alloc_private(dev, sizeof(struct atao_private)) < 0)
return -ENOMEM;
if (alloc_subdevices(dev, 4) < 0)
s = dev->subdevices + 3;
/* eeprom subdevice */
- //s->type=COMEDI_SUBD_EEPROM;
+ /* s->type=COMEDI_SUBD_EEPROM; */
s->type = COMEDI_SUBD_UNUSED;
atao_reset(dev);
return 0;
}
-static int atao_detach(comedi_device * dev)
+static int atao_detach(struct comedi_device *dev)
{
printk("comedi%d: atao: remove\n", dev->minor);
return 0;
}
-static void atao_reset(comedi_device * dev)
+static void atao_reset(struct comedi_device *dev)
{
/* This is the reset sequence described in the manual */
outw(devpriv->cfg1, dev->iobase + ATAO_CFG1);
}
-static int atao_ao_winsn(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int atao_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
int i;
int chan = CR_CHAN(insn->chanspec);
return i;
}
-static int atao_ao_rinsn(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int atao_ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
int i;
int chan = CR_CHAN(insn->chanspec);
return i;
}
-static int atao_dio_insn_bits(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int atao_dio_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
if (insn->n != 2)
return -EINVAL;
return 2;
}
-static int atao_dio_insn_config(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int atao_dio_insn_config(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
int chan = CR_CHAN(insn->chanspec);
unsigned int mask, bit;
* DACs. It is not explicitly stated in the manual how to access
* the caldacs, but we can guess.
*/
-static int atao_calib_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int atao_calib_insn_read(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
int i;
for (i = 0; i < insn->n; i++) {
return insn->n;
}
-static int atao_calib_insn_write(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int atao_calib_insn_write(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
unsigned int bitstring, bit;
unsigned int chan = CR_CHAN(insn->chanspec);