The 'thisboard' macro relies on a local variable having a specific
name and yields a pointer derived from that local variable.

Replace the macro with local variables and use the comedi_board()
helper to get the pointer.

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfondation.org>
---
 drivers/staging/comedi/drivers/das1800.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/comedi/drivers/das1800.c 
b/drivers/staging/comedi/drivers/das1800.c
index d01e140..4ee426f 100644
--- a/drivers/staging/comedi/drivers/das1800.c
+++ b/drivers/staging/comedi/drivers/das1800.c
@@ -429,11 +429,6 @@ static const struct das1800_board das1800_boards[] = {
         },
 };
 
-/*
- * Useful for shorthand access to the particular board structure
- */
-#define thisboard ((const struct das1800_board *)dev->board_ptr)
-
 struct das1800_private {
        volatile unsigned int count;    /* number of data points left to be 
taken */
        unsigned int divisor1;  /* value to load into board's counter 1 for 
timed conversions */
@@ -476,6 +471,8 @@ static const struct comedi_lrange range_ao_2 = {
 static inline uint16_t munge_bipolar_sample(const struct comedi_device *dev,
                                            uint16_t sample)
 {
+       const struct das1800_board *thisboard = comedi_board(dev);
+
        sample += 1 << (thisboard->resolution - 1);
        return sample;
 }
@@ -789,6 +786,7 @@ static int das1800_ai_do_cmdtest(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
                                 struct comedi_cmd *cmd)
 {
+       const struct das1800_board *thisboard = comedi_board(dev);
        struct das1800_private *devpriv = dev->private;
        int err = 0;
        unsigned int tmp_arg;
@@ -1232,6 +1230,7 @@ static int das1800_ai_rinsn(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       const struct das1800_board *thisboard = comedi_board(dev);
        int i, n;
        int chan, range, aref, chan_range;
        int timeout = 1000;
@@ -1295,6 +1294,7 @@ static int das1800_ao_winsn(struct comedi_device *dev,
                            struct comedi_subdevice *s,
                            struct comedi_insn *insn, unsigned int *data)
 {
+       const struct das1800_board *thisboard = comedi_board(dev);
        struct das1800_private *devpriv = dev->private;
        int chan = CR_CHAN(insn->chanspec);
 /* int range = CR_RANGE(insn->chanspec); */
@@ -1516,6 +1516,7 @@ static int das1800_probe(struct comedi_device *dev)
 static int das1800_attach(struct comedi_device *dev,
                          struct comedi_devconfig *it)
 {
+       const struct das1800_board *thisboard = comedi_board(dev);
        struct das1800_private *devpriv;
        struct comedi_subdevice *s;
        unsigned long iobase = it->options[0];
@@ -1564,6 +1565,7 @@ static int das1800_attach(struct comedi_device *dev,
        }
 
        dev->board_ptr = das1800_boards + board;
+       thisboard = comedi_board(dev);
        dev->board_name = thisboard->name;
 
        /*  if it is an 'ao' board with fancy analog out then we need extra io 
ports */
-- 
1.8.1.4

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to