staging: comedi: drivers: remove remaining devpriv macros
authorH Hartley Sweeten <hartleys@visionengravers.com>
Mon, 15 Oct 2012 17:15:52 +0000 (10:15 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Oct 2012 19:00:54 +0000 (12:00 -0700)
The remaining comedi drivers that still have a devpriv macro
are all pretty straight forward for removing the devpriv
macro.

This macro relies on a local variable having a specific name.
Remove its use by replacing it with a local variable where
used.

The inline function alloc_private(), used to kzalloc the
dev->private memory, returns non-zero if there is an error.
Fix all the alloc_private() calls accordingly and remove any
kernel messages or obvious comments that still exist in the
drivers. Leave a comment in the skel driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
60 files changed:
drivers/staging/comedi/drivers/8255_pci.c
drivers/staging/comedi/drivers/adl_pci6208.c
drivers/staging/comedi/drivers/adl_pci9118.c
drivers/staging/comedi/drivers/adv_pci1710.c
drivers/staging/comedi/drivers/adv_pci1723.c
drivers/staging/comedi/drivers/adv_pci_dio.c
drivers/staging/comedi/drivers/amplc_dio200.c
drivers/staging/comedi/drivers/amplc_pc236.c
drivers/staging/comedi/drivers/amplc_pci224.c
drivers/staging/comedi/drivers/amplc_pci230.c
drivers/staging/comedi/drivers/cb_das16_cs.c
drivers/staging/comedi/drivers/comedi_parport.c
drivers/staging/comedi/drivers/comedi_test.c
drivers/staging/comedi/drivers/daqboard2000.c
drivers/staging/comedi/drivers/das08.c
drivers/staging/comedi/drivers/das08_cs.c
drivers/staging/comedi/drivers/das16.c
drivers/staging/comedi/drivers/das16m1.c
drivers/staging/comedi/drivers/das1800.c
drivers/staging/comedi/drivers/das6402.c
drivers/staging/comedi/drivers/das800.c
drivers/staging/comedi/drivers/dmm32at.c
drivers/staging/comedi/drivers/dt2801.c
drivers/staging/comedi/drivers/dt2811.c
drivers/staging/comedi/drivers/dt2814.c
drivers/staging/comedi/drivers/dt2815.c
drivers/staging/comedi/drivers/dt282x.c
drivers/staging/comedi/drivers/dt3000.c
drivers/staging/comedi/drivers/dt9812.c
drivers/staging/comedi/drivers/fl512.c
drivers/staging/comedi/drivers/icp_multi.c
drivers/staging/comedi/drivers/ii_pci20kc.c
drivers/staging/comedi/drivers/jr3_pci.c
drivers/staging/comedi/drivers/me_daq.c
drivers/staging/comedi/drivers/mpc624.c
drivers/staging/comedi/drivers/multiq3.c
drivers/staging/comedi/drivers/ni_6527.c
drivers/staging/comedi/drivers/ni_670x.c
drivers/staging/comedi/drivers/ni_at_a2150.c
drivers/staging/comedi/drivers/ni_at_ao.c
drivers/staging/comedi/drivers/ni_atmio16d.c
drivers/staging/comedi/drivers/ni_daq_dio24.c
drivers/staging/comedi/drivers/ni_labpc.c
drivers/staging/comedi/drivers/ni_labpc_cs.c
drivers/staging/comedi/drivers/ni_pcidio.c
drivers/staging/comedi/drivers/pcl711.c
drivers/staging/comedi/drivers/pcl726.c
drivers/staging/comedi/drivers/pcl812.c
drivers/staging/comedi/drivers/pcl816.c
drivers/staging/comedi/drivers/pcl818.c
drivers/staging/comedi/drivers/pcm3724.c
drivers/staging/comedi/drivers/pcmad.c
drivers/staging/comedi/drivers/pcmda12.c
drivers/staging/comedi/drivers/pcmmio.c
drivers/staging/comedi/drivers/pcmuio.c
drivers/staging/comedi/drivers/rtd520.c
drivers/staging/comedi/drivers/rti800.c
drivers/staging/comedi/drivers/rti802.c
drivers/staging/comedi/drivers/serial2002.c
drivers/staging/comedi/drivers/skel.c

index 7dff3c0..af76e4e 100644 (file)
@@ -236,7 +236,7 @@ static int pci_8255_attach_pci(struct comedi_device *dev,
        dev->board_name = board->name;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index 3492ce1..de36252 100644 (file)
@@ -192,7 +192,7 @@ static int pci6208_attach_pci(struct comedi_device *dev,
        dev->board_name = boardinfo->name;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index 06ff65c..4eca876 100644 (file)
@@ -1924,10 +1924,8 @@ static int pci9118_attach(struct comedi_device *dev,
                master = 1;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0) {
-               printk(" - Allocation failed!\n");
-               return -ENOMEM;
-       }
+       if (ret)
+               return ret;
        devpriv = dev->private;
 
        pcidev = pci9118_find_pci(dev, it);
index def37bc..322d011 100644 (file)
@@ -1274,7 +1274,7 @@ static int pci1710_attach_pci(struct comedi_device *dev,
        dev->board_name = this_board->name;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index df4efc0..3c932e7 100644 (file)
@@ -245,7 +245,7 @@ static int pci1723_attach_pci(struct comedi_device *dev,
        dev->board_name = dev->driver->driver_name;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index a3c2241..8fa6159 100644 (file)
@@ -1109,7 +1109,7 @@ static int pci_dio_attach_pci(struct comedi_device *dev,
        dev->board_name = this_board->name;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index 08f3052..556c633 100644 (file)
@@ -1334,15 +1334,15 @@ static int dio200_pci_common_attach(struct comedi_device *dev,
 static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct dio200_board *thisboard = comedi_board(dev);
+       struct dio200_private *devpriv;
        int ret;
 
        dev_info(dev->class_dev, DIO200_DRIVER_NAME ": attach\n");
 
-       ret = alloc_private(dev, sizeof(struct dio200_private));
-       if (ret < 0) {
-               dev_err(dev->class_dev, "error! out of memory!\n");
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
-       }
+       devpriv = dev->private;
 
        /* Process options and reserve resources according to bus type. */
        if (is_isa_board(thisboard)) {
@@ -1377,6 +1377,7 @@ static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static int __devinit dio200_attach_pci(struct comedi_device *dev,
                                       struct pci_dev *pci_dev)
 {
+       struct dio200_private *devpriv;
        int ret;
 
        if (!DO_PCI)
@@ -1384,11 +1385,12 @@ static int __devinit dio200_attach_pci(struct comedi_device *dev,
 
        dev_info(dev->class_dev, DIO200_DRIVER_NAME ": attach pci %s\n",
                 pci_name(pci_dev));
-       ret = alloc_private(dev, sizeof(struct dio200_private));
-       if (ret < 0) {
-               dev_err(dev->class_dev, "error! out of memory!\n");
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
-       }
+       devpriv = dev->private;
+
        dev->board_ptr = dio200_find_pci_board(pci_dev);
        if (dev->board_ptr == NULL) {
                dev_err(dev->class_dev, "BUG! cannot determine board type!\n");
index eacb5e4..56354aa 100644 (file)
@@ -505,14 +505,16 @@ static int pc236_pci_common_attach(struct comedi_device *dev,
 static int pc236_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pc236_board *thisboard = comedi_board(dev);
+       struct pc236_private *devpriv;
        int ret;
 
        dev_info(dev->class_dev, PC236_DRIVER_NAME ": attach\n");
-       ret = alloc_private(dev, sizeof(struct pc236_private));
-       if (ret < 0) {
-               dev_err(dev->class_dev, "error! out of memory!\n");
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
-       }
+       devpriv = dev->private;
+
        /* Process options according to bus type. */
        if (is_isa_board(thisboard)) {
                unsigned long iobase = it->options[0];
@@ -543,6 +545,7 @@ static int pc236_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static int __devinit pc236_attach_pci(struct comedi_device *dev,
                                      struct pci_dev *pci_dev)
 {
+       struct pc236_private *devpriv;
        int ret;
 
        if (!DO_PCI)
@@ -550,11 +553,12 @@ static int __devinit pc236_attach_pci(struct comedi_device *dev,
 
        dev_info(dev->class_dev, PC236_DRIVER_NAME ": attach pci %s\n",
                 pci_name(pci_dev));
-       ret = alloc_private(dev, sizeof(struct pc236_private));
-       if (ret < 0) {
-               dev_err(dev->class_dev, "error! out of memory!\n");
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
-       }
+       devpriv = dev->private;
+
        dev->board_ptr = pc236_find_pci_board(pci_dev);
        if (dev->board_ptr == NULL) {
                dev_err(dev->class_dev, "BUG! cannot determine board type!\n");
index 1f65ec4..5d73082 100644 (file)
@@ -1443,16 +1443,16 @@ static int pci224_attach_common(struct comedi_device *dev,
 
 static int pci224_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct pci224_private *devpriv;
        struct pci_dev *pci_dev;
        int ret;
 
        dev_info(dev->class_dev, DRIVER_NAME ": attach\n");
 
-       ret = alloc_private(dev, sizeof(struct pci224_private));
-       if (ret < 0) {
-               dev_err(dev->class_dev, "error! out of memory!\n");
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
-       }
+       devpriv = dev->private;
 
        pci_dev = pci224_find_pci_dev(dev, it);
        if (!pci_dev)
@@ -1464,16 +1464,16 @@ static int pci224_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static int __devinit
 pci224_attach_pci(struct comedi_device *dev, struct pci_dev *pci_dev)
 {
+       struct pci224_private *devpriv;
        int ret;
 
        dev_info(dev->class_dev, DRIVER_NAME ": attach_pci %s\n",
                 pci_name(pci_dev));
 
-       ret = alloc_private(dev, sizeof(struct pci224_private));
-       if (ret < 0) {
-               dev_err(dev->class_dev, "error! out of memory!\n");
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
-       }
+       devpriv = dev->private;
 
        dev->board_ptr = pci224_find_pci_board(pci_dev);
        if (dev->board_ptr == NULL) {
index bd8fb87..cf454b9 100644 (file)
@@ -2662,13 +2662,11 @@ static int pci230_alloc_private(struct comedi_device *dev)
        struct pci230_private *devpriv;
        int err;
 
-       /* sets dev->private to allocated memory */
-       err = alloc_private(dev, sizeof(struct pci230_private));
-       if (err) {
-               dev_err(dev->class_dev, "error! out of memory!\n");
+       err = alloc_private(dev, sizeof(*devpriv));
+       if (err)
                return err;
-       }
        devpriv = dev->private;
+
        spin_lock_init(&devpriv->isr_spinlock);
        spin_lock_init(&devpriv->res_spinlock);
        spin_lock_init(&devpriv->ai_stop_spinlock);
@@ -2836,9 +2834,11 @@ static int pci230_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
        dev_info(dev->class_dev, "amplc_pci230: attach %s %d,%d\n",
                 thisboard->name, it->options[0], it->options[1]);
-       rc = pci230_alloc_private(dev); /* sets dev->private */
+
+       rc = pci230_alloc_private(dev);
        if (rc)
                return rc;
+
        pci_dev = pci230_find_pci_dev(dev, it);
        if (!pci_dev)
                return -EIO;
@@ -2852,9 +2852,11 @@ static int __devinit pci230_attach_pci(struct comedi_device *dev,
 
        dev_info(dev->class_dev, "amplc_pci230: attach pci %s\n",
                 pci_name(pci_dev));
-       rc = pci230_alloc_private(dev); /* sets dev->private */
+
+       rc = pci230_alloc_private(dev);
        if (rc)
                return rc;
+
        dev->board_ptr = pci230_find_pci_board(pci_dev);
        if (dev->board_ptr == NULL) {
                dev_err(dev->class_dev,
index 6d81d8b..64442b3 100644 (file)
@@ -428,6 +428,7 @@ static int das16cs_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
        const struct das16cs_board *thisboard;
+       struct das16cs_private *devpriv;
        struct pcmcia_device *link;
        struct comedi_subdevice *s;
        int ret;
@@ -451,8 +452,10 @@ static int das16cs_attach(struct comedi_device *dev,
                return ret;
        dev->irq = link->irq;
 
-       if (alloc_private(dev, sizeof(struct das16cs_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        ret = comedi_alloc_subdevices(dev, 3);
        if (ret)
index 22ef942..a1371c5 100644 (file)
@@ -306,7 +306,7 @@ static int parport_attach(struct comedi_device *dev,
                return ret;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index 7817def..788a5cc 100644 (file)
@@ -415,7 +415,7 @@ static int waveform_attach(struct comedi_device *dev,
        dev->board_name = dev->driver->driver_name;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index d13c8c5..6bc51fc 100644 (file)
@@ -707,8 +707,8 @@ static int daqboard2000_attach_pci(struct comedi_device *dev,
        dev->board_name = board->name;
 
        result = alloc_private(dev, sizeof(*devpriv));
-       if (result < 0)
-               return -ENOMEM;
+       if (result)
+               return result;
        devpriv = dev->private;
 
        result = comedi_pci_enable(pcidev, dev->driver->driver_name);
index 5fd21fa..19c2907 100644 (file)
@@ -778,14 +778,18 @@ das08_find_pci_board(struct pci_dev *pdev)
 static int __devinit __maybe_unused
 das08_attach_pci(struct comedi_device *dev, struct pci_dev *pdev)
 {
+       struct das08_private_struct *devpriv;
        unsigned long iobase;
        int ret;
 
        if (!DO_PCI)
                return -EINVAL;
-       ret = alloc_private(dev, sizeof(struct das08_private_struct));
-       if (ret < 0)
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
+
        dev_info(dev->class_dev, "attach pci %s\n", pci_name(pdev));
        dev->board_ptr = das08_find_pci_board(pdev);
        if (dev->board_ptr == NULL) {
@@ -812,8 +816,8 @@ das08_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        int ret;
        unsigned long iobase;
 
-       ret = alloc_private(dev, sizeof(struct das08_private_struct));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index e4c91e6..d908d2d 100644 (file)
@@ -90,13 +90,15 @@ static int das08_cs_attach(struct comedi_device *dev,
                           struct comedi_devconfig *it)
 {
        const struct das08_board_struct *thisboard = comedi_board(dev);
+       struct das08_private_struct *devpriv;
        int ret;
        unsigned long iobase;
        struct pcmcia_device *link = cur_dev;   /*  XXX hack */
 
-       ret = alloc_private(dev, sizeof(struct das08_private_struct));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        dev_info(dev->class_dev, "das08_cs: attach\n");
        /*  deal with a pci board */
index fcb8a32..3f614dc 100644 (file)
@@ -392,12 +392,12 @@ struct das16_private_struct {
        volatile short timer_running;
        volatile short timer_mode;      /*  true if using timer mode */
 };
-#define devpriv ((struct das16_private_struct *)(dev->private))
 
 static int das16_cmd_test(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_cmd *cmd)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv = dev->private;
        int err = 0, tmp;
        int gain, start_chan, i;
        int mask;
@@ -540,6 +540,7 @@ static int das16_cmd_test(struct comedi_device *dev, struct comedi_subdevice *s,
 static unsigned int das16_suggest_transfer_size(struct comedi_device *dev,
                                                const struct comedi_cmd *cmd)
 {
+       struct das16_private_struct *devpriv = dev->private;
        unsigned int size;
        unsigned int freq;
 
@@ -581,6 +582,8 @@ static unsigned int das16_suggest_transfer_size(struct comedi_device *dev,
 static unsigned int das16_set_pacer(struct comedi_device *dev, unsigned int ns,
                                    int rounding_flags)
 {
+       struct das16_private_struct *devpriv = dev->private;
+
        i8253_cascade_ns_to_timer_2div(devpriv->clockbase, &(devpriv->divisor1),
                                       &(devpriv->divisor2), &ns,
                                       rounding_flags & TRIG_ROUND_MASK);
@@ -595,6 +598,7 @@ static unsigned int das16_set_pacer(struct comedi_device *dev, unsigned int ns,
 static int das16_cmd_exec(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv = dev->private;
        struct comedi_async *async = s->async;
        struct comedi_cmd *cmd = &async->cmd;
        unsigned int byte;
@@ -701,6 +705,7 @@ static int das16_cmd_exec(struct comedi_device *dev, struct comedi_subdevice *s)
 static int das16_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv = dev->private;
        unsigned long flags;
 
        spin_lock_irqsave(&dev->spinlock, flags);
@@ -738,6 +743,7 @@ static int das16_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv = dev->private;
        int i, n;
        int range;
        int chan;
@@ -848,10 +854,12 @@ static int das16_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 */
 static int disable_dma_on_even(struct comedi_device *dev)
 {
+       struct das16_private_struct *devpriv = dev->private;
        int residue;
        int i;
        static const int disable_limit = 100;
        static const int enable_timeout = 100;
+
        disable_dma(devpriv->dma_chan);
        residue = get_dma_residue(devpriv->dma_chan);
        for (i = 0; i < disable_limit && (residue % 2); ++i) {
@@ -877,6 +885,7 @@ static int disable_dma_on_even(struct comedi_device *dev)
 static void das16_interrupt(struct comedi_device *dev)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv = dev->private;
        unsigned long dma_flags, spin_flags;
        struct comedi_subdevice *s = dev->read_subdev;
        struct comedi_async *async;
@@ -973,6 +982,7 @@ static irqreturn_t das16_dma_interrupt(int irq, void *d)
 static void das16_timer_interrupt(unsigned long arg)
 {
        struct comedi_device *dev = (struct comedi_device *)arg;
+       struct das16_private_struct *devpriv = dev->private;
 
        das16_interrupt(dev);
 
@@ -1001,6 +1011,7 @@ static void reg_dump(struct comedi_device *dev)
 static int das16_probe(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv = dev->private;
        int status;
        int diobits;
 
@@ -1035,6 +1046,7 @@ static int das16_probe(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static int das1600_mode_detect(struct comedi_device *dev)
 {
+       struct das16_private_struct *devpriv = dev->private;
        int status = 0;
 
        status = inb(dev->iobase + DAS1600_STATUS_B);
@@ -1080,6 +1092,7 @@ static void das16_ai_munge(struct comedi_device *dev,
 static int das16_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv;
        struct comedi_subdevice *s;
        int ret;
        unsigned int irq;
@@ -1114,9 +1127,10 @@ static int das16_attach(struct comedi_device *dev, struct comedi_devconfig *it)
                }
        }
 
-       ret = alloc_private(dev, sizeof(struct das16_private_struct));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        if (board->size < 0x400) {
                printk(" 0x%04lx-0x%04lx\n", iobase, iobase + board->size);
@@ -1353,6 +1367,7 @@ static int das16_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static void das16_detach(struct comedi_device *dev)
 {
        const struct das16_board *board = comedi_board(dev);
+       struct das16_private_struct *devpriv = dev->private;
 
        das16_reset(dev);
        if (dev->subdevices)
index c431727..b06f2b8 100644 (file)
@@ -144,7 +144,6 @@ struct das16m1_private_struct {
        unsigned int divisor1;  /*  divides master clock to obtain conversion speed */
        unsigned int divisor2;  /*  divides master clock to obtain conversion speed */
 };
-#define devpriv ((struct das16m1_private_struct *)(dev->private))
 
 static inline short munge_sample(short data)
 {
@@ -162,6 +161,7 @@ static void munge_sample_array(short *array, unsigned int num_elements)
 static int das16m1_cmd_test(struct comedi_device *dev,
                            struct comedi_subdevice *s, struct comedi_cmd *cmd)
 {
+       struct das16m1_private_struct *devpriv = dev->private;
        unsigned int err = 0, tmp, i;
 
        /* Step 1 : check if triggers are trivially valid */
@@ -271,6 +271,8 @@ static int das16m1_cmd_test(struct comedi_device *dev,
 static unsigned int das16m1_set_pacer(struct comedi_device *dev,
                                      unsigned int ns, int rounding_flags)
 {
+       struct das16m1_private_struct *devpriv = dev->private;
+
        i8253_cascade_ns_to_timer_2div(DAS16M1_XTAL, &(devpriv->divisor1),
                                       &(devpriv->divisor2), &ns,
                                       rounding_flags & TRIG_ROUND_MASK);
@@ -287,6 +289,7 @@ static unsigned int das16m1_set_pacer(struct comedi_device *dev,
 static int das16m1_cmd_exec(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct das16m1_private_struct *devpriv = dev->private;
        struct comedi_async *async = s->async;
        struct comedi_cmd *cmd = &async->cmd;
        unsigned int byte, i;
@@ -350,6 +353,8 @@ static int das16m1_cmd_exec(struct comedi_device *dev,
 
 static int das16m1_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct das16m1_private_struct *devpriv = dev->private;
+
        devpriv->control_state &= ~INTE & ~PACER_MASK;
        outb(devpriv->control_state, dev->iobase + DAS16M1_INTR_CONTROL);
 
@@ -360,6 +365,7 @@ static int das16m1_ai_rinsn(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       struct das16m1_private_struct *devpriv = dev->private;
        int i, n;
        int byte;
        const int timeout = 1000;
@@ -411,6 +417,7 @@ static int das16m1_do_wbits(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       struct das16m1_private_struct *devpriv = dev->private;
        unsigned int wbits;
 
        /*  only set bits that have been masked */
@@ -430,6 +437,7 @@ static int das16m1_do_wbits(struct comedi_device *dev,
 
 static void das16m1_handler(struct comedi_device *dev, unsigned int status)
 {
+       struct das16m1_private_struct *devpriv = dev->private;
        struct comedi_subdevice *s;
        struct comedi_async *async;
        struct comedi_cmd *cmd;
@@ -576,6 +584,7 @@ static int das16m1_irq_bits(unsigned int irq)
 static int das16m1_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
+       struct das16m1_private_struct *devpriv;
        struct comedi_subdevice *s;
        int ret;
        unsigned int irq;
@@ -585,9 +594,10 @@ static int das16m1_attach(struct comedi_device *dev,
 
        iobase = it->options[0];
 
-       ret = alloc_private(dev, sizeof(struct das16m1_private_struct));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        if (!request_region(iobase, DAS16M1_SIZE, dev->board_name)) {
                comedi_error(dev, "I/O port conflict\n");
index 2555f32..3754fcb 100644 (file)
@@ -454,8 +454,6 @@ struct das1800_private {
        short ao_update_bits;   /* remembers the last write to the 'update' dac */
 };
 
-#define devpriv ((struct das1800_private *)dev->private)
-
 /* analog out range for boards with basic analog out */
 static const struct comedi_lrange range_ao_1 = {
        1,
@@ -501,6 +499,7 @@ static void munge_data(struct comedi_device *dev, uint16_t * array,
 static void das1800_handle_fifo_half_full(struct comedi_device *dev,
                                          struct comedi_subdevice *s)
 {
+       struct das1800_private *devpriv = dev->private;
        int numPoints = 0;      /* number of points to read */
        struct comedi_cmd *cmd = &s->async->cmd;
 
@@ -520,6 +519,7 @@ static void das1800_handle_fifo_half_full(struct comedi_device *dev,
 static void das1800_handle_fifo_not_empty(struct comedi_device *dev,
                                          struct comedi_subdevice *s)
 {
+       struct das1800_private *devpriv = dev->private;
        short dpnt;
        int unipolar;
        struct comedi_cmd *cmd = &s->async->cmd;
@@ -548,6 +548,7 @@ static void das1800_flush_dma_channel(struct comedi_device *dev,
                                      struct comedi_subdevice *s,
                                      unsigned int channel, uint16_t *buffer)
 {
+       struct das1800_private *devpriv = dev->private;
        unsigned int num_bytes, num_samples;
        struct comedi_cmd *cmd = &s->async->cmd;
 
@@ -578,6 +579,7 @@ static void das1800_flush_dma_channel(struct comedi_device *dev,
 static void das1800_flush_dma(struct comedi_device *dev,
                              struct comedi_subdevice *s)
 {
+       struct das1800_private *devpriv = dev->private;
        unsigned long flags;
        const int dual_dma = devpriv->irq_dma_bits & DMA_DUAL;
 
@@ -609,6 +611,7 @@ static void das1800_flush_dma(struct comedi_device *dev,
 static void das1800_handle_dma(struct comedi_device *dev,
                               struct comedi_subdevice *s, unsigned int status)
 {
+       struct das1800_private *devpriv = dev->private;
        unsigned long flags;
        const int dual_dma = devpriv->irq_dma_bits & DMA_DUAL;
 
@@ -643,6 +646,8 @@ static void das1800_handle_dma(struct comedi_device *dev,
 
 static int das1800_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct das1800_private *devpriv = dev->private;
+
        outb(0x0, dev->iobase + DAS1800_STATUS);        /* disable conversions */
        outb(0x0, dev->iobase + DAS1800_CONTROL_B);     /* disable interrupts and dma */
        outb(0x0, dev->iobase + DAS1800_CONTROL_A);     /* disable and clear fifo and stop triggering */
@@ -656,6 +661,7 @@ static int das1800_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 /* the guts of the interrupt handler, that is shared with das1800_ai_poll */
 static void das1800_ai_handler(struct comedi_device *dev)
 {
+       struct das1800_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        struct comedi_async *async = s->async;
        struct comedi_cmd *cmd = &async->cmd;
@@ -783,6 +789,7 @@ static int das1800_ai_do_cmdtest(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_cmd *cmd)
 {
+       struct das1800_private *devpriv = dev->private;
        int err = 0;
        unsigned int tmp_arg;
        int i;
@@ -1006,6 +1013,7 @@ static int control_c_bits(const struct comedi_cmd *cmd)
 /* loads counters with divisor1, divisor2 from private structure */
 static int das1800_set_frequency(struct comedi_device *dev)
 {
+       struct das1800_private *devpriv = dev->private;
        int err = 0;
 
        /*  counter 1, mode 2 */
@@ -1026,6 +1034,7 @@ static int das1800_set_frequency(struct comedi_device *dev)
 static int setup_counters(struct comedi_device *dev,
                          const struct comedi_cmd *cmd)
 {
+       struct das1800_private *devpriv = dev->private;
        unsigned int period;
 
        /*  setup cascaded counters for conversion/scan frequency */
@@ -1107,6 +1116,7 @@ static unsigned int suggest_transfer_size(const struct comedi_cmd *cmd)
 /* sets up dma */
 static void setup_dma(struct comedi_device *dev, const struct comedi_cmd *cmd)
 {
+       struct das1800_private *devpriv = dev->private;
        unsigned long lock_flags;
        const int dual_dma = devpriv->irq_dma_bits & DMA_DUAL;
 
@@ -1174,6 +1184,7 @@ static void program_chanlist(struct comedi_device *dev,
 static int das1800_ai_do_cmd(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
+       struct das1800_private *devpriv = dev->private;
        int ret;
        int control_a, control_c;
        struct comedi_async *async = s->async;
@@ -1300,6 +1311,7 @@ static int das1800_ao_winsn(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       struct das1800_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
 /* int range = CR_RANGE(insn->chanspec); */
        int update_chan = thisboard->ao_n_chan - 1;
@@ -1342,6 +1354,7 @@ static int das1800_do_wbits(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       struct das1800_private *devpriv = dev->private;
        unsigned int wbits;
 
        /*  only set bits that have been masked */
@@ -1361,6 +1374,7 @@ static int das1800_do_wbits(struct comedi_device *dev,
 static int das1800_init_dma(struct comedi_device *dev, unsigned int dma0,
                            unsigned int dma1)
 {
+       struct das1800_private *devpriv = dev->private;
        unsigned long flags;
 
        /*  need an irq to do dma */
@@ -1518,6 +1532,7 @@ static int das1800_probe(struct comedi_device *dev)
 static int das1800_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
+       struct das1800_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase = it->options[0];
        unsigned int irq = it->options[1];
@@ -1527,9 +1542,10 @@ static int das1800_attach(struct comedi_device *dev,
        int board;
        int retval;
 
-       /* allocate and initialize dev->private */
-       if (alloc_private(dev, sizeof(struct das1800_private)) < 0)
-               return -ENOMEM;
+       retval = alloc_private(dev, sizeof(*devpriv));
+       if (retval)
+               return retval;
+       devpriv = dev->private;
 
        printk(KERN_DEBUG "comedi%d: %s: io 0x%lx", dev->minor,
               dev->driver->driver_name, iobase);
@@ -1699,11 +1715,13 @@ static int das1800_attach(struct comedi_device *dev,
 
 static void das1800_detach(struct comedi_device *dev)
 {
+       struct das1800_private *devpriv = dev->private;
+
        if (dev->iobase)
                release_region(dev->iobase, DAS1800_SIZE);
        if (dev->irq)
                free_irq(dev->irq, dev);
-       if (dev->private) {
+       if (devpriv) {
                if (devpriv->iobase2)
                        release_region(devpriv->iobase2, DAS1800_SIZE);
                if (devpriv->dma0)
index e134c46..8029e37 100644 (file)
@@ -104,7 +104,6 @@ struct das6402_private {
 
        int das6402_ignoreirq;
 };
-#define devpriv ((struct das6402_private *)dev->private)
 
 static void das6402_ai_fifo_dregs(struct comedi_device *dev,
                                  struct comedi_subdevice *s)
@@ -152,6 +151,7 @@ static void das6402_setcounter(struct comedi_device *dev)
 static irqreturn_t intr_handler(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct das6402_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
 
        if (!dev->attached || devpriv->das6402_ignoreirq) {
@@ -196,6 +196,8 @@ static void das6402_ai_fifo_read(struct comedi_device *dev, short *data, int n)
 static int das6402_ai_cancel(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
+       struct das6402_private *devpriv = dev->private;
+
        /*
         *  This function should reset the board from whatever condition it
         *  is in (i.e., acquiring data), to a non-active state.
@@ -217,6 +219,8 @@ static int das6402_ai_cancel(struct comedi_device *dev,
 static int das6402_ai_mode2(struct comedi_device *dev,
                            struct comedi_subdevice *s, comedi_trig * it)
 {
+       struct das6402_private *devpriv = dev->private;
+
        devpriv->das6402_ignoreirq = 1;
        dev_dbg(dev->class_dev, "Starting acquisition\n");
        outb_p(0x03, dev->iobase + 10); /* enable external trigging */
@@ -236,6 +240,7 @@ static int das6402_ai_mode2(struct comedi_device *dev,
 
 static int board_init(struct comedi_device *dev)
 {
+       struct das6402_private *devpriv = dev->private;
        BYTE b;
 
        devpriv->das6402_ignoreirq = 1;
@@ -277,6 +282,7 @@ static int board_init(struct comedi_device *dev)
 static int das6402_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
+       struct das6402_private *devpriv;
        unsigned int irq;
        unsigned long iobase;
        int ret;
@@ -303,9 +309,11 @@ static int das6402_attach(struct comedi_device *dev,
                return ret;
 
        dev->irq = irq;
-       ret = alloc_private(dev, sizeof(struct das6402_private));
-       if (ret < 0)
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        ret = comedi_alloc_subdevices(dev, 1);
        if (ret)
index 215deac..2a6df6b 100644 (file)
@@ -241,8 +241,6 @@ struct das800_private {
        volatile int do_bits;   /* digital output bits */
 };
 
-#define devpriv ((struct das800_private *)dev->private)
-
 static int das800_attach(struct comedi_device *dev,
                         struct comedi_devconfig *it);
 static void das800_detach(struct comedi_device *dev);
@@ -367,6 +365,7 @@ static irqreturn_t das800_interrupt(int irq, void *d)
        short i;                /* loop index */
        short dataPoint = 0;
        struct comedi_device *dev = d;
+       struct das800_private *devpriv = dev->private;
        struct comedi_subdevice *s = dev->read_subdev;  /* analog input subdevice */
        struct comedi_async *async;
        int status;
@@ -461,6 +460,7 @@ static irqreturn_t das800_interrupt(int irq, void *d)
 
 static int das800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct das800_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase = it->options[0];
        unsigned int irq = it->options[1];
@@ -472,9 +472,10 @@ static int das800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (irq)
                dev_dbg(dev->class_dev, "irq %u\n", irq);
 
-       /* allocate and initialize dev->private */
-       if (alloc_private(dev, sizeof(struct das800_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        if (iobase == 0) {
                dev_err(dev->class_dev,
@@ -569,6 +570,8 @@ static void das800_detach(struct comedi_device *dev)
 
 static int das800_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct das800_private *devpriv = dev->private;
+
        devpriv->forever = 0;
        devpriv->count = 0;
        disable_das800(dev);
@@ -578,7 +581,9 @@ static int das800_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 /* enable_das800 makes the card start taking hardware triggered conversions */
 static void enable_das800(struct comedi_device *dev)
 {
+       struct das800_private *devpriv = dev->private;
        unsigned long irq_flags;
+
        spin_lock_irqsave(&dev->spinlock, irq_flags);
        /*  enable fifo-half full interrupts for cio-das802/16 */
        if (thisboard->resolution == 16)
@@ -604,6 +609,7 @@ static int das800_ai_do_cmdtest(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_cmd *cmd)
 {
+       struct das800_private *devpriv = dev->private;
        int err = 0;
        int tmp;
        int gain, startChan;
@@ -710,6 +716,7 @@ static int das800_ai_do_cmdtest(struct comedi_device *dev,
 static int das800_ai_do_cmd(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct das800_private *devpriv = dev->private;
        int startChan, endChan, scan, gain;
        int conv_bits;
        unsigned long irq_flags;
@@ -793,6 +800,7 @@ static int das800_ai_rinsn(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct das800_private *devpriv = dev->private;
        int i, n;
        int chan;
        int range;
@@ -862,6 +870,7 @@ static int das800_do_wbits(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct das800_private *devpriv = dev->private;
        int wbits;
        unsigned long irq_flags;
 
@@ -885,6 +894,7 @@ static int das800_do_wbits(struct comedi_device *dev,
 /* loads counters with divisor1, divisor2 from private structure */
 static int das800_set_frequency(struct comedi_device *dev)
 {
+       struct das800_private *devpriv = dev->private;
        int err = 0;
 
        if (i8254_load(dev->iobase + DAS800_8254, 0, 1, devpriv->divisor1, 2))
index 824b692..c8b7a03 100644 (file)
@@ -793,8 +793,9 @@ static int dmm32at_attach(struct comedi_device *dev,
                dev->irq = irq;
        }
 
-       if (alloc_private(dev, sizeof(*devpriv)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
        devpriv = dev->private;
 
        ret = comedi_alloc_subdevices(dev, 3);
index c59a652..da139d2 100644 (file)
@@ -233,8 +233,6 @@ struct dt2801_private {
        unsigned int ao_readback[2];
 };
 
-#define devpriv ((struct dt2801_private *)dev->private)
-
 /* These are the low-level routines:
    writecommand: write a command to the board
    writedata: write data byte
@@ -508,6 +506,8 @@ static int dt2801_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt2801_private *devpriv = dev->private;
+
        data[0] = devpriv->ao_readback[CR_CHAN(insn->chanspec)];
 
        return 1;
@@ -517,6 +517,8 @@ static int dt2801_ao_insn_write(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt2801_private *devpriv = dev->private;
+
        dt2801_writecmd(dev, DT_C_WRITE_DAIM);
        dt2801_writedata(dev, CR_CHAN(insn->chanspec));
        dt2801_writedata2(dev, data[0]);
@@ -590,6 +592,7 @@ static int dt2801_dio_insn_config(struct comedi_device *dev,
 */
 static int dt2801_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct dt2801_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase;
        int board_code, type;
@@ -630,9 +633,10 @@ havetype:
        if (ret)
                goto out;
 
-       ret = alloc_private(dev, sizeof(struct dt2801_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        dev->board_name = boardtype.name;
 
index d3a8c1a..c4a7768 100644 (file)
@@ -226,8 +226,6 @@ struct dt2811_private {
        unsigned int ao_readback[2];
 };
 
-#define devpriv ((struct dt2811_private *)dev->private)
-
 static const struct comedi_lrange *dac_range_types[] = {
        &range_bipolar5,
        &range_bipolar2_5,
@@ -242,6 +240,7 @@ static irqreturn_t dt2811_interrupt(int irq, void *d)
        int lo, hi;
        int data;
        struct comedi_device *dev = d;
+       struct dt2811_private *devpriv = dev->private;
 
        if (!dev->attached) {
                comedi_error(dev, "spurious interrupt");
@@ -318,6 +317,7 @@ int dt2811_adtrig(kdev_t minor, comedi_adtrig *adtrig)
 static int dt2811_ao_insn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt2811_private *devpriv = dev->private;
        int i;
        int chan;
 
@@ -337,6 +337,7 @@ static int dt2811_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt2811_private *devpriv = dev->private;
        int i;
        int chan;
 
@@ -397,6 +398,7 @@ static int dt2811_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        /* long flags; */
 
        const struct dt2811_board *board = comedi_board(dev);
+       struct dt2811_private *devpriv;
        int ret;
        struct comedi_subdevice *s;
        unsigned long iobase;
@@ -463,9 +465,10 @@ static int dt2811_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (ret)
                return ret;
 
-       ret = alloc_private(dev, sizeof(struct dt2811_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        switch (it->options[2]) {
        case 0:
index 064a8f2..4b81ae3 100644 (file)
@@ -68,8 +68,6 @@ struct dt2814_private {
        int curadchan;
 };
 
-#define devpriv ((struct dt2814_private *)dev->private)
-
 #define DT2814_TIMEOUT 10
 #define DT2814_MAX_SPEED 100000        /* Arbitrary 10 khz limit */
 
@@ -200,6 +198,7 @@ static int dt2814_ai_cmdtest(struct comedi_device *dev,
 
 static int dt2814_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct dt2814_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
        int chan;
        int trigvar;
@@ -221,6 +220,7 @@ static irqreturn_t dt2814_interrupt(int irq, void *d)
 {
        int lo, hi;
        struct comedi_device *dev = d;
+       struct dt2814_private *devpriv = dev->private;
        struct comedi_subdevice *s;
        int data;
 
@@ -258,6 +258,7 @@ static irqreturn_t dt2814_interrupt(int irq, void *d)
 
 static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct dt2814_private *devpriv;
        int i, irq;
        int ret;
        struct comedi_subdevice *s;
@@ -324,9 +325,10 @@ static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (ret)
                return ret;
 
-       ret = alloc_private(dev, sizeof(struct dt2814_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        s = &dev->subdevices[0];
        dev->read_subdev = s;
index b9692ef..1f1998f 100644 (file)
@@ -78,8 +78,6 @@ struct dt2815_private {
        unsigned int ao_readback[8];
 };
 
-#define devpriv ((struct dt2815_private *)dev->private)
-
 static int dt2815_wait_for_status(struct comedi_device *dev, int status)
 {
        int i;
@@ -95,6 +93,7 @@ static int dt2815_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt2815_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -107,6 +106,7 @@ static int dt2815_ao_insn_read(struct comedi_device *dev,
 static int dt2815_ao_insn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt2815_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
        unsigned int status;
@@ -162,6 +162,7 @@ static int dt2815_ao_insn(struct comedi_device *dev, struct comedi_subdevice *s,
 
 static int dt2815_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct dt2815_private *devpriv;
        struct comedi_subdevice *s;
        int i;
        const struct comedi_lrange *current_range_type, *voltage_range_type;
@@ -182,8 +183,10 @@ static int dt2815_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (ret)
                return ret;
 
-       if (alloc_private(dev, sizeof(struct dt2815_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        s = &dev->subdevices[0];
        /* ao subdevice */
index 78d3407..f252468 100644 (file)
@@ -248,7 +248,6 @@ struct dt282x_private {
        int dma_dir;
 };
 
-#define devpriv ((struct dt282x_private *)dev->private)
 #define boardtype (*(const struct dt282x_board *)dev->board_ptr)
 
 /*
@@ -290,6 +289,7 @@ static int dt282x_grab_dma(struct comedi_device *dev, int dma1, int dma2);
 static void dt282x_munge(struct comedi_device *dev, short *buf,
                         unsigned int nbytes)
 {
+       struct dt282x_private *devpriv = dev->private;
        unsigned int i;
        unsigned short mask = (1 << boardtype.adbits) - 1;
        unsigned short sign = 1 << (boardtype.adbits - 1);
@@ -309,6 +309,7 @@ static void dt282x_munge(struct comedi_device *dev, short *buf,
 
 static void dt282x_ao_dma_interrupt(struct comedi_device *dev)
 {
+       struct dt282x_private *devpriv = dev->private;
        void *ptr;
        int size;
        int i;
@@ -341,6 +342,7 @@ static void dt282x_ao_dma_interrupt(struct comedi_device *dev)
 
 static void dt282x_ai_dma_interrupt(struct comedi_device *dev)
 {
+       struct dt282x_private *devpriv = dev->private;
        void *ptr;
        int size;
        int i;
@@ -393,6 +395,7 @@ static void dt282x_ai_dma_interrupt(struct comedi_device *dev)
 
 static int prep_ai_dma(struct comedi_device *dev, int dma_index, int n)
 {
+       struct dt282x_private *devpriv = dev->private;
        int dma_chan;
        unsigned long dma_ptr;
        unsigned long flags;
@@ -424,6 +427,7 @@ static int prep_ai_dma(struct comedi_device *dev, int dma_index, int n)
 
 static int prep_ao_dma(struct comedi_device *dev, int dma_index, int n)
 {
+       struct dt282x_private *devpriv = dev->private;
        int dma_chan;
        unsigned long dma_ptr;
        unsigned long flags;
@@ -447,6 +451,7 @@ static int prep_ao_dma(struct comedi_device *dev, int dma_index, int n)
 static irqreturn_t dt282x_interrupt(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct dt282x_private *devpriv = dev->private;
        struct comedi_subdevice *s;
        struct comedi_subdevice *s_ao;
        unsigned int supcsr, adcsr, dacsr;
@@ -525,6 +530,7 @@ static irqreturn_t dt282x_interrupt(int irq, void *d)
 static void dt282x_load_changain(struct comedi_device *dev, int n,
                                 unsigned int *chanlist)
 {
+       struct dt282x_private *devpriv = dev->private;
        unsigned int i;
        unsigned int chan, range;
 
@@ -548,6 +554,7 @@ static int dt282x_ai_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt282x_private *devpriv = dev->private;
        int i;
 
        /* XXX should we really be enabling the ad clock here? */
@@ -671,6 +678,7 @@ static int dt282x_ai_cmdtest(struct comedi_device *dev,
 static int dt282x_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        const struct dt282x_board *board = comedi_board(dev);
+       struct dt282x_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
        int timer;
 
@@ -733,6 +741,8 @@ static int dt282x_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 
 static void dt282x_disable_dma(struct comedi_device *dev)
 {
+       struct dt282x_private *devpriv = dev->private;
+
        if (devpriv->usedma) {
                disable_dma(devpriv->dma[0].chan);
                disable_dma(devpriv->dma[1].chan);
@@ -742,6 +752,8 @@ static void dt282x_disable_dma(struct comedi_device *dev)
 static int dt282x_ai_cancel(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct dt282x_private *devpriv = dev->private;
+
        dt282x_disable_dma(dev);
 
        devpriv->adcsr = 0;
@@ -794,6 +806,8 @@ static int dt282x_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt282x_private *devpriv = dev->private;
+
        data[0] = devpriv->ao[CR_CHAN(insn->chanspec)];
 
        return 1;
@@ -803,6 +817,7 @@ static int dt282x_ao_insn_write(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt282x_private *devpriv = dev->private;
        short d;
        unsigned int chan;
 
@@ -908,6 +923,7 @@ static int dt282x_ao_cmdtest(struct comedi_device *dev,
 static int dt282x_ao_inttrig(struct comedi_device *dev,
                             struct comedi_subdevice *s, unsigned int x)
 {
+       struct dt282x_private *devpriv = dev->private;
        int size;
 
        if (x != 0)
@@ -937,6 +953,7 @@ static int dt282x_ao_inttrig(struct comedi_device *dev,
 
 static int dt282x_ao_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct dt282x_private *devpriv = dev->private;
        int timer;
        struct comedi_cmd *cmd = &s->async->cmd;
 
@@ -973,6 +990,8 @@ static int dt282x_ao_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 static int dt282x_ao_cancel(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct dt282x_private *devpriv = dev->private;
+
        dt282x_disable_dma(dev);
 
        devpriv->dacsr = 0;
@@ -1003,6 +1022,7 @@ static int dt282x_dio_insn_config(struct comedi_device *dev,
                                  struct comedi_subdevice *s,
                                  struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt282x_private *devpriv = dev->private;
        int mask;
 
        mask = (CR_CHAN(insn->chanspec) < 8) ? 0x00ff : 0xff00;
@@ -1074,6 +1094,7 @@ enum {  /* i/o base, irq, dma channels */
 
 static int dt282x_grab_dma(struct comedi_device *dev, int dma1, int dma2)
 {
+       struct dt282x_private *devpriv = dev->private;
        int ret;
 
        devpriv->usedma = 0;
@@ -1135,6 +1156,7 @@ static int dt282x_grab_dma(struct comedi_device *dev, int dma1, int dma2)
 static int dt282x_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct dt282x_board *board = comedi_board(dev);
+       struct dt282x_private *devpriv;
        int i, irq;
        int ret;
        struct comedi_subdevice *s;
@@ -1217,9 +1239,10 @@ static int dt282x_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 #endif
        }
 
-       ret = alloc_private(dev, sizeof(struct dt282x_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        ret = dt282x_grab_dma(dev, it->options[opt_dma1],
                              it->options[opt_dma2]);
@@ -1292,6 +1315,8 @@ static int dt282x_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static void dt282x_detach(struct comedi_device *dev)
 {
+       struct dt282x_private *devpriv = dev->private;
+
        if (dev->irq)
                free_irq(dev->irq, dev);
        if (dev->iobase)
index 43d05ef..e71d880 100644 (file)
@@ -257,8 +257,6 @@ struct dt3k_private {
        unsigned int ai_rear;
 };
 
-#define devpriv ((struct dt3k_private *)dev->private)
-
 static void dt3k_ai_empty_fifo(struct comedi_device *dev,
                               struct comedi_subdevice *s);
 static int dt3k_ns_to_timer(unsigned int timer_base, unsigned int *arg,
@@ -273,6 +271,7 @@ static void debug_intr_flags(unsigned int flags);
 
 static int dt3k_send_cmd(struct comedi_device *dev, unsigned int cmd)
 {
+       struct dt3k_private *devpriv = dev->private;
        int i;
        unsigned int status = 0;
 
@@ -297,6 +296,8 @@ static unsigned int dt3k_readsingle(struct comedi_device *dev,
                                    unsigned int subsys, unsigned int chan,
                                    unsigned int gain)
 {
+       struct dt3k_private *devpriv = dev->private;
+
        writew(subsys, devpriv->io_addr + DPR_SubSys);
 
        writew(chan, devpriv->io_addr + DPR_Params(0));
@@ -310,6 +311,8 @@ static unsigned int dt3k_readsingle(struct comedi_device *dev,
 static void dt3k_writesingle(struct comedi_device *dev, unsigned int subsys,
                             unsigned int chan, unsigned int data)
 {
+       struct dt3k_private *devpriv = dev->private;
+
        writew(subsys, devpriv->io_addr + DPR_SubSys);
 
        writew(chan, devpriv->io_addr + DPR_Params(0));
@@ -326,6 +329,7 @@ static int debug_n_ints;
 static irqreturn_t dt3k_interrupt(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct dt3k_private *devpriv = dev->private;
        struct comedi_subdevice *s;
        unsigned int status;
 
@@ -377,6 +381,7 @@ static void debug_intr_flags(unsigned int flags)
 static void dt3k_ai_empty_fifo(struct comedi_device *dev,
                               struct comedi_subdevice *s)
 {
+       struct dt3k_private *devpriv = dev->private;
        int front;
        int rear;
        int count;
@@ -550,6 +555,7 @@ static int dt3k_ns_to_timer(unsigned int timer_base, unsigned int *nanosec,
 
 static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct dt3k_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
        int i;
        unsigned int chan, range, aref;
@@ -618,6 +624,7 @@ static int dt3k_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 
 static int dt3k_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct dt3k_private *devpriv = dev->private;
        int ret;
 
        writew(SUBS_AI, devpriv->io_addr + DPR_SubSys);
@@ -648,6 +655,7 @@ static int dt3k_ai_insn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int dt3k_ao_insn(struct comedi_device *dev, struct comedi_subdevice *s,
                        struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt3k_private *devpriv = dev->private;
        int i;
        unsigned int chan;
 
@@ -664,6 +672,7 @@ static int dt3k_ao_insn_read(struct comedi_device *dev,
                             struct comedi_subdevice *s,
                             struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt3k_private *devpriv = dev->private;
        int i;
        unsigned int chan;
 
@@ -676,6 +685,8 @@ static int dt3k_ao_insn_read(struct comedi_device *dev,
 
 static void dt3k_dio_config(struct comedi_device *dev, int bits)
 {
+       struct dt3k_private *devpriv = dev->private;
+
        /* XXX */
        writew(SUBS_DOUT, devpriv->io_addr + DPR_SubSys);
 
@@ -739,6 +750,7 @@ static int dt3k_mem_insn_read(struct comedi_device *dev,
                              struct comedi_subdevice *s,
                              struct comedi_insn *insn, unsigned int *data)
 {
+       struct dt3k_private *devpriv = dev->private;
        unsigned int addr = CR_CHAN(insn->chanspec);
        int i;
 
@@ -786,6 +798,7 @@ static struct pci_dev *dt3000_find_pci_dev(struct comedi_device *dev,
 
 static int dt3000_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct dt3k_private *devpriv;
        struct pci_dev *pcidev;
        struct comedi_subdevice *s;
        resource_size_t pci_base;
@@ -793,9 +806,10 @@ static int dt3000_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
        dev_dbg(dev->class_dev, "dt3000:\n");
 
-       ret = alloc_private(dev, sizeof(struct dt3k_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        pcidev = dt3000_find_pci_dev(dev, it);
        if (!pcidev)
@@ -885,6 +899,7 @@ static int dt3000_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static void dt3000_detach(struct comedi_device *dev)
 {
        struct pci_dev *pcidev = comedi_to_pci_dev(dev);
+       struct dt3k_private *devpriv = dev->private;
 
        if (dev->irq)
                free_irq(dev->irq, dev);
index bc6f409..71d38fc 100644 (file)
@@ -323,9 +323,6 @@ static const struct comedi_lrange dt9812_2pt5_aout_range = { 1, {
 
 static struct slot_dt9812 dt9812[DT9812_NUM_SLOTS];
 
-/* Useful shorthand access to private data */
-#define devpriv ((struct comedi_dt9812 *)dev->private)
-
 static inline struct usb_dt9812 *to_dt9812_dev(struct kref *d)
 {
        return container_of(d, struct usb_dt9812, kref);
@@ -893,6 +890,7 @@ static struct usb_driver dt9812_usb_driver = {
 
 static int dt9812_comedi_open(struct comedi_device *dev)
 {
+       struct comedi_dt9812 *devpriv = dev->private;
        int result = -ENODEV;
 
        down(&devpriv->slot->mutex);
@@ -947,6 +945,7 @@ static int dt9812_di_rinsn(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct comedi_dt9812 *devpriv = dev->private;
        int n;
        u8 bits = 0;
 
@@ -960,6 +959,7 @@ static int dt9812_do_winsn(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct comedi_dt9812 *devpriv = dev->private;
        int n;
        u8 bits = 0;
 
@@ -979,6 +979,7 @@ static int dt9812_ai_rinsn(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct comedi_dt9812 *devpriv = dev->private;
        int n;
 
        for (n = 0; n < insn->n; n++) {
@@ -995,6 +996,7 @@ static int dt9812_ao_rinsn(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct comedi_dt9812 *devpriv = dev->private;
        int n;
        u16 value;
 
@@ -1010,6 +1012,7 @@ static int dt9812_ao_winsn(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct comedi_dt9812 *devpriv = dev->private;
        int n;
 
        for (n = 0; n < insn->n; n++)
@@ -1019,14 +1022,17 @@ static int dt9812_ao_winsn(struct comedi_device *dev,
 
 static int dt9812_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct comedi_dt9812 *devpriv;
        int i;
        struct comedi_subdevice *s;
        int ret;
 
        dev->board_name = "dt9812";
 
-       if (alloc_private(dev, sizeof(struct comedi_dt9812)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        /*
         * Special open routine, since USB unit may be unattached at
index ae8e8f4..c1c24b0 100644 (file)
@@ -29,8 +29,6 @@ struct fl512_private {
        short ao_readback[2];
 };
 
-#define devpriv ((struct fl512_private *) dev->private)
-
 static const struct comedi_lrange range_fl512 = { 4, {
                                                      BIP_RANGE(0.5),
                                                      BIP_RANGE(1),
@@ -75,6 +73,7 @@ static int fl512_ao_insn(struct comedi_device *dev,
                         struct comedi_subdevice *s, struct comedi_insn *insn,
                         unsigned int *data)
 {
+       struct fl512_private *devpriv = dev->private;
        int n;
        int chan = CR_CHAN(insn->chanspec);     /* get chan to write */
        unsigned long iobase = dev->iobase;     /* get base address  */
@@ -99,6 +98,7 @@ static int fl512_ao_insn_readback(struct comedi_device *dev,
                                  struct comedi_subdevice *s,
                                  struct comedi_insn *insn, unsigned int *data)
 {
+       struct fl512_private *devpriv = dev->private;
        int n;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -110,6 +110,7 @@ static int fl512_ao_insn_readback(struct comedi_device *dev,
 
 static int fl512_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct fl512_private *devpriv;
        unsigned long iobase;
        int ret;
 
@@ -125,8 +126,11 @@ static int fl512_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        }
        dev->iobase = iobase;
        dev->board_name = "fl512";
-       if (alloc_private(dev, sizeof(struct fl512_private)) < 0)
-               return -ENOMEM;
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
 #if DEBUG
        printk(KERN_DEBUG "malloc ok\n");
index d696d4d..8eb3a87 100644 (file)
@@ -506,7 +506,7 @@ static int icp_multi_attach_pci(struct comedi_device *dev,
        dev->board_name = dev->driver->driver_name;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
 
index 65ff1c9..64a4acd 100644 (file)
@@ -156,7 +156,6 @@ struct pci20xxx_private {
        union pci20xxx_subdev_private subdev_private[PCI20000_MODULES];
 };
 
-#define devpriv ((struct pci20xxx_private *)dev->private)
 #define CHAN (CR_CHAN(it->chanlist[0]))
 
 static int pci20006_init(struct comedi_device *dev, struct comedi_subdevice *s,
@@ -196,6 +195,7 @@ static int pci20xxx_dio_init(struct comedi_device *dev,
 static int pci20xxx_attach(struct comedi_device *dev,
                           struct comedi_devconfig *it)
 {
+       struct pci20xxx_private *devpriv;
        unsigned char i;
        int ret;
        int id;
@@ -206,9 +206,10 @@ static int pci20xxx_attach(struct comedi_device *dev,
        if (ret)
                return ret;
 
-       ret = alloc_private(dev, sizeof(struct pci20xxx_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        devpriv->ioaddr = (void __iomem *)(unsigned long)it->options[0];
        dev->board_name = "pci20kc";
@@ -541,6 +542,7 @@ static int pci20xxx_dio_insn_bits(struct comedi_device *dev,
                                  struct comedi_subdevice *s,
                                  struct comedi_insn *insn, unsigned int *data)
 {
+       struct pci20xxx_private *devpriv = dev->private;
        unsigned int mask = data[0];
 
        s->state &= ~mask;
@@ -571,6 +573,7 @@ static int pci20xxx_dio_insn_bits(struct comedi_device *dev,
 static void pci20xxx_dio_config(struct comedi_device *dev,
                                struct comedi_subdevice *s)
 {
+       struct pci20xxx_private *devpriv = dev->private;
        unsigned char control_01;
        unsigned char control_23;
        unsigned char buffer;
@@ -627,6 +630,8 @@ static void pci20xxx_dio_config(struct comedi_device *dev,
 #if 0
 static void pci20xxx_do(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct pci20xxx_private *devpriv = dev->private;
+
        /* XXX if the channel is configured for input, does this
           do bad things? */
        /* XXX it would be a good idea to only update the registers
@@ -641,9 +646,10 @@ static void pci20xxx_do(struct comedi_device *dev, struct comedi_subdevice *s)
 static unsigned int pci20xxx_di(struct comedi_device *dev,
                                struct comedi_subdevice *s)
 {
-       /* XXX same note as above */
+       struct pci20xxx_private *devpriv = dev->private;
        unsigned int bits;
 
+       /* XXX same note as above */
        bits = readb(devpriv->ioaddr + PCI20000_DIO_0);
        bits |= readb(devpriv->ioaddr + PCI20000_DIO_1) << 8;
        bits |= readb(devpriv->ioaddr + PCI20000_DIO_2) << 16;
index a5ab490..69378dd 100644 (file)
@@ -762,11 +762,12 @@ static int jr3_pci_attach(struct comedi_device *dev,
                return -EINVAL;
        }
 
-       result = alloc_private(dev, sizeof(struct jr3_pci_dev_private));
-       if (result < 0)
-               return -ENOMEM;
-       card = NULL;
+       result = alloc_private(dev, sizeof(*devpriv));
+       if (result)
+               return result;
        devpriv = dev->private;
+
+       card = NULL;
        init_timer(&devpriv->timer);
        while (1) {
                card = pci_get_device(PCI_VENDOR_ID_JR3, PCI_ANY_ID, card);
index 2ce0b14..c1bc5c6 100644 (file)
@@ -234,8 +234,6 @@ struct me_private_data {
        int ao_readback[4];     /* Mirror of analog output data */
 };
 
-#define dev_private ((struct me_private_data *)dev->private)
-
 /*
  * ------------------------------------------------------------------
  *
@@ -260,6 +258,7 @@ static int me_dio_insn_config(struct comedi_device *dev,
                              struct comedi_subdevice *s,
                              struct comedi_insn *insn, unsigned int *data)
 {
+       struct me_private_data *dev_private = dev->private;
        int bits;
        int mask = 1 << CR_CHAN(insn->chanspec);
 
@@ -297,7 +296,9 @@ static int me_dio_insn_bits(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       struct me_private_data *dev_private = dev->private;
        unsigned int mask = data[0];
+
        s->state &= ~mask;
        s->state |= (mask & data[1]);
 
@@ -334,6 +335,7 @@ static int me_ai_insn_read(struct comedi_device *dev,
                           struct comedi_subdevice *s,
                           struct comedi_insn *insn, unsigned int *data)
 {
+       struct me_private_data *dev_private = dev->private;
        unsigned short value;
        int chan = CR_CHAN((&insn->chanspec)[0]);
        int rang = CR_RANGE((&insn->chanspec)[0]);
@@ -407,6 +409,8 @@ static int me_ai_insn_read(struct comedi_device *dev,
 /* Cancel analog input autoscan */
 static int me_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct me_private_data *dev_private = dev->private;
+
        /* disable interrupts */
 
        /* stop any running conversion */
@@ -443,6 +447,7 @@ static int me_ao_insn_write(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       struct me_private_data *dev_private = dev->private;
        int chan;
        int rang;
        int i;
@@ -494,6 +499,7 @@ static int me_ao_insn_read(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct me_private_data *dev_private = dev->private;
        int i;
 
        for (i = 0; i < insn->n; i++) {
@@ -516,6 +522,7 @@ static int me_ao_insn_read(struct comedi_device *dev,
 static int me2600_xilinx_download(struct comedi_device *dev,
                                  const u8 *data, size_t size)
 {
+       struct me_private_data *dev_private = dev->private;
        unsigned int value;
        unsigned int file_length;
        unsigned int i;
@@ -599,6 +606,8 @@ static int me2600_upload_firmware(struct comedi_device *dev)
 /* Reset device */
 static int me_reset(struct comedi_device *dev)
 {
+       struct me_private_data *dev_private = dev->private;
+
        /* Reset board */
        writew(0x00, dev_private->me_regbase + ME_CONTROL_1);
        writew(0x00, dev_private->me_regbase + ME_CONTROL_2);
@@ -630,6 +639,7 @@ static const void *me_find_boardinfo(struct comedi_device *dev,
 static int me_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev)
 {
        const struct me_board *board;
+       struct me_private_data *dev_private;
        struct comedi_subdevice *s;
        resource_size_t plx_regbase_tmp;
        unsigned long plx_regbase_size_tmp;
@@ -648,9 +658,10 @@ static int me_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev)
        dev->board_ptr = board;
        dev->board_name = board->name;
 
-       /* Allocate private memory */
-       if (alloc_private(dev, sizeof(struct me_private_data)) < 0)
-               return -ENOMEM;
+       error = alloc_private(dev, sizeof(*dev_private));
+       if (error)
+               return error;
+       dev_private = dev->private;
 
        /* Enable PCI device and request PCI regions */
        if (comedi_pci_enable(pcidev, dev->board_name) < 0) {
@@ -775,6 +786,7 @@ static int me_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev)
 static void me_detach(struct comedi_device *dev)
 {
        struct pci_dev *pcidev = comedi_to_pci_dev(dev);
+       struct me_private_data *dev_private = dev->private;
 
        if (dev_private) {
                if (dev_private->me_regbase) {
index f8b7fae..3e8892c 100644 (file)
@@ -122,13 +122,12 @@ Configuration Options:
 #define MPC624_SPEED_6_875_Hz \
        (MPC624_OSR4 | MPC624_OSR3 | MPC624_OSR2 | MPC624_OSR1 | MPC624_OSR0)
 /* -------------------------------------------------------------------------- */
-struct skel_private {
+struct mpc624_private {
 
        /*  set by mpc624_attach() from driver's parameters */
        unsigned long int ulConvertionRate;
 };
 
-#define devpriv ((struct skel_private *)dev->private)
 /* -------------------------------------------------------------------------- */
 static const struct comedi_lrange range_mpc624_bipolar1 = {
        1,
@@ -155,6 +154,7 @@ static int mpc624_ai_rinsn(struct comedi_device *dev,
                           struct comedi_subdevice *s, struct comedi_insn *insn,
                           unsigned int *data)
 {
+       struct mpc624_private *devpriv = dev->private;
        int n, i;
        unsigned long int data_in, data_out;
        unsigned char ucPort;
@@ -283,6 +283,7 @@ static int mpc624_ai_rinsn(struct comedi_device *dev,
 
 static int mpc624_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct mpc624_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase;
        int ret;
@@ -297,9 +298,10 @@ static int mpc624_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        dev->iobase = iobase;
        dev->board_name = "mpc624";
 
-       /*  Private structure initialization */
-       if (alloc_private(dev, sizeof(struct skel_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        switch (it->options[1]) {
        case 0:
index 4625cb4..f707ee0 100644 (file)
@@ -86,7 +86,6 @@ Devices: [Quanser Consulting] MultiQ-3 (multiq3)
 struct multiq3_private {
        unsigned int ao_readback[2];
 };
-#define devpriv ((struct multiq3_private *)dev->private)
 
 static int multiq3_ai_insn_read(struct comedi_device *dev,
                                struct comedi_subdevice *s,
@@ -129,6 +128,7 @@ static int multiq3_ao_insn_read(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct multiq3_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -142,6 +142,7 @@ static int multiq3_ao_insn_write(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_insn *insn, unsigned int *data)
 {
+       struct multiq3_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -230,6 +231,7 @@ static void encoder_reset(struct comedi_device *dev)
 static int multiq3_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
+       struct multiq3_private *devpriv;
        int result = 0;
        unsigned long iobase;
        unsigned int irq;
@@ -256,9 +258,10 @@ static int multiq3_attach(struct comedi_device *dev,
        if (result)
                return result;
 
-       result = alloc_private(dev, sizeof(struct multiq3_private));
-       if (result < 0)
+       result = alloc_private(dev, sizeof(*devpriv));
+       if (result)
                return result;
+       devpriv = dev->private;
 
        s = &dev->subdevices[0];
        /* ai subdevice */
index 51295f3..4f5624a 100644 (file)
@@ -112,12 +112,11 @@ struct ni6527_private {
        unsigned int filter_enable;
 };
 
-#define devpriv ((struct ni6527_private *)dev->private)
-
 static int ni6527_di_insn_config(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_insn *insn, unsigned int *data)
 {
+       struct ni6527_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
        unsigned int interval;
 
@@ -164,6 +163,8 @@ static int ni6527_di_insn_bits(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct ni6527_private *devpriv = dev->private;
+
        data[1] = readb(devpriv->mite->daq_io_addr + Port_Register(0));
        data[1] |= readb(devpriv->mite->daq_io_addr + Port_Register(1)) << 8;
        data[1] |= readb(devpriv->mite->daq_io_addr + Port_Register(2)) << 16;
@@ -175,6 +176,8 @@ static int ni6527_do_insn_bits(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct ni6527_private *devpriv = dev->private;
+
        if (data[0]) {
                s->state &= ~data[0];
                s->state |= (data[0] & data[1]);
@@ -202,6 +205,7 @@ static int ni6527_do_insn_bits(struct comedi_device *dev,
 static irqreturn_t ni6527_interrupt(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct ni6527_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[2];
        unsigned int status;
 
@@ -281,6 +285,7 @@ static int ni6527_intr_cmdtest(struct comedi_device *dev,
 static int ni6527_intr_cmd(struct comedi_device *dev,
                           struct comedi_subdevice *s)
 {
+       struct ni6527_private *devpriv = dev->private;
        /* struct comedi_cmd *cmd = &s->async->cmd; */
 
        writeb(ClrEdge | ClrOverflow,
@@ -295,6 +300,8 @@ static int ni6527_intr_cmd(struct comedi_device *dev,
 static int ni6527_intr_cancel(struct comedi_device *dev,
                              struct comedi_subdevice *s)
 {
+       struct ni6527_private *devpriv = dev->private;
+
        writeb(0x00, devpriv->mite->daq_io_addr + Master_Interrupt_Control);
 
        return 0;
@@ -312,6 +319,8 @@ static int ni6527_intr_insn_config(struct comedi_device *dev,
                                   struct comedi_subdevice *s,
                                   struct comedi_insn *insn, unsigned int *data)
 {
+       struct ni6527_private *devpriv = dev->private;
+
        if (insn->n < 1)
                return -EINVAL;
        if (data[0] != INSN_CONFIG_CHANGE_NOTIFY)
@@ -351,12 +360,14 @@ ni6527_find_boardinfo(struct pci_dev *pcidev)
 static int __devinit ni6527_attach_pci(struct comedi_device *dev,
                                       struct pci_dev *pcidev)
 {
+       struct ni6527_private *devpriv;
        struct comedi_subdevice *s;
        int ret;
 
-       ret = alloc_private(dev, sizeof(struct ni6527_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        dev->board_ptr = ni6527_find_boardinfo(pcidev);
        if (!dev->board_ptr)
@@ -430,6 +441,8 @@ static int __devinit ni6527_attach_pci(struct comedi_device *dev,
 
 static void ni6527_detach(struct comedi_device *dev)
 {
+       struct ni6527_private *devpriv = dev->private;
+
        if (devpriv && devpriv->mite && devpriv->mite->daq_io_addr)
                writeb(0x00,
                       devpriv->mite->daq_io_addr + Master_Interrupt_Control);
index eac6dc0..e7ccf04 100644 (file)
@@ -211,9 +211,10 @@ static int __devinit ni_670x_attach_pci(struct comedi_device *dev,
        int i;
 
        ret = alloc_private(dev, sizeof(*devpriv));
-       if (ret < 0)
+       if (ret)
                return ret;
        devpriv = dev->private;
+
        dev->board_ptr = ni_670x_find_boardinfo(pcidev);
        if (!dev->board_ptr)
                return -ENODEV;
index 8395080..34c186b 100644 (file)
@@ -169,8 +169,6 @@ struct a2150_private {
        int config_bits;        /*  config register bits */
 };
 
-#define devpriv ((struct a2150_private *)dev->private)
-
 static int a2150_cancel(struct comedi_device *dev, struct comedi_subdevice *s);
 
 static int a2150_get_timing(struct comedi_device *dev, unsigned int *period,
@@ -182,6 +180,8 @@ static int a2150_set_chanlist(struct comedi_device *dev,
 
 static void ni_dump_regs(struct comedi_device *dev)
 {
+       struct a2150_private *devpriv = dev->private;
+
        printk("config bits 0x%x\n", devpriv->config_bits);
        printk("irq dma bits 0x%x\n", devpriv->irq_dma_bits);
        printk("status bits 0x%x\n", inw(dev->iobase + STATUS_REG));
@@ -196,6 +196,7 @@ static irqreturn_t a2150_interrupt(int irq, void *d)
        int status;
        unsigned long flags;
        struct comedi_device *dev = d;
+       struct a2150_private *devpriv = dev->private;
        struct comedi_subdevice *s = dev->read_subdev;
        struct comedi_async *async;
        struct comedi_cmd *cmd;
@@ -300,6 +301,8 @@ static irqreturn_t a2150_interrupt(int irq, void *d)
 
 static int a2150_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct a2150_private *devpriv = dev->private;
+
        /*  disable dma on card */
        devpriv->irq_dma_bits &= ~DMA_INTR_EN_BIT & ~DMA_EN_BIT;
        outw(devpriv->irq_dma_bits, dev->iobase + IRQ_DMA_CNTRL_REG);
@@ -425,6 +428,7 @@ static int a2150_ai_cmdtest(struct comedi_device *dev,
 
 static int a2150_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct a2150_private *devpriv = dev->private;
        struct comedi_async *async = s->async;
        struct comedi_cmd *cmd = &async->cmd;
        unsigned long lock_flags;
@@ -536,6 +540,7 @@ static int a2150_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 static int a2150_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct a2150_private *devpriv = dev->private;
        unsigned int i, n;
        static const int timeout = 100000;
        static const int filter_delay = 36;
@@ -615,6 +620,7 @@ static int a2150_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int a2150_get_timing(struct comedi_device *dev, unsigned int *period,
                            int flags)
 {
+       struct a2150_private *devpriv = dev->private;
        int lub, glb, temp;
        int lub_divisor_shift, lub_index, glb_divisor_shift, glb_index;
        int i, j;
@@ -689,6 +695,8 @@ static int a2150_set_chanlist(struct comedi_device *dev,
                              unsigned int start_channel,
                              unsigned int num_channels)
 {
+       struct a2150_private *devpriv = dev->private;
+
        if (start_channel + num_channels > 4)
                return -1;
 
@@ -727,6 +735,7 @@ static int a2150_probe(struct comedi_device *dev)
 
 static int a2150_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct a2150_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase = it->options[0];
        unsigned int irq = it->options[1];
@@ -749,9 +758,10 @@ static int a2150_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        }
        printk("\n");
 
-       /* allocate and initialize dev->private */
-       if (alloc_private(dev, sizeof(struct a2150_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        if (iobase == 0) {
                printk(" io base address required\n");
@@ -855,6 +865,8 @@ static int a2150_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static void a2150_detach(struct comedi_device *dev)
 {
+       struct a2150_private *devpriv = dev->private;
+
        if (dev->iobase) {
                outw(APD_BIT | DPD_BIT, dev->iobase + CONFIG_REG);
                release_region(dev->iobase, A2150_SIZE);
index 93938ce..6607160 100644 (file)
@@ -167,10 +167,10 @@ struct atao_private {
        unsigned int ao_readback[10];
 };
 
-#define devpriv ((struct atao_private *)dev->private)
-
 static void atao_reset(struct comedi_device *dev)
 {
+       struct atao_private *devpriv = dev->private;
+
        /* This is the reset sequence described in the manual */
 
        devpriv->cfg1 = 0;
@@ -202,6 +202,7 @@ 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)
 {
+       struct atao_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
        short bits;
@@ -226,6 +227,7 @@ static int atao_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int atao_ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
                         struct comedi_insn *insn, unsigned int *data)
 {
+       struct atao_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -254,6 +256,7 @@ static int atao_dio_insn_config(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct atao_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
        unsigned int mask, bit;
 
@@ -309,6 +312,7 @@ static int atao_calib_insn_write(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_insn *insn, unsigned int *data)
 {
+       struct atao_private *devpriv = dev->private;
        unsigned int bitstring, bit;
        unsigned int chan = CR_CHAN(insn->chanspec);
 
@@ -331,6 +335,7 @@ static int atao_calib_insn_write(struct comedi_device *dev,
 static int atao_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct atao_board *board = comedi_board(dev);
+       struct atao_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase;
        int ao_unipolar;
@@ -351,8 +356,10 @@ static int atao_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
        dev->board_name = board->name;
 
-       if (alloc_private(dev, sizeof(struct atao_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        ret = comedi_alloc_subdevices(dev, 4);
        if (ret)
index e91a620..9396986 100644 (file)
@@ -102,7 +102,6 @@ Devices: [National Instruments] AT-MIO-16 (atmio16), AT-MIO-16D (atmio16d)
 #define CLOCK_100_HZ   0x8F25
 /* Other miscellaneous defines */
 #define ATMIO16D_SIZE  32      /* bus address range */
-#define devpriv ((struct atmio16d_private *)dev->private)
 #define ATMIO16D_TIMEOUT 10
 
 struct atmio16_board_t {
@@ -202,6 +201,7 @@ static void reset_counters(struct comedi_device *dev)
 
 static void reset_atmio16d(struct comedi_device *dev)
 {
+       struct atmio16d_private *devpriv = dev->private;
        int i;
 
        /* now we need to initialize the board */
@@ -327,6 +327,7 @@ static int atmio16d_ai_cmdtest(struct comedi_device *dev,
 static int atmio16d_ai_cmd(struct comedi_device *dev,
                           struct comedi_subdevice *s)
 {
+       struct atmio16d_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
        unsigned int timer, base_clock;
        unsigned int sample_count, tmp, chan, gain;
@@ -486,6 +487,7 @@ static int atmio16d_ai_insn_read(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_insn *insn, unsigned int *data)
 {
+       struct atmio16d_private *devpriv = dev->private;
        int i, t;
        int chan;
        int gain;
@@ -539,6 +541,7 @@ static int atmio16d_ao_insn_read(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_insn *insn, unsigned int *data)
 {
+       struct atmio16d_private *devpriv = dev->private;
        int i;
 
        for (i = 0; i < insn->n; i++)
@@ -550,6 +553,7 @@ static int atmio16d_ao_insn_write(struct comedi_device *dev,
                                  struct comedi_subdevice *s,
                                  struct comedi_insn *insn, unsigned int *data)
 {
+       struct atmio16d_private *devpriv = dev->private;
        int i;
        int chan;
        int d;
@@ -596,6 +600,7 @@ static int atmio16d_dio_insn_config(struct comedi_device *dev,
                                    struct comedi_insn *insn,
                                    unsigned int *data)
 {
+       struct atmio16d_private *devpriv = dev->private;
        int i;
        int mask;
 
@@ -651,6 +656,7 @@ static int atmio16d_attach(struct comedi_device *dev,
                           struct comedi_devconfig *it)
 {
        const struct atmio16_board_t *board = comedi_board(dev);
+       struct atmio16d_private *devpriv;
        unsigned int irq;
        unsigned long iobase;
        int ret;
@@ -672,9 +678,10 @@ static int atmio16d_attach(struct comedi_device *dev,
        if (ret)
                return ret;
 
-       ret = alloc_private(dev, sizeof(struct atmio16d_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        /* reset the atmio16d hardware */
        reset_atmio16d(dev);
index 0ca222b..1984c5f 100644 (file)
@@ -96,8 +96,6 @@ struct dio24_private {
        int data;               /* number of data points left to be taken */
 };
 
-#define devpriv ((struct dio24_private *)dev->private)
-
 static struct comedi_driver driver_dio24 = {
        .driver_name = "ni_daq_dio24",
        .module = THIS_MODULE,
@@ -110,6 +108,7 @@ static struct comedi_driver driver_dio24 = {
 
 static int dio24_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct dio24_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase = 0;
 #ifdef incomplete
@@ -118,9 +117,10 @@ static int dio24_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        struct pcmcia_device *link;
        int ret;
 
-       /* allocate and initialize dev->private */
-       if (alloc_private(dev, sizeof(struct dio24_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        /*  get base address, irq etc. based on bustype */
        switch (thisboard->bustype) {
index 28b91a6..d3b386e 100644 (file)
@@ -487,8 +487,6 @@ static const int dma_buffer_size = 0xff00;
 /* 2 bytes per sample */
 static const int sample_size = 2;
 
-#define devpriv ((struct labpc_private *)dev->private)
-
 static inline int labpc_counter_load(struct comedi_device *dev,
                                     unsigned long base_address,
                                     unsigned int counter_number,
@@ -504,6 +502,7 @@ static inline int labpc_counter_load(struct comedi_device *dev,
 int labpc_common_attach(struct comedi_device *dev, unsigned long iobase,
                        unsigned int irq, unsigned int dma_chan)
 {
+       struct labpc_private *devpriv = dev->private;
        struct comedi_subdevice *s;
        int i;
        unsigned long isr_flags;
@@ -700,15 +699,19 @@ labpc_pci_find_boardinfo(struct pci_dev *pcidev)
 static int __devinit labpc_attach_pci(struct comedi_device *dev,
                                      struct pci_dev *pcidev)
 {
+       struct labpc_private *devpriv;
        unsigned long iobase;
        unsigned int irq;
        int ret;
 
        if (!IS_ENABLED(CONFIG_COMEDI_PCI_DRIVERS))
                return -ENODEV;
-       ret = alloc_private(dev, sizeof(struct labpc_private));
-       if (ret < 0)
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
+
        dev->board_ptr = labpc_pci_find_boardinfo(pcidev);
        if (!dev->board_ptr)
                return -ENODEV;
@@ -725,13 +728,16 @@ static int __devinit labpc_attach_pci(struct comedi_device *dev,
 
 static int labpc_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct labpc_private *devpriv;
        unsigned long iobase = 0;
        unsigned int irq = 0;
        unsigned int dma_chan = 0;
+       int ret;
 
-       /* allocate and initialize dev->private */
-       if (alloc_private(dev, sizeof(struct labpc_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        /* get base address, irq etc. based on bustype */
        switch (thisboard->bustype) {
@@ -770,6 +776,7 @@ static int labpc_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 void labpc_common_detach(struct comedi_device *dev)
 {
+       struct labpc_private *devpriv = dev->private;
        struct comedi_subdevice *s;
 
        if (dev->subdevices) {
@@ -797,6 +804,8 @@ EXPORT_SYMBOL_GPL(labpc_common_detach);
 
 static void labpc_clear_adc_fifo(const struct comedi_device *dev)
 {
+       struct labpc_private *devpriv = dev->private;
+
        devpriv->write_byte(0x1, dev->iobase + ADC_CLEAR_REG);
        devpriv->read_byte(dev->iobase + ADC_FIFO_REG);
        devpriv->read_byte(dev->iobase + ADC_FIFO_REG);
@@ -804,6 +813,7 @@ static void labpc_clear_adc_fifo(const struct comedi_device *dev)
 
 static int labpc_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct labpc_private *devpriv = dev->private;
        unsigned long flags;
 
        spin_lock_irqsave(&dev->spinlock, flags);
@@ -1096,6 +1106,7 @@ static int labpc_ai_cmdtest(struct comedi_device *dev,
 
 static int labpc_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct labpc_private *devpriv = dev->private;
        int channel, range, aref;
 #ifdef CONFIG_ISA_DMA_API
        unsigned long irq_flags;
@@ -1363,6 +1374,7 @@ static int labpc_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 static irqreturn_t labpc_interrupt(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct labpc_private *devpriv = dev->private;
        struct comedi_subdevice *s = dev->read_subdev;
        struct comedi_async *async;
        struct comedi_cmd *cmd;
@@ -1451,6 +1463,7 @@ static irqreturn_t labpc_interrupt(int irq, void *d)
 /* read all available samples from ai fifo */
 static int labpc_drain_fifo(struct comedi_device *dev)
 {
+       struct labpc_private *devpriv = dev->private;
        unsigned int lsb, msb;
        short data;
        struct comedi_async *async = dev->read_subdev->async;
@@ -1486,6 +1499,7 @@ static int labpc_drain_fifo(struct comedi_device *dev)
 #ifdef CONFIG_ISA_DMA_API
 static void labpc_drain_dma(struct comedi_device *dev)
 {
+       struct labpc_private *devpriv = dev->private;
        struct comedi_subdevice *s = dev->read_subdev;
        struct comedi_async *async = s->async;
        int status;
@@ -1539,6 +1553,8 @@ static void labpc_drain_dma(struct comedi_device *dev)
 
 static void handle_isa_dma(struct comedi_device *dev)
 {
+       struct labpc_private *devpriv = dev->private;
+
        labpc_drain_dma(dev);
 
        enable_dma(devpriv->dma_chan);
@@ -1553,6 +1569,8 @@ static void handle_isa_dma(struct comedi_device *dev)
 static void labpc_drain_dregs(struct comedi_device *dev)
 {
 #ifdef CONFIG_ISA_DMA_API
+       struct labpc_private *devpriv = dev->private;
+
        if (devpriv->current_transfer == isa_dma_transfer)
                labpc_drain_dma(dev);
 #endif
@@ -1563,6 +1581,7 @@ static void labpc_drain_dregs(struct comedi_device *dev)
 static int labpc_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct labpc_private *devpriv = dev->private;
        int i, n;
        int chan, range;
        int lsb, msb;
@@ -1652,6 +1671,7 @@ static int labpc_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int labpc_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct labpc_private *devpriv = dev->private;
        int channel, range;
        unsigned long flags;
        int lsb, msb;
@@ -1693,6 +1713,8 @@ static int labpc_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int labpc_ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct labpc_private *devpriv = dev->private;
+
        data[0] = devpriv->ao_value[CR_CHAN(insn->chanspec)];
 
        return 1;
@@ -1702,6 +1724,8 @@ static int labpc_calib_read_insn(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_insn *insn, unsigned int *data)
 {
+       struct labpc_private *devpriv = dev->private;
+
        data[0] = devpriv->caldac[CR_CHAN(insn->chanspec)];
 
        return 1;
@@ -1721,6 +1745,8 @@ static int labpc_eeprom_read_insn(struct comedi_device *dev,
                                  struct comedi_subdevice *s,
                                  struct comedi_insn *insn, unsigned int *data)
 {
+       struct labpc_private *devpriv = dev->private;
+
        data[0] = devpriv->eeprom_data[CR_CHAN(insn->chanspec)];
 
        return 1;
@@ -1777,6 +1803,7 @@ static unsigned int labpc_suggest_transfer_size(const struct comedi_cmd *cmd)
 static void labpc_adc_timing(struct comedi_device *dev, struct comedi_cmd *cmd,
                             enum scan_mode mode)
 {
+       struct labpc_private *devpriv = dev->private;
        /* max value for 16 bit counter in mode 2 */
        const int max_counter_value = 0x10000;
        /* min value for 16 bit counter in mode 2 */
@@ -1883,6 +1910,7 @@ static int labpc_dio_mem_callback(int dir, int port, int data,
 static void labpc_serial_out(struct comedi_device *dev, unsigned int value,
                             unsigned int value_width)
 {
+       struct labpc_private *devpriv = dev->private;
        int i;
 
        for (i = 1; i <= value_width; i++) {
@@ -1907,6 +1935,7 @@ static void labpc_serial_out(struct comedi_device *dev, unsigned int value,
 /* lowlevel read from eeprom */
 static unsigned int labpc_serial_in(struct comedi_device *dev)
 {
+       struct labpc_private *devpriv = dev->private;
        unsigned int value = 0;
        int i;
        const int value_width = 8;      /*  number of bits wide values are */
@@ -1936,6 +1965,7 @@ static unsigned int labpc_serial_in(struct comedi_device *dev)
 static unsigned int labpc_eeprom_read(struct comedi_device *dev,
                                      unsigned int address)
 {
+       struct labpc_private *devpriv = dev->private;
        unsigned int value;
        /*  bits to tell eeprom to expect a read */
        const int read_instruction = 0x3;
@@ -1968,6 +1998,7 @@ static unsigned int labpc_eeprom_read(struct comedi_device *dev,
 static int labpc_eeprom_write(struct comedi_device *dev,
                                unsigned int address, unsigned int value)
 {
+       struct labpc_private *devpriv = dev->private;
        const int write_enable_instruction = 0x6;
        const int write_instruction = 0x2;
        const int write_length = 8;     /*  8 bit write lengths to eeprom */
@@ -2025,6 +2056,7 @@ static int labpc_eeprom_write(struct comedi_device *dev,
 
 static unsigned int labpc_eeprom_read_status(struct comedi_device *dev)
 {
+       struct labpc_private *devpriv = dev->private;
        unsigned int value;
        const int read_status_instruction = 0x5;
        const int write_length = 8;     /*  8 bit write lengths to eeprom */
@@ -2054,6 +2086,8 @@ static unsigned int labpc_eeprom_read_status(struct comedi_device *dev)
 static void write_caldac(struct comedi_device *dev, unsigned int channel,
                         unsigned int value)
 {
+       struct labpc_private *devpriv = dev->private;
+
        if (value == devpriv->caldac[channel])
                return;
        devpriv->caldac[channel] = value;
index eb0417e..791a66f 100644 (file)
@@ -127,13 +127,16 @@ static struct comedi_driver driver_labpc_cs = {
 
 static int labpc_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct labpc_private *devpriv;
        unsigned long iobase = 0;
        unsigned int irq = 0;
        struct pcmcia_device *link;
+       int ret;
 
-       /* allocate and initialize dev->private */
-       if (alloc_private(dev, sizeof(struct labpc_private)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        /*  get base address, irq etc. based on bustype */
        switch (thisboard->bustype) {
index bc9313e..233a2d3 100644 (file)
@@ -310,7 +310,6 @@ struct nidio96_private {
        struct mite_dma_descriptor_ring *di_mite_ring;
        spinlock_t mite_channel_lock;
 };
-#define devpriv ((struct nidio96_private *)dev->private)
 
 static int ni_pcidio_cmdtest(struct comedi_device *dev,
                             struct comedi_subdevice *s,
@@ -332,6 +331,7 @@ static void ni_pcidio_print_status(unsigned int status);
 
 static int ni_pcidio_request_di_mite_channel(struct comedi_device *dev)
 {
+       struct nidio96_private *devpriv = dev->private;
        unsigned long flags;
 
        spin_lock_irqsave(&devpriv->mite_channel_lock, flags);
@@ -355,6 +355,7 @@ static int ni_pcidio_request_di_mite_channel(struct comedi_device *dev)
 
 static void ni_pcidio_release_di_mite_channel(struct comedi_device *dev)
 {
+       struct nidio96_private *devpriv = dev->private;
        unsigned long flags;
 
        spin_lock_irqsave(&devpriv->mite_channel_lock, flags);
@@ -384,6 +385,7 @@ static void ni_pcidio_event(struct comedi_device *dev,
 
 static int ni_pcidio_poll(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct nidio96_private *devpriv = dev->private;
        unsigned long irq_flags;
        int count;
 
@@ -400,6 +402,7 @@ static int ni_pcidio_poll(struct comedi_device *dev, struct comedi_subdevice *s)
 static irqreturn_t nidio_interrupt(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct nidio96_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        struct comedi_async *async = s->async;
        struct mite_struct *mite = devpriv->mite;
@@ -609,6 +612,7 @@ static void ni_pcidio_print_status(unsigned int flags)
 #ifdef unused
 static void debug_int(struct comedi_device *dev)
 {
+       struct nidio96_private *devpriv = dev->private;
        int a, b;
        static int n_int;
        struct timeval tv;
@@ -640,6 +644,8 @@ static int ni_pcidio_insn_config(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_insn *insn, unsigned int *data)
 {
+       struct nidio96_private *devpriv = dev->private;
+
        if (insn->n != 1)
                return -EINVAL;
        switch (data[0]) {
@@ -668,6 +674,8 @@ static int ni_pcidio_insn_bits(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct nidio96_private *devpriv = dev->private;
+
        if (data[0]) {
                s->state &= ~data[0];
                s->state |= (data[0] & data[1]);
@@ -793,6 +801,7 @@ static int ni_pcidio_ns_to_timer(int *nanosec, int round_mode)
 
 static int ni_pcidio_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct nidio96_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
 
        /* XXX configure ports for input */
@@ -910,6 +919,7 @@ static int ni_pcidio_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 
 static int setup_mite_dma(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct nidio96_private *devpriv = dev->private;
        int retval;
        unsigned long flags;
 
@@ -934,6 +944,8 @@ static int setup_mite_dma(struct comedi_device *dev, struct comedi_subdevice *s)
 static int ni_pcidio_inttrig(struct comedi_device *dev,
                             struct comedi_subdevice *s, unsigned int trignum)
 {
+       struct nidio96_private *devpriv = dev->private;
+
        if (trignum != 0)
                return -EINVAL;
 
@@ -946,6 +958,8 @@ static int ni_pcidio_inttrig(struct comedi_device *dev,
 static int ni_pcidio_cancel(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct nidio96_private *devpriv = dev->private;
+
        writeb(0x00,
               devpriv->mite->daq_io_addr + Master_DMA_And_Interrupt_Control);
        ni_pcidio_release_di_mite_channel(dev);
@@ -956,6 +970,7 @@ static int ni_pcidio_cancel(struct comedi_device *dev,
 static int ni_pcidio_change(struct comedi_device *dev,
                            struct comedi_subdevice *s, unsigned long new_size)
 {
+       struct nidio96_private *devpriv = dev->private;
        int ret;
 
        ret = mite_buf_change(devpriv->di_mite_ring, s->async);
@@ -970,6 +985,7 @@ static int ni_pcidio_change(struct comedi_device *dev,
 static int pci_6534_load_fpga(struct comedi_device *dev, int fpga_index,
                              const u8 *data, size_t data_len)
 {
+       struct nidio96_private *devpriv = dev->private;
        static const int timeout = 1000;
        int i;
        size_t j;
@@ -1033,8 +1049,10 @@ static int pci_6534_reset_fpga(struct comedi_device *dev, int fpga_index)
 
 static int pci_6534_reset_fpgas(struct comedi_device *dev)
 {
+       struct nidio96_private *devpriv = dev->private;
        int ret;
        int i;
+
        writew(0x0, devpriv->mite->daq_io_addr + Firmware_Control_Register);
        for (i = 0; i < 3; ++i) {
                ret = pci_6534_reset_fpga(dev, i);
@@ -1047,6 +1065,8 @@ static int pci_6534_reset_fpgas(struct comedi_device *dev)
 
 static void pci_6534_init_main_fpga(struct comedi_device *dev)
 {
+       struct nidio96_private *devpriv = dev->private;
+
        writel(0, devpriv->mite->daq_io_addr + FPGA_Control1_Register);
        writel(0, devpriv->mite->daq_io_addr + FPGA_Control2_Register);
        writel(0, devpriv->mite->daq_io_addr + FPGA_SCALS_Counter_Register);
@@ -1057,6 +1077,7 @@ static void pci_6534_init_main_fpga(struct comedi_device *dev)
 
 static int pci_6534_upload_firmware(struct comedi_device *dev)
 {
+       struct nidio96_private *devpriv = dev->private;
        int ret;
        const struct firmware *fw;
        static const char *const fw_file[3] = {
@@ -1102,13 +1123,16 @@ nidio_find_boardinfo(struct pci_dev *pcidev)
 static int __devinit nidio_attach_pci(struct comedi_device *dev,
                                      struct pci_dev *pcidev)
 {
+       struct nidio96_private *devpriv;
        struct comedi_subdevice *s;
        int ret;
        unsigned int irq;
 
-       ret = alloc_private(dev, sizeof(struct nidio96_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
+
        spin_lock_init(&devpriv->mite_channel_lock);
 
        dev->board_ptr = nidio_find_boardinfo(pcidev);
@@ -1184,6 +1208,8 @@ static int __devinit nidio_attach_pci(struct comedi_device *dev,
 
 static void nidio_detach(struct comedi_device *dev)
 {
+       struct nidio96_private *devpriv = dev->private;
+
        if (dev->irq)
                free_irq(dev->irq, dev);
        if (devpriv) {
index 89305a1..33bda31 100644 (file)
@@ -161,14 +161,13 @@ struct pcl711_private {
        unsigned int divisor2;
 };
 
-#define devpriv ((struct pcl711_private *)dev->private)
-
 static irqreturn_t pcl711_interrupt(int irq, void *d)
 {
        int lo, hi;
        int data;
        struct comedi_device *dev = d;
        const struct pcl711_board *board = comedi_board(dev);
+       struct pcl711_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
 
        if (!dev->attached) {
@@ -264,6 +263,7 @@ ok:
 static int pcl711_ai_cmdtest(struct comedi_device *dev,
                             struct comedi_subdevice *s, struct comedi_cmd *cmd)
 {
+       struct pcl711_private *devpriv = dev->private;
        int tmp;
        int err = 0;
 
@@ -349,6 +349,7 @@ static int pcl711_ai_cmdtest(struct comedi_device *dev,
 
 static int pcl711_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct pcl711_private *devpriv = dev->private;
        int timer1, timer2;
        struct comedi_cmd *cmd = &s->async->cmd;
 
@@ -398,6 +399,7 @@ static int pcl711_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 static int pcl711_ao_insn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl711_private *devpriv = dev->private;
        int n;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -417,6 +419,7 @@ static int pcl711_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl711_private *devpriv = dev->private;
        int n;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -460,6 +463,7 @@ static int pcl711_do_insn_bits(struct comedi_device *dev,
 static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcl711_board *board = comedi_board(dev);
+       struct pcl711_private *devpriv;
        int ret;
        unsigned long iobase;
        unsigned int irq;
@@ -499,9 +503,10 @@ static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (ret)
                return ret;
 
-       ret = alloc_private(dev, sizeof(struct pcl711_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        s = &dev->subdevices[0];
        /* AI subdevice */
index 07e72de..22f907a 100644 (file)
@@ -152,11 +152,10 @@ struct pcl726_private {
        unsigned int ao_readback[12];
 };
 
-#define devpriv ((struct pcl726_private *)dev->private)
-
 static int pcl726_ao_insn(struct comedi_device *dev, struct comedi_subdevice *s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl726_private *devpriv = dev->private;
        int hi, lo;
        int n;
        int chan = CR_CHAN(insn->chanspec);
@@ -183,6 +182,7 @@ static int pcl726_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl726_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
        int n;
 
@@ -226,6 +226,7 @@ static int pcl726_do_insn_bits(struct comedi_device *dev,
 static int pcl726_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcl726_board *board = comedi_board(dev);
+       struct pcl726_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase;
        unsigned int iorange;
@@ -247,9 +248,10 @@ static int pcl726_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
        dev->board_name = board->name;
 
-       ret = alloc_private(dev, sizeof(struct pcl726_private));
-       if (ret < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        for (i = 0; i < 12; i++) {
                devpriv->bipolar[i] = 0;
index 3cf55ff..0d82591 100644 (file)
@@ -369,8 +369,6 @@ struct pcl812_private {
        unsigned int ao_readback[2];    /*  data for AO readback */
 };
 
-#define devpriv ((struct pcl812_private *)dev->private)
-
 /*
 ==============================================================================
 */
@@ -388,6 +386,7 @@ static int pcl812_ai_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl812_private *devpriv = dev->private;
        int n;
        int timeout, hi;
 
@@ -465,6 +464,7 @@ static int pcl812_ao_insn_write(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl812_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
        int i;
 
@@ -486,6 +486,7 @@ static int pcl812_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl812_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
        int i;
 
@@ -533,6 +534,7 @@ static int pcl812_ai_cmdtest(struct comedi_device *dev,
                             struct comedi_subdevice *s, struct comedi_cmd *cmd)
 {
        const struct pcl812_board *board = comedi_board(dev);
+       struct pcl812_private *devpriv = dev->private;
        int err = 0;
        unsigned int flags;
        int tmp, divisor1, divisor2;
@@ -639,6 +641,7 @@ static int pcl812_ai_cmdtest(struct comedi_device *dev,
 static int pcl812_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        const struct pcl812_board *board = comedi_board(dev);
+       struct pcl812_private *devpriv = dev->private;
        unsigned int divisor1 = 0, divisor2 = 0, i, dma_flags, bytes;
        struct comedi_cmd *cmd = &s->async->cmd;
 
@@ -789,6 +792,7 @@ static irqreturn_t interrupt_pcl812_ai_int(int irq, void *d)
        char err = 1;
        unsigned int mask, timeout;
        struct comedi_device *dev = d;
+       struct pcl812_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        unsigned int next_chan;
 
@@ -862,6 +866,7 @@ static void transfer_from_dma_buf(struct comedi_device *dev,
                                  struct comedi_subdevice *s, short *ptr,
                                  unsigned int bufptr, unsigned int len)
 {
+       struct pcl812_private *devpriv = dev->private;
        unsigned int i;
 
        s->async->events = 0;
@@ -892,6 +897,7 @@ static void transfer_from_dma_buf(struct comedi_device *dev,
 static irqreturn_t interrupt_pcl812_ai_dma(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl812_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        unsigned long dma_flags;
        int len, bufptr;
@@ -938,6 +944,7 @@ static irqreturn_t interrupt_pcl812_ai_dma(int irq, void *d)
 static irqreturn_t interrupt_pcl812(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl812_private *devpriv = dev->private;
 
        if (!dev->attached) {
                comedi_error(dev, "spurious interrupt");
@@ -954,6 +961,7 @@ static irqreturn_t interrupt_pcl812(int irq, void *d)
 */
 static int pcl812_ai_poll(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct pcl812_private *devpriv = dev->private;
        unsigned long flags;
        unsigned int top1, top2, i;
 
@@ -1002,6 +1010,7 @@ static void setup_range_channel(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                unsigned int rangechan, char wait)
 {
+       struct pcl812_private *devpriv = dev->private;
        unsigned char chan_reg = CR_CHAN(rangechan);    /*  normal board */
                                                        /*  gain index */
        unsigned char gain_reg = CR_RANGE(rangechan) +
@@ -1063,8 +1072,9 @@ static void start_pacer(struct comedi_device *dev, int mode,
 static void free_resources(struct comedi_device *dev)
 {
        const struct pcl812_board *board = comedi_board(dev);
+       struct pcl812_private *devpriv = dev->private;
 
-       if (dev->private) {
+       if (devpriv) {
                if (devpriv->dmabuf[0])
                        free_pages(devpriv->dmabuf[0], devpriv->dmapages[0]);
                if (devpriv->dmabuf[1])
@@ -1084,6 +1094,8 @@ static void free_resources(struct comedi_device *dev)
 static int pcl812_ai_cancel(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct pcl812_private *devpriv = dev->private;
+
        if (devpriv->ai_dma)
                disable_dma(devpriv->dma);
        outb(0, dev->iobase + PCL812_CLRINT);   /* clear INT request */
@@ -1100,6 +1112,7 @@ static int pcl812_ai_cancel(struct comedi_device *dev,
 static void pcl812_reset(struct comedi_device *dev)
 {
        const struct pcl812_board *board = comedi_board(dev);
+       struct pcl812_private *devpriv = dev->private;
 
        outb(0, dev->iobase + PCL812_MUX);
        outb(0 + devpriv->range_correction, dev->iobase + PCL812_GAIN);
@@ -1135,6 +1148,7 @@ static void pcl812_reset(struct comedi_device *dev)
 static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcl812_board *board = comedi_board(dev);
+       struct pcl812_private *devpriv;
        int ret, subdev;
        unsigned long iobase;
        unsigned int irq;
@@ -1153,11 +1167,12 @@ static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        }
        dev->iobase = iobase;
 
-       ret = alloc_private(dev, sizeof(struct pcl812_private));
-       if (ret < 0) {
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret) {
                free_resources(dev);
-               return ret;     /* Can't alloc mem */
+               return ret;
        }
+       devpriv = dev->private;
 
        dev->board_name = board->name;
 
index 0822de0..4cdb3c9 100644 (file)
@@ -126,8 +126,6 @@ struct pcl816_board {
        int i8254_osc_base;     /*  1/frequency of on board oscilator in ns */
 };
 
-#define devpriv ((struct pcl816_private *)dev->private)
-
 #ifdef unused
 static int RTC_lock;   /* RTC lock */
 static int RTC_timer_lock;     /* RTC int lock */
@@ -259,6 +257,7 @@ static int pcl816_ai_insn_read(struct comedi_device *dev,
 static irqreturn_t interrupt_pcl816_ai_mode13_int(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl816_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        int low, hi;
        int timeout = 50;       /* wait max 50us */
@@ -315,6 +314,7 @@ static void transfer_from_dma_buf(struct comedi_device *dev,
                                  struct comedi_subdevice *s, short *ptr,
                                  unsigned int bufptr, unsigned int len)
 {
+       struct pcl816_private *devpriv = dev->private;
        int i;
 
        s->async->events = 0;
@@ -350,6 +350,7 @@ static void transfer_from_dma_buf(struct comedi_device *dev,
 static irqreturn_t interrupt_pcl816_ai_mode13_dma(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl816_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        int len, bufptr, this_dma_buf;
        unsigned long dma_flags;
@@ -398,6 +399,8 @@ static irqreturn_t interrupt_pcl816_ai_mode13_dma(int irq, void *d)
 static irqreturn_t interrupt_pcl816(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl816_private *devpriv = dev->private;
+
        DPRINTK("<I>");
 
        if (!dev->attached) {
@@ -554,6 +557,7 @@ static int pcl816_ai_cmdtest(struct comedi_device *dev,
 static int pcl816_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        const struct pcl816_board *board = comedi_board(dev);
+       struct pcl816_private *devpriv = dev->private;
        unsigned int divisor1 = 0, divisor2 = 0, dma_flags, bytes, dmairq;
        struct comedi_cmd *cmd = &s->async->cmd;
        unsigned int seglen;
@@ -682,6 +686,7 @@ static int pcl816_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 
 static int pcl816_ai_poll(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct pcl816_private *devpriv = dev->private;
        unsigned long flags;
        unsigned int top1, top2, i;
 
@@ -727,6 +732,8 @@ static int pcl816_ai_poll(struct comedi_device *dev, struct comedi_subdevice *s)
 static int pcl816_ai_cancel(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct pcl816_private *devpriv = dev->private;
+
 /* DEBUG(printk("pcl816_ai_cancel()\n");) */
 
        if (devpriv->irq_blocked > 0) {
@@ -932,6 +939,7 @@ setup_channel_list(struct comedi_device *dev,
                   struct comedi_subdevice *s, unsigned int *chanlist,
                   unsigned int seglen)
 {
+       struct pcl816_private *devpriv = dev->private;
        unsigned int i;
 
        devpriv->ai_act_chanlist_len = seglen;
@@ -991,6 +999,7 @@ static int set_rtc_irq_bit(unsigned char bit)
 static int pcl816_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcl816_board *board = comedi_board(dev);
+       struct pcl816_private *devpriv;
        int ret;
        unsigned long iobase;
        unsigned int irq, dma;
@@ -1015,9 +1024,10 @@ static int pcl816_attach(struct comedi_device *dev, struct comedi_devconfig *it)
                return -EIO;
        }
 
-       ret = alloc_private(dev, sizeof(struct pcl816_private));
-       if (ret < 0)
-               return ret;     /* Can't alloc mem */
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        dev->board_name = board->name;
 
@@ -1216,6 +1226,7 @@ case COMEDI_SUBD_DO:
 static void pcl816_detach(struct comedi_device *dev)
 {
        const struct pcl816_board *board = comedi_board(dev);
+       struct pcl816_private *devpriv = dev->private;
 
        if (dev->private) {
                pcl816_ai_cancel(dev, devpriv->sub_ai);
index d4b0859..9dcddea 100644 (file)
@@ -326,8 +326,6 @@ static const unsigned int muxonechan[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0
        0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff
 };
 
-#define devpriv ((struct pcl818_private *)dev->private)
-
 /*
 ==============================================================================
 */
@@ -406,6 +404,7 @@ static int pcl818_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl818_private *devpriv = dev->private;
        int n;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -419,6 +418,7 @@ static int pcl818_ao_insn_write(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcl818_private *devpriv = dev->private;
        int n;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -478,6 +478,7 @@ static int pcl818_do_insn_bits(struct comedi_device *dev,
 static irqreturn_t interrupt_pcl818_ai_mode13_int(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl818_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        int low;
        int timeout = 50;       /* wait max 50us */
@@ -537,6 +538,7 @@ conv_finish:
 static irqreturn_t interrupt_pcl818_ai_mode13_dma(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl818_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        int i, len, bufptr;
        unsigned long flags;
@@ -616,6 +618,7 @@ static irqreturn_t interrupt_pcl818_ai_mode13_dma(int irq, void *d)
 static irqreturn_t interrupt_pcl818_ai_mode13_dma_rtc(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl818_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        unsigned long tmp;
        unsigned int top1, top2, i, bufptr;
@@ -721,6 +724,7 @@ static irqreturn_t interrupt_pcl818_ai_mode13_dma_rtc(int irq, void *d)
 static irqreturn_t interrupt_pcl818_ai_mode13_fifo(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl818_private *devpriv = dev->private;
        struct comedi_subdevice *s = &dev->subdevices[0];
        int i, len, lo;
 
@@ -795,6 +799,7 @@ static irqreturn_t interrupt_pcl818_ai_mode13_fifo(int irq, void *d)
 static irqreturn_t interrupt_pcl818(int irq, void *d)
 {
        struct comedi_device *dev = d;
+       struct pcl818_private *devpriv = dev->private;
 
        if (!dev->attached) {
                comedi_error(dev, "premature interrupt");
@@ -861,6 +866,7 @@ static irqreturn_t interrupt_pcl818(int irq, void *d)
 static void pcl818_ai_mode13dma_int(int mode, struct comedi_device *dev,
                                    struct comedi_subdevice *s)
 {
+       struct pcl818_private *devpriv = dev->private;
        unsigned int flags;
        unsigned int bytes;
 
@@ -902,6 +908,7 @@ static void pcl818_ai_mode13dma_int(int mode, struct comedi_device *dev,
 static void pcl818_ai_mode13dma_rtc(int mode, struct comedi_device *dev,
                                    struct comedi_subdevice *s)
 {
+       struct pcl818_private *devpriv = dev->private;
        unsigned int flags;
        short *pole;
 
@@ -943,6 +950,7 @@ static void pcl818_ai_mode13dma_rtc(int mode, struct comedi_device *dev,
 static int pcl818_ai_cmd_mode(int mode, struct comedi_device *dev,
                              struct comedi_subdevice *s)
 {
+       struct pcl818_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
        int divisor1 = 0, divisor2 = 0;
        unsigned int seglen;
@@ -1063,6 +1071,7 @@ static int pcl818_ai_cmd_mode(int mode, struct comedi_device *dev,
 static int pcl818_ao_mode13(int mode, struct comedi_device *dev,
                            struct comedi_subdevice *s, comedi_trig * it)
 {
+       struct pcl818_private *devpriv = dev->private;
        int divisor1 = 0, divisor2 = 0;
 
        if (!dev->irq) {
@@ -1222,6 +1231,7 @@ static void setup_channel_list(struct comedi_device *dev,
                               unsigned int *chanlist, unsigned int n_chan,
                               unsigned int seglen)
 {
+       struct pcl818_private *devpriv = dev->private;
        int i;
 
        devpriv->act_chanlist_len = seglen;
@@ -1259,6 +1269,7 @@ static int ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s,
                      struct comedi_cmd *cmd)
 {
        const struct pcl818_board *board = comedi_board(dev);
+       struct pcl818_private *devpriv = dev->private;
        int err = 0;
        int tmp, divisor1 = 0, divisor2 = 0;
 
@@ -1358,6 +1369,7 @@ static int ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s,
 */
 static int ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+       struct pcl818_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
        int retval;
 
@@ -1397,6 +1409,8 @@ static int ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 static int pcl818_ai_cancel(struct comedi_device *dev,
                            struct comedi_subdevice *s)
 {
+       struct pcl818_private *devpriv = dev->private;
+
        if (devpriv->irq_blocked > 0) {
                dev_dbg(dev->class_dev, "pcl818_ai_cancel()\n");
                devpriv->irq_was_now_closed = 1;
@@ -1482,6 +1496,7 @@ static int pcl818_check(unsigned long iobase)
 static void pcl818_reset(struct comedi_device *dev)
 {
        const struct pcl818_board *board = comedi_board(dev);
+       struct pcl818_private *devpriv = dev->private;
 
        if (devpriv->usefifo) { /*  FIFO shutdown */
                outb(0, dev->iobase + PCL818_FI_INTCLR);
@@ -1552,6 +1567,7 @@ static int set_rtc_irq_bit(unsigned char bit)
 static void rtc_dropped_irq(unsigned long data)
 {
        struct comedi_device *dev = (void *)data;
+       struct pcl818_private *devpriv = dev->private;
        unsigned long flags, tmp;
 
        switch (devpriv->int818_mode) {
@@ -1601,6 +1617,7 @@ static int rtc_setfreq_irq(int freq)
 static int pcl818_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcl818_board *board = comedi_board(dev);
+       struct pcl818_private *devpriv;
        int ret;
        unsigned long iobase;
        unsigned int irq;
@@ -1608,9 +1625,10 @@ static int pcl818_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        unsigned long pages;
        struct comedi_subdevice *s;
 
-       ret = alloc_private(dev, sizeof(struct pcl818_private));
-       if (ret < 0)
-               return ret;     /* Can't alloc mem */
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        /* claim our I/O space */
        iobase = it->options[0];
@@ -1892,7 +1910,9 @@ no_dma:
 
 static void pcl818_detach(struct comedi_device *dev)
 {
-       if (dev->private) {
+       struct pcl818_private *devpriv = dev->private;
+
+       if (devpriv) {
                pcl818_ai_cancel(dev, devpriv->sub_ai);
                pcl818_reset(dev);
                if (devpriv->dma)
index cbb344a..6e9a4ec 100644 (file)
@@ -148,13 +148,12 @@ static void do_3724_config(struct comedi_device *dev,
 static void enable_chan(struct comedi_device *dev, struct comedi_subdevice *s,
                        int chanspec)
 {
+       struct priv_pcm3724 *priv = dev->private;
        struct comedi_subdevice *s_dio1 = &dev->subdevices[0];
        unsigned int mask;
        int gatecfg;
-       struct priv_pcm3724 *priv;
 
        gatecfg = 0;
-       priv = dev->private;
 
        mask = 1 << CR_CHAN(chanspec);
        if (s == s_dio1)
@@ -225,6 +224,7 @@ static int subdev_3724_insn_config(struct comedi_device *dev,
 static int pcm3724_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
+       struct priv_pcm3724 *priv;
        struct comedi_subdevice *s;
        unsigned long iobase;
        unsigned int iorange;
@@ -235,12 +235,10 @@ static int pcm3724_attach(struct comedi_device *dev,
        iobase = it->options[0];
        iorange = PCM3724_SIZE;
 
-       ret = alloc_private(dev, sizeof(struct priv_pcm3724));
-       if (ret < 0)
-               return -ENOMEM;
-
-       ((struct priv_pcm3724 *)(dev->private))->dio_1 = 0;
-       ((struct priv_pcm3724 *)(dev->private))->dio_2 = 0;
+       ret = alloc_private(dev, sizeof(*priv));
+       if (ret)
+               return ret;
+       priv = dev->private;
 
        printk(KERN_INFO "comedi%d: pcm3724: board=%s, 0x%03lx ", dev->minor,
               dev->board_name, iobase);
index 5efeb92..5d5fc51 100644 (file)
@@ -62,7 +62,6 @@ struct pcmad_priv_struct {
        int differential;
        int twos_comp;
 };
-#define devpriv ((struct pcmad_priv_struct *)dev->private)
 
 #define TIMEOUT        100
 
@@ -71,6 +70,7 @@ static int pcmad_ai_insn_read(struct comedi_device *dev,
                              struct comedi_insn *insn, unsigned int *data)
 {
        const struct pcmad_board_struct *board = comedi_board(dev);
+       struct pcmad_priv_struct *devpriv = dev->private;
        int i;
        int chan;
        int n;
@@ -104,6 +104,7 @@ static int pcmad_ai_insn_read(struct comedi_device *dev,
 static int pcmad_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcmad_board_struct *board = comedi_board(dev);
+       struct pcmad_priv_struct *devpriv;
        int ret;
        struct comedi_subdevice *s;
        unsigned long iobase;
@@ -121,9 +122,10 @@ static int pcmad_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (ret)
                return ret;
 
-       ret = alloc_private(dev, sizeof(struct pcmad_priv_struct));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        dev->board_name = board->name;
 
index f2984f1..c300921 100644 (file)
@@ -79,8 +79,6 @@ struct pcmda12_private {
        int simultaneous_xfer_mode;
 };
 
-#define devpriv ((struct pcmda12_private *)(dev->private))
-
 static void zero_chans(struct comedi_device *dev)
 {                              /* sets up an
                                   ASIC chip to defaults */
@@ -97,6 +95,7 @@ static void zero_chans(struct comedi_device *dev)
 static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
                    struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcmda12_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -139,6 +138,7 @@ static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
                    struct comedi_insn *insn, unsigned int *data)
 {
+       struct pcmda12_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -155,6 +155,7 @@ static int ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int pcmda12_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
+       struct pcmda12_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase;
        int ret;
@@ -172,14 +173,10 @@ static int pcmda12_attach(struct comedi_device *dev,
 
        dev->board_name = dev->driver->driver_name;
 
-/*
- * Allocate the private structure area.  alloc_private() is a
- * convenient macro defined in comedidev.h.
- */
-       if (alloc_private(dev, sizeof(struct pcmda12_private)) < 0) {
-               printk(KERN_ERR "cannot allocate private data structure\n");
-               return -ENOMEM;
-       }
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        devpriv->simultaneous_xfer_mode = it->options[1];
 
index 6ab45df..616652e 100644 (file)
@@ -229,11 +229,6 @@ struct pcmmio_private {
        struct pcmmio_subdev_private *sprivs;
 };
 
-/*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct pcmmio_private *)dev->private)
 #define subpriv ((struct pcmmio_subdev_private *)s->private)
 
 /* DIO devices are slightly special.  Although it is possible to
@@ -387,6 +382,8 @@ static int pcmmio_dio_insn_config(struct comedi_device *dev,
 
 static void switch_page(struct comedi_device *dev, int asic, int page)
 {
+       struct pcmmio_private *devpriv = dev->private;
+
        if (asic < 0 || asic >= 1)
                return;         /* paranoia */
        if (page < 0 || page >= NUM_PAGES)
@@ -403,6 +400,7 @@ static void switch_page(struct comedi_device *dev, int asic, int page)
 static void init_asics(struct comedi_device *dev)
 {                              /* sets up an
                                   ASIC chip to defaults */
+       struct pcmmio_private *devpriv = dev->private;
        int asic;
 
        for (asic = 0; asic < 1; ++asic) {
@@ -440,6 +438,8 @@ static void init_asics(struct comedi_device *dev)
 #ifdef notused
 static void lock_port(struct comedi_device *dev, int asic, int port)
 {
+       struct pcmmio_private *devpriv = dev->private;
+
        if (asic < 0 || asic >= 1)
                return;         /* paranoia */
        if (port < 0 || port >= PORTS_PER_ASIC)
@@ -454,6 +454,8 @@ static void lock_port(struct comedi_device *dev, int asic, int port)
 
 static void unlock_port(struct comedi_device *dev, int asic, int port)
 {
+       struct pcmmio_private *devpriv = dev->private;
+
        if (asic < 0 || asic >= 1)
                return;         /* paranoia */
        if (port < 0 || port >= PORTS_PER_ASIC)
@@ -468,6 +470,7 @@ static void unlock_port(struct comedi_device *dev, int asic, int port)
 static void pcmmio_stop_intr(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
+       struct pcmmio_private *devpriv = dev->private;
        int nports, firstport, asic, port;
 
        asic = subpriv->dio.intr.asic;
@@ -490,6 +493,7 @@ static irqreturn_t interrupt_pcmmio(int irq, void *d)
 {
        int asic, got1 = 0;
        struct comedi_device *dev = (struct comedi_device *)d;
+       struct pcmmio_private *devpriv = dev->private;
        int i;
 
        for (asic = 0; asic < MAX_ASICS; ++asic) {
@@ -649,6 +653,8 @@ static irqreturn_t interrupt_pcmmio(int irq, void *d)
 static int pcmmio_start_intr(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
+       struct pcmmio_private *devpriv = dev->private;
+
        if (!subpriv->dio.intr.continuous && subpriv->dio.intr.stop_count == 0) {
                /* An empty acquisition! */
                s->async->events |= COMEDI_CB_EOA;
@@ -976,6 +982,7 @@ static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 
 static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct pcmmio_private *devpriv;
        struct comedi_subdevice *s;
        int sdev_no, chans_left, n_dio_subdevs, n_subdevs, port, asic,
            thisasic_chanct = 0;
@@ -998,15 +1005,10 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
                return -EIO;
        }
 
-/*
- * Allocate the private structure area.  alloc_private() is a
- * convenient macro defined in comedidev.h.
- */
-       if (alloc_private(dev, sizeof(struct pcmmio_private)) < 0) {
-               printk(KERN_ERR "comedi%d: cannot allocate private data structure\n",
-                               dev->minor);
-               return -ENOMEM;
-       }
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        for (asic = 0; asic < MAX_ASICS; ++asic) {
                devpriv->asics[asic].num = asic;
@@ -1165,6 +1167,7 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static void pcmmio_detach(struct comedi_device *dev)
 {
+       struct pcmmio_private *devpriv = dev->private;
        int i;
 
        if (dev->iobase)
index 0e32119..3601804 100644 (file)
@@ -194,11 +194,6 @@ struct pcmuio_private {
        struct pcmuio_subdev_private *sprivs;
 };
 
-/*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct pcmuio_private *)dev->private)
 #define subpriv ((struct pcmuio_subdev_private *)s->private)
 
 /* DIO devices are slightly special.  Although it is possible to
@@ -348,6 +343,7 @@ static int pcmuio_dio_insn_config(struct comedi_device *dev,
 static void switch_page(struct comedi_device *dev, int asic, int page)
 {
        const struct pcmuio_board *board = comedi_board(dev);
+       struct pcmuio_private *devpriv = dev->private;
 
        if (asic < 0 || asic >= board->num_asics)
                return;         /* paranoia */
@@ -404,6 +400,7 @@ static void init_asics(struct comedi_device *dev)
 static void lock_port(struct comedi_device *dev, int asic, int port)
 {
        const struct pcmuio_board *board = comedi_board(dev);
+       struct pcmuio_private *devpriv = dev->private;
 
        if (asic < 0 || asic >= board->num_asics)
                return;         /* paranoia */
@@ -419,6 +416,7 @@ static void lock_port(struct comedi_device *dev, int asic, int port)
 static void unlock_port(struct comedi_device *dev, int asic, int port)
 {
        const struct pcmuio_board *board = comedi_board(dev);
+       struct pcmuio_private *devpriv = dev->private;
 
        if (asic < 0 || asic >= board->num_asics)
                return;         /* paranoia */
@@ -435,6 +433,7 @@ static void pcmuio_stop_intr(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
        int nports, firstport, asic, port;
+       struct pcmuio_private *devpriv = dev->private;
 
        asic = subpriv->intr.asic;
        if (asic < 0)
@@ -456,6 +455,7 @@ static irqreturn_t interrupt_pcmuio(int irq, void *d)
 {
        int asic, got1 = 0;
        struct comedi_device *dev = (struct comedi_device *)d;
+       struct pcmuio_private *devpriv = dev->private;
        int i;
 
        for (asic = 0; asic < MAX_ASICS; ++asic) {
@@ -607,6 +607,8 @@ static irqreturn_t interrupt_pcmuio(int irq, void *d)
 static int pcmuio_start_intr(struct comedi_device *dev,
                             struct comedi_subdevice *s)
 {
+       struct pcmuio_private *devpriv = dev->private;
+
        if (!subpriv->intr.continuous && subpriv->intr.stop_count == 0) {
                /* An empty acquisition! */
                s->async->events |= COMEDI_CB_EOA;
@@ -748,6 +750,7 @@ pcmuio_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s,
 static int pcmuio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct pcmuio_board *board = comedi_board(dev);
+       struct pcmuio_private *devpriv;
        struct comedi_subdevice *s;
        int sdev_no, chans_left, n_subdevs, port, asic, thisasic_chanct = 0;
        unsigned long iobase;
@@ -772,15 +775,10 @@ static int pcmuio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
        dev->board_name = board->name;
 
-/*
- * Allocate the private structure area.  alloc_private() is a
- * convenient macro defined in comedidev.h.
- */
-       if (alloc_private(dev, sizeof(struct pcmuio_private)) < 0) {
-               dev_warn(dev->class_dev,
-                        "cannot allocate private data structure\n");
-               return -ENOMEM;
-       }
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        for (asic = 0; asic < MAX_ASICS; ++asic) {
                devpriv->asics[asic].num = asic;
@@ -905,6 +903,7 @@ static int pcmuio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static void pcmuio_detach(struct comedi_device *dev)
 {
        const struct pcmuio_board *board = comedi_board(dev);
+       struct pcmuio_private *devpriv = dev->private;
        int i;
 
        if (dev->iobase)
index 41d24b0..b9fd164 100644 (file)
@@ -1608,12 +1608,9 @@ static int rtd_attach(struct comedi_device *dev, struct comedi_devconfig *it)
                comedi_debug = 1;
 #endif
 
-       /*
-        * Allocate the private structure area.  alloc_private() is a
-        * convenient macro defined in comedidev.h.
-        */
-       if (alloc_private(dev, sizeof(struct rtdPrivate)) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
        devpriv = dev->private;
 
        pcidev = rtd_find_pci(dev, it);
index 137885b..82dae22 100644 (file)
@@ -161,8 +161,6 @@ struct rti800_private {
        int muxgain_bits;
 };
 
-#define devpriv ((struct rti800_private *)dev->private)
-
 #define RTI800_TIMEOUT 100
 
 static irqreturn_t rti800_interrupt(int irq, void *dev)
@@ -177,6 +175,7 @@ static int rti800_ai_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct rti800_private *devpriv = dev->private;
        int i, t;
        int status;
        int chan = CR_CHAN(insn->chanspec);
@@ -229,6 +228,7 @@ static int rti800_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct rti800_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -242,6 +242,7 @@ static int rti800_ao_insn_write(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct rti800_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
        int d;
        int i;
@@ -303,6 +304,7 @@ static int rti800_do_insn_bits(struct comedi_device *dev,
 static int rti800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct rti800_board *board = comedi_board(dev);
+       struct rti800_private *devpriv;
        unsigned int irq;
        unsigned long iobase;
        int ret;
@@ -347,9 +349,10 @@ static int rti800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
        if (ret)
                return ret;
 
-       ret = alloc_private(dev, sizeof(struct rti800_private));
-       if (ret < 0)
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
                return ret;
+       devpriv = dev->private;
 
        devpriv->adc_mux = it->options[2];
        devpriv->adc_range = it->options[3];
index 3f9d027..844e75e 100644 (file)
@@ -55,12 +55,11 @@ struct rti802_private {
        unsigned int ao_readback[8];
 };
 
-#define devpriv ((struct rti802_private *)dev->private)
-
 static int rti802_ao_insn_read(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct rti802_private *devpriv = dev->private;
        int i;
 
        for (i = 0; i < insn->n; i++)
@@ -73,6 +72,7 @@ static int rti802_ao_insn_write(struct comedi_device *dev,
                                struct comedi_subdevice *s,
                                struct comedi_insn *insn, unsigned int *data)
 {
+       struct rti802_private *devpriv = dev->private;
        int i, d;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -89,6 +89,7 @@ static int rti802_ao_insn_write(struct comedi_device *dev,
 
 static int rti802_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct rti802_private *devpriv;
        struct comedi_subdevice *s;
        int i;
        unsigned long iobase;
@@ -104,8 +105,10 @@ static int rti802_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
        dev->board_name = "rti802";
 
-       if (alloc_private(dev, sizeof(struct rti802_private)))
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        ret = comedi_alloc_subdevices(dev, 1);
        if (ret)
index 9ed6a7e..3f9221d 100644 (file)
@@ -64,12 +64,6 @@ struct serial2002_private {
        struct serial2002_range_table_t in_range[32], out_range[32];
 };
 
-/*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct serial2002_private *)dev->private)
-
 struct serial_data {
        enum { is_invalid, is_digital, is_channel } kind;
        int index;
@@ -344,6 +338,7 @@ static void serial_write(struct file *f, struct serial_data data)
 
 static int serial_2002_open(struct comedi_device *dev)
 {
+       struct serial2002_private *devpriv = dev->private;
        int result;
        char port[20];
 
@@ -651,6 +646,8 @@ err_alloc_configs:
 
 static void serial_2002_close(struct comedi_device *dev)
 {
+       struct serial2002_private *devpriv = dev->private;
+
        if (!IS_ERR(devpriv->tty) && devpriv->tty)
                filp_close(devpriv->tty, NULL);
 }
@@ -659,6 +656,7 @@ static int serial2002_di_rinsn(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct serial2002_private *devpriv = dev->private;
        int n;
        int chan;
 
@@ -681,6 +679,7 @@ static int serial2002_do_winsn(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct serial2002_private *devpriv = dev->private;
        int n;
        int chan;
 
@@ -700,6 +699,7 @@ static int serial2002_ai_rinsn(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct serial2002_private *devpriv = dev->private;
        int n;
        int chan;
 
@@ -722,6 +722,7 @@ static int serial2002_ao_winsn(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct serial2002_private *devpriv = dev->private;
        int n;
        int chan;
 
@@ -742,6 +743,7 @@ static int serial2002_ao_rinsn(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct serial2002_private *devpriv = dev->private;
        int n;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -755,6 +757,7 @@ static int serial2002_ei_rinsn(struct comedi_device *dev,
                               struct comedi_subdevice *s,
                               struct comedi_insn *insn, unsigned int *data)
 {
+       struct serial2002_private *devpriv = dev->private;
        int n;
        int chan;
 
@@ -776,13 +779,18 @@ static int serial2002_ei_rinsn(struct comedi_device *dev,
 static int serial2002_attach(struct comedi_device *dev,
                             struct comedi_devconfig *it)
 {
+       struct serial2002_private *devpriv;
        struct comedi_subdevice *s;
        int ret;
 
        dev_dbg(dev->class_dev, "serial2002: attach\n");
        dev->board_name = dev->driver->driver_name;
-       if (alloc_private(dev, sizeof(struct serial2002_private)) < 0)
-               return -ENOMEM;
+
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
+
        dev->open = serial_2002_open;
        dev->close = serial_2002_close;
        devpriv->port = it->options[0];
index b70cdf3..d2ef7db 100644 (file)
@@ -146,12 +146,6 @@ struct skel_private {
 };
 
 /*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct skel_private *)dev->private)
-
-/*
  * The struct comedi_driver structure tells the Comedi core module
  * which functions to call to configure/deconfigure (attach/detach)
  * the board, and also about the kernel module that contains
@@ -211,6 +205,7 @@ static int skel_ns_to_timer(unsigned int *ns, int round);
  */
 static int skel_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+       struct skel_private *devpriv;
        struct comedi_subdevice *s;
        int ret;
 
@@ -229,12 +224,11 @@ static int skel_attach(struct comedi_device *dev, struct comedi_devconfig *it)
  */
        dev->board_name = thisboard->name;
 
-/*
- * Allocate the private structure area.  alloc_private() is a
- * convenient macro defined in comedidev.h.
- */
-       if (alloc_private(dev, sizeof(struct skel_private)) < 0)
-               return -ENOMEM;
+       /* Allocate the private data */
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        ret = comedi_alloc_subdevices(dev, 3);
        if (ret)
@@ -504,6 +498,7 @@ static int skel_ns_to_timer(unsigned int *ns, int round)
 static int skel_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
                         struct comedi_insn *insn, unsigned int *data)
 {
+       struct skel_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);
 
@@ -525,6 +520,7 @@ static int skel_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int skel_ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
                         struct comedi_insn *insn, unsigned int *data)
 {
+       struct skel_private *devpriv = dev->private;
        int i;
        int chan = CR_CHAN(insn->chanspec);