Merge branch 'for-2.6.31' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
[pandora-kernel.git] / drivers / staging / comedi / drivers / ii_pci20kc.c
index e1376a1..a90d65f 100644 (file)
@@ -133,11 +133,11 @@ options for PCI-20341M:
 #define PCI20341_MUX                   0x04    /* Enable on-board MUX */
 #define PCI20341_SCANLIST              0x80    /* Channel/Gain Scan List */
 
-typedef union {
+union pci20xxx_subdev_private {
        void *iobase;
        struct {
                void *iobase;
-               const comedi_lrange *ao_range_list[2];  /* range of channels of ao module */
+               const struct comedi_lrange *ao_range_list[2];   /* range of channels of ao module */
                unsigned int last_data[2];
        } pci20006;
        struct {
@@ -146,31 +146,33 @@ typedef union {
                int settling_time;
                int ai_gain;
        } pci20341;
-} pci20xxx_subdev_private;
+};
+
+struct pci20xxx_private {
 
-typedef struct {
        void *ioaddr;
-       pci20xxx_subdev_private subdev_private[PCI20000_MODULES];
-} pci20xxx_private;
+       union pci20xxx_subdev_private subdev_private[PCI20000_MODULES];
+};
 
-#define devpriv ((pci20xxx_private *)dev->private)
+
+#define devpriv ((struct pci20xxx_private *)dev->private)
 #define CHAN (CR_CHAN(it->chanlist[0]))
 
-static int pci20xxx_attach(struct comedi_device * dev, comedi_devconfig * it);
-static int pci20xxx_detach(struct comedi_device * dev);
+static int pci20xxx_attach(struct comedi_device *dev, struct comedi_devconfig *it);
+static int pci20xxx_detach(struct comedi_device *dev);
 
 static struct comedi_driver driver_pci20xxx = {
-      driver_name:"ii_pci20kc",
-      module:THIS_MODULE,
-      attach:pci20xxx_attach,
-      detach:pci20xxx_detach,
+       .driver_name = "ii_pci20kc",
+       .module = THIS_MODULE,
+       .attach = pci20xxx_attach,
+       .detach = pci20xxx_detach,
 };
 
-static int pci20006_init(struct comedi_device * dev, struct comedi_subdevice * s,
+static int pci20006_init(struct comedi_device *dev, struct comedi_subdevice *s,
        int opt0, int opt1);
-static int pci20341_init(struct comedi_device * dev, struct comedi_subdevice * s,
+static int pci20341_init(struct comedi_device *dev, struct comedi_subdevice *s,
        int opt0, int opt1);
-static int pci20xxx_dio_init(struct comedi_device * dev, struct comedi_subdevice * s);
+static int pci20xxx_dio_init(struct comedi_device *dev, struct comedi_subdevice *s);
 
 /*
   options[0]   Board base address
@@ -199,17 +201,20 @@ static int pci20xxx_dio_init(struct comedi_device * dev, struct comedi_subdevice
                1 == unipolar 10V  (0V -- +10V)
                2 == bipolar 5V  (-5V -- +5V)
 */
-static int pci20xxx_attach(struct comedi_device * dev, comedi_devconfig * it)
+static int pci20xxx_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        unsigned char i;
        int ret;
        int id;
        struct comedi_subdevice *s;
-       pci20xxx_subdev_private *sdp;
+       union pci20xxx_subdev_private *sdp;
 
-       if ((ret = alloc_subdevices(dev, 1 + PCI20000_MODULES)) < 0)
+       ret = alloc_subdevices(dev, 1 + PCI20000_MODULES);
+       if (ret < 0)
                return ret;
-       if ((ret = alloc_private(dev, sizeof(pci20xxx_private))) < 0)
+
+       ret = alloc_private(dev, sizeof(struct pci20xxx_private));
+       if (ret < 0)
                return ret;
 
        devpriv->ioaddr = (void *)(unsigned long)it->options[0];
@@ -255,13 +260,13 @@ static int pci20xxx_attach(struct comedi_device * dev, comedi_devconfig * it)
                }
        }
 
-       /* initialize pci20xxx_private */
+       /* initialize struct pci20xxx_private */
        pci20xxx_dio_init(dev, dev->subdevices + PCI20000_MODULES);
 
        return 1;
 }
 
-static int pci20xxx_detach(struct comedi_device * dev)
+static int pci20xxx_detach(struct comedi_device *dev)
 {
        printk("comedi%d: pci20xxx: remove\n", dev->minor);
 
@@ -270,21 +275,21 @@ static int pci20xxx_detach(struct comedi_device * dev)
 
 /* pci20006m */
 
-static int pci20006_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data);
-static int pci20006_insn_write(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data);
+static int pci20006_insn_read(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data);
+static int pci20006_insn_write(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data);
 
