Wrap the private data used by this driver in a struct. This makes
the use of that data clearer and gets rid of the need for the casts.

Signed-off-by: H Hartley Sweeten <[email protected]>
Cc: Ian Abbott <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/comedi/drivers/poc.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/comedi/drivers/poc.c 
b/drivers/staging/comedi/drivers/poc.c
index 78dfe16..8e70aff 100644
--- a/drivers/staging/comedi/drivers/poc.c
+++ b/drivers/staging/comedi/drivers/poc.c
@@ -57,13 +57,18 @@ struct boarddef_struct {
        const struct comedi_lrange *range;
 };
 
+struct poc_private {
+       unsigned int ao_readback[32];
+};
+
 static int readback_insn(struct comedi_device *dev, struct comedi_subdevice *s,
                         struct comedi_insn *insn, unsigned int *data)
 {
+       struct poc_private *devpriv = dev->private;
        int chan;
 
        chan = CR_CHAN(insn->chanspec);
-       data[0] = ((unsigned int *)dev->private)[chan];
+       data[0] = devpriv->ao_readback[chan];
 
        return 1;
 }
@@ -75,12 +80,13 @@ static int readback_insn(struct comedi_device *dev, struct 
comedi_subdevice *s,
 static int dac02_ao_winsn(struct comedi_device *dev, struct comedi_subdevice 
*s,
                          struct comedi_insn *insn, unsigned int *data)
 {
+       struct poc_private *devpriv = dev->private;
        int temp;
        int chan;
        int output;
 
        chan = CR_CHAN(insn->chanspec);
-       ((unsigned int *)dev->private)[chan] = data[0];
+       devpriv->ao_readback[chan] = data[0];
        output = data[0];
 #ifdef wrong
        /*  convert to complementary binary if range is bipolar */
@@ -131,6 +137,7 @@ static int pcl734_insn_bits(struct comedi_device *dev,
 static int poc_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
        const struct boarddef_struct *board = comedi_board(dev);
+       struct poc_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase;
        unsigned int iosize;
@@ -160,8 +167,10 @@ static int poc_attach(struct comedi_device *dev, struct 
comedi_devconfig *it)
        if (ret)
                return ret;
 
-       if (alloc_private(dev, sizeof(unsigned int) * board->n_chan) < 0)
-               return -ENOMEM;
+       ret = alloc_private(dev, sizeof(*devpriv));
+       if (ret)
+               return ret;
+       devpriv = dev->private;
 
        /* analog output subdevice */
        s = &dev->subdevices[0];
-- 
1.7.11

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to