summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/poc.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2012-10-15 10:14:48 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-10-22 11:57:57 -0700
commit22201ceaeb4f8c3a97b27cd421d9318566089b8c (patch)
tree69610d6ca3096bf25ed2fdfa8d6d51ad35203e35 /drivers/staging/comedi/drivers/poc.c
parent8c12ec2616d18e9c6f6a6884a8738586be5a15d9 (diff)
staging: comedi: poc: introduce struct poc_private
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 <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/poc.c')
-rw-r--r--drivers/staging/comedi/drivers/poc.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/staging/comedi/drivers/poc.c b/drivers/staging/comedi/drivers/poc.c
index 78dfe167b147..8e70affb331a 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];