Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 338295
b: refs/heads/master
c: f5f760e
h: refs/heads/master
i:
  338293: 844cec3
  338291: 10400c9
  338287: a3d2256
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Nov 30, 2012
1 parent 82edf8a commit cce883f
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 26 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: dba18c58e0e116b7185277385e087041c52f2afd
refs/heads/master: f5f760e1d3bf641dacc64240a593267cab554a7a
33 changes: 13 additions & 20 deletions trunk/drivers/staging/comedi/drivers/addi-data/hwdrv_apci2032.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,8 @@ static int i_APCI2032_ConfigDigitalOutput(struct comedi_device *dev,
else {
ul_Command = ul_Command & 0xFFFFFFFD;
} /* elseif (data[2] == ADDIDATA_ENABLE) */
outl(ul_Command, devpriv->iobase + APCI2032_DIGITAL_OP_INTERRUPT);
ui_InterruptData = inl(devpriv->iobase + APCI2032_DIGITAL_OP_INTERRUPT);
outl(ul_Command, dev->iobase + APCI2032_DIGITAL_OP_INTERRUPT);
ui_InterruptData = inl(dev->iobase + APCI2032_DIGITAL_OP_INTERRUPT);
return insn->n;
}

Expand All @@ -148,16 +148,15 @@ static int apci2032_do_insn_bits(struct comedi_device *dev,
struct comedi_insn *insn,
unsigned int *data)
{
struct addi_private *devpriv = dev->private;
unsigned int mask = data[0];
unsigned int bits = data[1];

s->state = inl(devpriv->iobase + APCI2032_DIGITAL_OP_RW);
s->state = inl(dev->iobase + APCI2032_DIGITAL_OP_RW);
if (mask) {
s->state &= ~mask;
s->state |= (bits & mask);

outl(s->state, devpriv->iobase + APCI2032_DIGITAL_OP);
outl(s->state, dev->iobase + APCI2032_DIGITAL_OP);
}

data[1] = s->state;
Expand Down Expand Up @@ -190,16 +189,14 @@ static int i_APCI2032_ConfigWatchdog(struct comedi_device *dev,
struct comedi_insn *insn,
unsigned int *data)
{
struct addi_private *devpriv = dev->private;

if (data[0] == 0) {
/* Disable the watchdog */
outl(0x0,
devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
APCI2032_TCW_PROG);
/* Loading the Reload value */
outl(data[1],
devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
APCI2032_TCW_RELOAD_VALUE);
} else {
printk("\nThe input parameters are wrong\n");
Expand Down Expand Up @@ -235,20 +232,18 @@ static int i_APCI2032_StartStopWriteWatchdog(struct comedi_device *dev,
struct comedi_insn *insn,
unsigned int *data)
{
struct addi_private *devpriv = dev->private;

switch (data[0]) {
case 0: /* stop the watchdog */
outl(0x0, devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG + APCI2032_TCW_PROG); /* disable the watchdog */
outl(0x0, dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG + APCI2032_TCW_PROG); /* disable the watchdog */
break;
case 1: /* start the watchdog */
outl(0x0001,
devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
APCI2032_TCW_PROG);
break;
case 2: /* Software trigger */
outl(0x0201,
devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
APCI2032_TCW_PROG);
break;
default:
Expand Down Expand Up @@ -284,10 +279,8 @@ static int i_APCI2032_ReadWatchdog(struct comedi_device *dev,
struct comedi_insn *insn,
unsigned int *data)
{
struct addi_private *devpriv = dev->private;

data[0] =
inl(devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
inl(dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
APCI2032_TCW_TRIG_STATUS) & 0x1;
return insn->n;
}
Expand Down Expand Up @@ -315,18 +308,18 @@ static void v_APCI2032_Interrupt(int irq, void *d)
struct addi_private *devpriv = dev->private;
unsigned int ui_DO;

ui_DO = inl(devpriv->iobase + APCI2032_DIGITAL_OP_IRQ) & 0x1; /* Check if VCC OR CC interrupt has occurred. */
ui_DO = inl(dev->iobase + APCI2032_DIGITAL_OP_IRQ) & 0x1; /* Check if VCC OR CC interrupt has occurred. */

if (ui_DO == 0) {
printk("\nInterrupt from unKnown source\n");
} /* if(ui_DO==0) */
if (ui_DO) {
/* Check for Digital Output interrupt Type - 1: Vcc interrupt 2: CC interrupt. */
ui_Type =
inl(devpriv->iobase +
inl(dev->iobase +
APCI2032_DIGITAL_OP_INTERRUPT_STATUS) & 0x3;
outl(0x0,
devpriv->iobase + APCI2032_DIGITAL_OP +
dev->iobase + APCI2032_DIGITAL_OP +
APCI2032_DIGITAL_OP_INTERRUPT);
if (ui_Type == 1) {
/* Sends signal to user space */
Expand Down
9 changes: 4 additions & 5 deletions trunk/drivers/staging/comedi/drivers/addi_apci_2032.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ static int apci2032_reset(struct comedi_device *dev)

devpriv->b_DigitalOutputRegister = 0;
ui_Type = 0;
outl(0x0, devpriv->iobase + APCI2032_DIGITAL_OP);
outl(0x0, devpriv->iobase + APCI2032_DIGITAL_OP_INTERRUPT);
outl(0x0, devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG + APCI2032_TCW_PROG);
outl(0x0, devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG + APCI2032_TCW_RELOAD_VALUE);
outl(0x0, dev->iobase + APCI2032_DIGITAL_OP);
outl(0x0, dev->iobase + APCI2032_DIGITAL_OP_INTERRUPT);
outl(0x0, dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG + APCI2032_TCW_PROG);
outl(0x0, dev->iobase + APCI2032_DIGITAL_OP_WATCHDOG + APCI2032_TCW_RELOAD_VALUE);

return 0;
}
Expand Down Expand Up @@ -88,7 +88,6 @@ static int apci2032_auto_attach(struct comedi_device *dev,
return ret;

dev->iobase = pci_resource_start(pcidev, 1);
devpriv->iobase = dev->iobase;
devpriv->i_IobaseAmcc = pci_resource_start(pcidev, 0);
devpriv->i_IobaseAddon = pci_resource_start(pcidev, 2);
devpriv->i_IobaseReserved = pci_resource_start(pcidev, 3);
Expand Down

0 comments on commit cce883f

Please sign in to comment.