Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 317360
b: refs/heads/master
c: 7a58316
h: refs/heads/master
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Jun 14, 2012
1 parent 54ccc7c commit fb9340c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7c61452afcf5cf2f781f8aabc42405af0edc4b06
refs/heads/master: 7a583163e87c8dd5b1826199d2a189f0daaf3247
36 changes: 18 additions & 18 deletions trunk/drivers/staging/comedi/drivers/8255.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ I/O port base address can be found in the output of 'lspci -v'.
#define CR_CW 0x80

struct subdev_8255_private {
unsigned long cb_arg;
int (*cb_func) (int, int, int, unsigned long);
unsigned long iobase;
int (*io) (int, int, int, unsigned long);
int have_irq;
};

Expand All @@ -109,8 +109,8 @@ void subdev_8255_interrupt(struct comedi_device *dev,
struct subdev_8255_private *spriv = s->private;
short d;

d = spriv->cb_func(0, _8255_DATA, 0, spriv->cb_arg);
d |= (spriv->cb_func(0, _8255_DATA + 1, 0, spriv->cb_arg) << 8);
d = spriv->io(0, _8255_DATA, 0, spriv->iobase);
d |= (spriv->io(0, _8255_DATA + 1, 0, spriv->iobase) << 8);

comedi_buf_put(s->async, d);
s->async->events |= COMEDI_CB_EOS;
Expand Down Expand Up @@ -142,19 +142,19 @@ static int subdev_8255_insn(struct comedi_device *dev,
s->state |= (data[0] & data[1]);

if (data[0] & 0xff)
spriv->cb_func(1, _8255_DATA, s->state & 0xff,
spriv->cb_arg);
spriv->io(1, _8255_DATA, s->state & 0xff,
spriv->iobase);
if (data[0] & 0xff00)
spriv->cb_func(1, _8255_DATA + 1,
(s->state >> 8) & 0xff, spriv->cb_arg);
spriv->io(1, _8255_DATA + 1,
(s->state >> 8) & 0xff, spriv->iobase);
if (data[0] & 0xff0000)
spriv->cb_func(1, _8255_DATA + 2,
(s->state >> 16) & 0xff, spriv->cb_arg);
spriv->io(1, _8255_DATA + 2,
(s->state >> 16) & 0xff, spriv->iobase);
}

data[1] = spriv->cb_func(0, _8255_DATA, 0, spriv->cb_arg);
data[1] |= (spriv->cb_func(0, _8255_DATA + 1, 0, spriv->cb_arg) << 8);
data[1] |= (spriv->cb_func(0, _8255_DATA + 2, 0, spriv->cb_arg) << 16);
data[1] = spriv->io(0, _8255_DATA, 0, spriv->iobase);
data[1] |= (spriv->io(0, _8255_DATA + 1, 0, spriv->iobase) << 8);
data[1] |= (spriv->io(0, _8255_DATA + 2, 0, spriv->iobase) << 16);

return 2;
}
Expand All @@ -174,7 +174,7 @@ static void do_config(struct comedi_device *dev, struct comedi_subdevice *s)
config |= CR_C_LO_IO;
if (!(s->io_bits & 0xf00000))
config |= CR_C_HI_IO;
spriv->cb_func(1, _8255_CR, config, spriv->cb_arg);
spriv->io(1, _8255_CR, config, spriv->iobase);
}

static int subdev_8255_insn_config(struct comedi_device *dev,
Expand Down Expand Up @@ -323,11 +323,11 @@ int subdev_8255_init(struct comedi_device *dev, struct comedi_subdevice *s,
return -ENOMEM;
s->private = spriv;

spriv->cb_arg = arg;
spriv->iobase = arg;
if (cb == NULL)
spriv->cb_func = subdev_8255_cb;
spriv->io = subdev_8255_cb;
else
spriv->cb_func = cb;
spriv->io = cb;
s->insn_bits = subdev_8255_insn;
s->insn_config = subdev_8255_insn_config;

Expand Down Expand Up @@ -425,7 +425,7 @@ static void dev_8255_detach(struct comedi_device *dev)
s = dev->subdevices + i;
if (s->type != COMEDI_SUBD_UNUSED) {
spriv = s->private;
release_region(spriv->cb_arg, _8255_SIZE);
release_region(spriv->iobase, _8255_SIZE);
}
subdev_8255_cleanup(dev, s);
}
Expand Down

0 comments on commit fb9340c

Please sign in to comment.