-static const comedi_lrange *pci20006_range_list[] = {
+static const struct comedi_lrange *pci20006_range_list[] = {
        &range_bipolar10,
        &range_unipolar10,
        &range_bipolar5,
 };
 
-static int pci20006_init(struct comedi_device * dev, struct comedi_subdevice * s,
+static int pci20006_init(struct comedi_device *dev, struct comedi_subdevice *s,
        int opt0, int opt1)
 {
-       pci20xxx_subdev_private *sdp = s->private;
+       union pci20xxx_subdev_private *sdp = s->private;
 
        if (opt0 < 0 || opt0 > 2)
                opt0 = 0;
@@ -306,20 +311,20 @@ static int pci20006_init(struct comedi_device * dev, struct comedi_subdevice * s
        return 0;
 }
 
-static int pci20006_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data)
+static int pci20006_insn_read(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data)
 {
-       pci20xxx_subdev_private *sdp = s->private;
+       union pci20xxx_subdev_private *sdp = s->private;
 
        data[0] = sdp->pci20006.last_data[CR_CHAN(insn->chanspec)];
 
        return 1;
 }
 
-static int pci20006_insn_write(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data)
+static int pci20006_insn_write(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data)
 {
-       pci20xxx_subdev_private *sdp = s->private;
+       union pci20xxx_subdev_private *sdp = s->private;
        int hi, lo;
        unsigned int boarddata;
 
@@ -349,27 +354,27 @@ static int pci20006_insn_write(struct comedi_device * dev, struct comedi_subdevi
 
 /* PCI20341M */
 
-static int pci20341_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data);
+static int pci20341_insn_read(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data);
 
 static const int pci20341_timebase[] = { 0x00, 0x00, 0x00, 0x04 };
 static const int pci20341_settling_time[] = { 0x58, 0x58, 0x93, 0x99 };
 
-static const comedi_lrange range_bipolar0_5 = { 1, {BIP_RANGE(0.5)} };
-static const comedi_lrange range_bipolar0_05 = { 1, {BIP_RANGE(0.05)} };
-static const comedi_lrange range_bipolar0_025 = { 1, {BIP_RANGE(0.025)} };
+static const struct comedi_lrange range_bipolar0_5 = { 1, {BIP_RANGE(0.5)} };
+static const struct comedi_lrange range_bipolar0_05 = { 1, {BIP_RANGE(0.05)} };
+static const struct comedi_lrange range_bipolar0_025 = { 1, {BIP_RANGE(0.025)} };
 
-static const comedi_lrange *const pci20341_ranges[] = {
+static const struct comedi_lrange *const pci20341_ranges[] = {
        &range_bipolar5,
        &range_bipolar0_5,
        &range_bipolar0_05,
        &range_bipolar0_025,
 };
 
-static int pci20341_init(struct comedi_device * dev, struct comedi_subdevice * s,
+static int pci20341_init(struct comedi_device *dev, struct comedi_subdevice *s,
        int opt0, int opt1)
 {
-       pci20xxx_subdev_private *sdp = s->private;
+       union pci20xxx_subdev_private *sdp = s->private;
        int option;
 
        /* options handling */
@@ -397,10 +402,10 @@ static int pci20341_init(struct comedi_device * dev, struct comedi_subdevice * s
        return 0;
 }
 
-static int pci20341_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data)
+static int pci20341_insn_read(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data)
 {
-       pci20xxx_subdev_private *sdp = s->private;
+        union pci20xxx_subdev_private *sdp = s->private;
        unsigned int i = 0, j = 0;
        int lo, hi;
        unsigned char eoc;      /* end of conversion */
@@ -443,14 +448,14 @@ static int pci20341_insn_read(struct comedi_device * dev, struct comedi_subdevic
 
 /* native DIO */
 
-static void pci20xxx_dio_config(struct comedi_device * dev, struct comedi_subdevice * s);
-static int pci20xxx_dio_insn_bits(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data);
-static int pci20xxx_dio_insn_config(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data);
+static void pci20xxx_dio_config(struct comedi_device *dev, struct comedi_subdevice *s);
+static int pci20xxx_dio_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data);
+static int pci20xxx_dio_insn_config(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data);
 
-/* initialize pci20xxx_private */
-static int pci20xxx_dio_init(struct comedi_device * dev, struct comedi_subdevice * s)
+/* initialize struct pci20xxx_private */
+static int pci20xxx_dio_init(struct comedi_device *dev, struct comedi_subdevice *s)
 {
 
        s->type = COMEDI_SUBD_DIO;
@@ -469,8 +474,8 @@ static int pci20xxx_dio_init(struct comedi_device * dev, struct comedi_subdevice
        return 0;
 }
 
-static int pci20xxx_dio_insn_config(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data)
+static int pci20xxx_dio_insn_config(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data)
 {
        int mask, bits;
 
@@ -494,8 +499,8 @@ static int pci20xxx_dio_insn_config(struct comedi_device * dev, struct comedi_su
        return 1;
 }
 
-static int pci20xxx_dio_insn_bits(struct comedi_device * dev, struct comedi_subdevice * s,
-       comedi_insn * insn, unsigned int * data)
+static int pci20xxx_dio_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s,
+       struct comedi_insn *insn, unsigned int *data)
 {
        unsigned int mask = data[0];
 
@@ -524,7 +529,7 @@ static int pci20xxx_dio_insn_bits(struct comedi_device * dev, struct comedi_subd
        return 2;
 }
 
-static void pci20xxx_dio_config(struct comedi_device * dev, struct comedi_subdevice * s)
+static void pci20xxx_dio_config(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        unsigned char control_01;
        unsigned char control_23;
@@ -580,7 +585,7 @@ static void pci20xxx_dio_config(struct comedi_device * dev, struct comedi_subdev
 }
 
 #if 0
-static void pci20xxx_do(struct comedi_device * dev, struct comedi_subdevice * s)
+static void pci20xxx_do(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        /* XXX if the channel is configured for input, does this
           do bad things? */
@@ -593,7 +598,7 @@ static void pci20xxx_do(struct comedi_device * dev, struct comedi_subdevice * s)
        writeb((s->state >> 24) & 0xff, devpriv->ioaddr + PCI20000_DIO_3);
 }
 
-static unsigned int pci20xxx_di(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 */
        unsigned int bits;