[PATCH 07/11] staging: comedi: addi_apci_1500: use amcc_s5933.h defines

H Hartley Sweeten hsweeten at visionengravers.com
Tue Dec 2 17:19:52 UTC 2014


PCI Bar 0 accesses the AMCC S5933 PCI controller used on this board.
Use the defines from amcc_35933.h and remove the "magic" numbers.

Rename the CamelCase private data member 'i_IobaseAmcc' used to hold
the address for PCI Bar 0.

Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
Cc: Ian Abbott <abbotti at mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
---
 .../staging/comedi/drivers/addi-data/hwdrv_apci1500.c  | 18 ++++++++++--------
 drivers/staging/comedi/drivers/addi_apci_1500.c        |  9 +++++++--
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci1500.c b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci1500.c
index 11e3d84..df3cb0a 100644
--- a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci1500.c
+++ b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci1500.c
@@ -1412,7 +1412,7 @@ static int apci1500_do_bits(struct comedi_device *dev,
 	int i_Constant;
 
 	devpriv->tsk_Current = current;
-	outl(0x0, devpriv->i_IobaseAmcc + 0x38);
+	outl(0x0, devpriv->amcc + AMCC_OP_REG_INTCSR);
 	if (data[0] == 1) {
 		i_Constant = 0xC0;
 	} else {
@@ -1466,10 +1466,12 @@ static int apci1500_do_bits(struct comedi_device *dev,
 	z8536_write(dev, 0xd0, APCI1500_RW_MASTER_INTERRUPT_CONTROL);
 
 	/* Enables the PCI interrupt */
-	outl(0x3000, devpriv->i_IobaseAmcc + 0x38);
-	ui_Status = inl(devpriv->i_IobaseAmcc + 0x10);
-	ui_Status = inl(devpriv->i_IobaseAmcc + 0x38);
-	outl(0x23000, devpriv->i_IobaseAmcc + 0x38);
+	outl(0x2000 | INTCSR_INBOX_FULL_INT,
+	     devpriv->amcc + AMCC_OP_REG_INTCSR);
+	ui_Status = inl(devpriv->amcc + AMCC_OP_REG_IMB1);
+	ui_Status = inl(devpriv->amcc + AMCC_OP_REG_INTCSR);
+	outl(INTCSR_INBOX_INTR_STATUS | 0x2000 | INTCSR_INBOX_FULL_INT,
+	     devpriv->amcc + AMCC_OP_REG_INTCSR);
 
 	return insn->n;
 }
@@ -1486,10 +1488,10 @@ static irqreturn_t apci1500_interrupt(int irq, void *d)
 	i_InterruptMask = 0;
 
 	/* Read the board interrupt status */
-	ui_InterruptStatus = inl(devpriv->i_IobaseAmcc + 0x38);
+	ui_InterruptStatus = inl(devpriv->amcc + AMCC_OP_REG_INTCSR);
 
 	/* Test if board generated a interrupt */
-	if ((ui_InterruptStatus & 0x800000) == 0x800000) {
+	if (ui_InterruptStatus & INTCSR_INTR_ASSERTED) {
 		/* Disable all Interrupt */
 		/* Selects the master interrupt control register */
 		/* Disables  the main interrupt on the board */
@@ -1532,7 +1534,7 @@ static irqreturn_t apci1500_interrupt(int irq, void *d)
 			if (i_RegValue) {
 				/* Disable the interrupt */
 				/* Selects the command and status register of port B */
-				outl(0x0, devpriv->i_IobaseAmcc + 0x38);
+				outl(0x0, devpriv->amcc + AMCC_OP_REG_INTCSR);
 
 				if (i_RegValue & 0x80) {
 					i_InterruptMask =
diff --git a/drivers/staging/comedi/drivers/addi_apci_1500.c b/drivers/staging/comedi/drivers/addi_apci_1500.c
index 1d24be1..8fe48e7 100644
--- a/drivers/staging/comedi/drivers/addi_apci_1500.c
+++ b/drivers/staging/comedi/drivers/addi_apci_1500.c
@@ -8,6 +8,11 @@
 #include "amcc_s5933.h"
 
 /*
+ * PCI Bar 0 Register map (devpriv->amcc)
+ * see amcc_s5933.h for register and bit defines
+ */
+
+/*
 * PCI Bar 1 Register map (dev->iobase)
  */
 #define APCI1500_Z8536_PORTC_REG	0x00
@@ -16,7 +21,7 @@
 #define APCI1500_Z8536_CTRL_REG		0x03
 
 struct apci1500_private {
-	int i_IobaseAmcc;
+	unsigned long amcc;
 	int i_IobaseAddon;
 	unsigned char b_OutputMemoryStatus;
 	struct task_struct *tsk_Current;
@@ -41,7 +46,7 @@ static int apci1500_auto_attach(struct comedi_device *dev,
 		return ret;
 
 	dev->iobase = pci_resource_start(pcidev, 1);
-	devpriv->i_IobaseAmcc = pci_resource_start(pcidev, 0);
+	devpriv->amcc = pci_resource_start(pcidev, 0);
 	devpriv->i_IobaseAddon = pci_resource_start(pcidev, 2);
 
 	if (pcidev->irq > 0) {
-- 
2.0.3



More information about the devel mailing list