Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 324643
b: refs/heads/master
c: d3bcf09
h: refs/heads/master
i:
  324641: 3fac403
  324639: 2680cca
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Sep 4, 2012
1 parent 5b45ad0 commit beb1252
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 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: fa38126b51d05ebaeeb14e6724c86d4fb08a52a5
refs/heads/master: d3bcf099dee9b7eff642890612da1f1a13bb3255
16 changes: 14 additions & 2 deletions trunk/drivers/staging/comedi/drivers/comedi_parport.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,12 @@ struct parport_private {
unsigned int c_data;
int enable_irq;
};
#define devpriv ((struct parport_private *)(dev->private))

static int parport_insn_a(struct comedi_device *dev, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{
struct parport_private *devpriv = dev->private;

if (data[0]) {
devpriv->a_data &= ~data[0];
devpriv->a_data |= (data[0] & data[1]);
Expand All @@ -117,6 +118,8 @@ static int parport_insn_config_a(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{
struct parport_private *devpriv = dev->private;

if (data[0]) {
s->io_bits = 0xff;
devpriv->c_data &= ~(1 << 5);
Expand Down Expand Up @@ -145,6 +148,8 @@ static int parport_insn_b(struct comedi_device *dev, struct comedi_subdevice *s,
static int parport_insn_c(struct comedi_device *dev, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{
struct parport_private *devpriv = dev->private;

data[0] &= 0x0f;
if (data[0]) {
devpriv->c_data &= ~data[0];
Expand Down Expand Up @@ -245,6 +250,8 @@ static int parport_intr_cmdtest(struct comedi_device *dev,
static int parport_intr_cmd(struct comedi_device *dev,
struct comedi_subdevice *s)
{
struct parport_private *devpriv = dev->private;

devpriv->c_data |= 0x10;
outb(devpriv->c_data, dev->iobase + PARPORT_C);

Expand All @@ -256,6 +263,8 @@ static int parport_intr_cmd(struct comedi_device *dev,
static int parport_intr_cancel(struct comedi_device *dev,
struct comedi_subdevice *s)
{
struct parport_private *devpriv = dev->private;

printk(KERN_DEBUG "parport_intr_cancel()\n");

devpriv->c_data &= ~0x10;
Expand All @@ -269,6 +278,7 @@ static int parport_intr_cancel(struct comedi_device *dev,
static irqreturn_t parport_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct parport_private *devpriv = dev->private;
struct comedi_subdevice *s = dev->subdevices + 3;

if (!devpriv->enable_irq) {
Expand All @@ -286,6 +296,7 @@ static irqreturn_t parport_interrupt(int irq, void *d)
static int parport_attach(struct comedi_device *dev,
struct comedi_devconfig *it)
{
struct parport_private *devpriv;
int ret;
unsigned int irq;
unsigned long iobase;
Expand Down Expand Up @@ -316,9 +327,10 @@ static int parport_attach(struct comedi_device *dev,
if (ret)
return ret;

ret = alloc_private(dev, sizeof(struct parport_private));
ret = alloc_private(dev, sizeof(*devpriv));
if (ret < 0)
return ret;
devpriv = dev->private;

s = dev->subdevices + 0;
s->type = COMEDI_SUBD_DIO;
Expand Down

0 comments on commit beb1252

Please sign in to comment.