staging: comedi: 8255: remove the s->private access macros
The macros CALLBACK_ARG, CALLBACK_FUNC, and subdevpriv all rely on a a local variable having a specific name. Replace the macros with local variables wherever they occur. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Frank Mori Hess <fmhess@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a9044d9199
commit
7c61452afc
1 changed files with 32 additions and 27 deletions
|
@ -103,17 +103,14 @@ struct subdev_8255_private {
|
||||||
int have_irq;
|
int have_irq;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define CALLBACK_ARG (((struct subdev_8255_private *)s->private)->cb_arg)
|
|
||||||
#define CALLBACK_FUNC (((struct subdev_8255_private *)s->private)->cb_func)
|
|
||||||
#define subdevpriv ((struct subdev_8255_private *)s->private)
|
|
||||||
|
|
||||||
void subdev_8255_interrupt(struct comedi_device *dev,
|
void subdev_8255_interrupt(struct comedi_device *dev,
|
||||||
struct comedi_subdevice *s)
|
struct comedi_subdevice *s)
|
||||||
{
|
{
|
||||||
|
struct subdev_8255_private *spriv = s->private;
|
||||||
short d;
|
short d;
|
||||||
|
|
||||||
d = CALLBACK_FUNC(0, _8255_DATA, 0, CALLBACK_ARG);
|
d = spriv->cb_func(0, _8255_DATA, 0, spriv->cb_arg);
|
||||||
d |= (CALLBACK_FUNC(0, _8255_DATA + 1, 0, CALLBACK_ARG) << 8);
|
d |= (spriv->cb_func(0, _8255_DATA + 1, 0, spriv->cb_arg) << 8);
|
||||||
|
|
||||||
comedi_buf_put(s->async, d);
|
comedi_buf_put(s->async, d);
|
||||||
s->async->events |= COMEDI_CB_EOS;
|
s->async->events |= COMEDI_CB_EOS;
|
||||||
|
@ -138,30 +135,33 @@ static int subdev_8255_insn(struct comedi_device *dev,
|
||||||
struct comedi_subdevice *s,
|
struct comedi_subdevice *s,
|
||||||
struct comedi_insn *insn, unsigned int *data)
|
struct comedi_insn *insn, unsigned int *data)
|
||||||
{
|
{
|
||||||
|
struct subdev_8255_private *spriv = s->private;
|
||||||
|
|
||||||
if (data[0]) {
|
if (data[0]) {
|
||||||
s->state &= ~data[0];
|
s->state &= ~data[0];
|
||||||
s->state |= (data[0] & data[1]);
|
s->state |= (data[0] & data[1]);
|
||||||
|
|
||||||
if (data[0] & 0xff)
|
if (data[0] & 0xff)
|
||||||
CALLBACK_FUNC(1, _8255_DATA, s->state & 0xff,
|
spriv->cb_func(1, _8255_DATA, s->state & 0xff,
|
||||||
CALLBACK_ARG);
|
spriv->cb_arg);
|
||||||
if (data[0] & 0xff00)
|
if (data[0] & 0xff00)
|
||||||
CALLBACK_FUNC(1, _8255_DATA + 1, (s->state >> 8) & 0xff,
|
spriv->cb_func(1, _8255_DATA + 1,
|
||||||
CALLBACK_ARG);
|
(s->state >> 8) & 0xff, spriv->cb_arg);
|
||||||
if (data[0] & 0xff0000)
|
if (data[0] & 0xff0000)
|
||||||
CALLBACK_FUNC(1, _8255_DATA + 2,
|
spriv->cb_func(1, _8255_DATA + 2,
|
||||||
(s->state >> 16) & 0xff, CALLBACK_ARG);
|
(s->state >> 16) & 0xff, spriv->cb_arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
data[1] = CALLBACK_FUNC(0, _8255_DATA, 0, CALLBACK_ARG);
|
data[1] = spriv->cb_func(0, _8255_DATA, 0, spriv->cb_arg);
|
||||||
data[1] |= (CALLBACK_FUNC(0, _8255_DATA + 1, 0, CALLBACK_ARG) << 8);
|
data[1] |= (spriv->cb_func(0, _8255_DATA + 1, 0, spriv->cb_arg) << 8);
|
||||||
data[1] |= (CALLBACK_FUNC(0, _8255_DATA + 2, 0, CALLBACK_ARG) << 16);
|
data[1] |= (spriv->cb_func(0, _8255_DATA + 2, 0, spriv->cb_arg) << 16);
|
||||||
|
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_config(struct comedi_device *dev, struct comedi_subdevice *s)
|
static void do_config(struct comedi_device *dev, struct comedi_subdevice *s)
|
||||||
{
|
{
|
||||||
|
struct subdev_8255_private *spriv = s->private;
|
||||||
int config;
|
int config;
|
||||||
|
|
||||||
config = CR_CW;
|
config = CR_CW;
|
||||||
|
@ -174,7 +174,7 @@ static void do_config(struct comedi_device *dev, struct comedi_subdevice *s)
|
||||||
config |= CR_C_LO_IO;
|
config |= CR_C_LO_IO;
|
||||||
if (!(s->io_bits & 0xf00000))
|
if (!(s->io_bits & 0xf00000))
|
||||||
config |= CR_C_HI_IO;
|
config |= CR_C_HI_IO;
|
||||||
CALLBACK_FUNC(1, _8255_CR, config, CALLBACK_ARG);
|
spriv->cb_func(1, _8255_CR, config, spriv->cb_arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int subdev_8255_insn_config(struct comedi_device *dev,
|
static int subdev_8255_insn_config(struct comedi_device *dev,
|
||||||
|
@ -310,21 +310,24 @@ int subdev_8255_init(struct comedi_device *dev, struct comedi_subdevice *s,
|
||||||
int (*cb) (int, int, int, unsigned long),
|
int (*cb) (int, int, int, unsigned long),
|
||||||
unsigned long arg)
|
unsigned long arg)
|
||||||
{
|
{
|
||||||
|
struct subdev_8255_private *spriv;
|
||||||
|
|
||||||
s->type = COMEDI_SUBD_DIO;
|
s->type = COMEDI_SUBD_DIO;
|
||||||
s->subdev_flags = SDF_READABLE | SDF_WRITABLE;
|
s->subdev_flags = SDF_READABLE | SDF_WRITABLE;
|
||||||
s->n_chan = 24;
|
s->n_chan = 24;
|
||||||
s->range_table = &range_digital;
|
s->range_table = &range_digital;
|
||||||
s->maxdata = 1;
|
s->maxdata = 1;
|
||||||
|
|
||||||
s->private = kmalloc(sizeof(struct subdev_8255_private), GFP_KERNEL);
|
spriv = kmalloc(sizeof(*spriv), GFP_KERNEL);
|
||||||
if (!s->private)
|
if (!spriv)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
s->private = spriv;
|
||||||
|
|
||||||
CALLBACK_ARG = arg;
|
spriv->cb_arg = arg;
|
||||||
if (cb == NULL)
|
if (cb == NULL)
|
||||||
CALLBACK_FUNC = subdev_8255_cb;
|
spriv->cb_func = subdev_8255_cb;
|
||||||
else
|
else
|
||||||
CALLBACK_FUNC = cb;
|
spriv->cb_func = cb;
|
||||||
s->insn_bits = subdev_8255_insn;
|
s->insn_bits = subdev_8255_insn;
|
||||||
s->insn_config = subdev_8255_insn_config;
|
s->insn_config = subdev_8255_insn_config;
|
||||||
|
|
||||||
|
@ -340,18 +343,20 @@ int subdev_8255_init_irq(struct comedi_device *dev, struct comedi_subdevice *s,
|
||||||
int (*cb) (int, int, int, unsigned long),
|
int (*cb) (int, int, int, unsigned long),
|
||||||
unsigned long arg)
|
unsigned long arg)
|
||||||
{
|
{
|
||||||
|
struct subdev_8255_private *spriv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = subdev_8255_init(dev, s, cb, arg);
|
ret = subdev_8255_init(dev, s, cb, arg);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
spriv = s->private;
|
||||||
|
|
||||||
|
spriv->have_irq = 1;
|
||||||
|
|
||||||
s->do_cmdtest = subdev_8255_cmdtest;
|
s->do_cmdtest = subdev_8255_cmdtest;
|
||||||
s->do_cmd = subdev_8255_cmd;
|
s->do_cmd = subdev_8255_cmd;
|
||||||
s->cancel = subdev_8255_cancel;
|
s->cancel = subdev_8255_cancel;
|
||||||
|
|
||||||
subdevpriv->have_irq = 1;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(subdev_8255_init_irq);
|
EXPORT_SYMBOL(subdev_8255_init_irq);
|
||||||
|
@ -412,15 +417,15 @@ static int dev_8255_attach(struct comedi_device *dev,
|
||||||
|
|
||||||
static void dev_8255_detach(struct comedi_device *dev)
|
static void dev_8255_detach(struct comedi_device *dev)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
unsigned long iobase;
|
|
||||||
struct comedi_subdevice *s;
|
struct comedi_subdevice *s;
|
||||||
|
struct subdev_8255_private *spriv;
|
||||||
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < dev->n_subdevices; i++) {
|
for (i = 0; i < dev->n_subdevices; i++) {
|
||||||
s = dev->subdevices + i;
|
s = dev->subdevices + i;
|
||||||
if (s->type != COMEDI_SUBD_UNUSED) {
|
if (s->type != COMEDI_SUBD_UNUSED) {
|
||||||
iobase = CALLBACK_ARG;
|
spriv = s->private;
|
||||||
release_region(iobase, _8255_SIZE);
|
release_region(spriv->cb_arg, _8255_SIZE);
|
||||||
}
|
}
|
||||||
subdev_8255_cleanup(dev, s);
|
subdev_8255_cleanup(dev, s);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue