[PATCH 31/40] staging: comedi: me4000: remove program_regbase from private data

H Hartley Sweeten hartleys at visionengravers.com
Sat Sep 8 00:48:09 UTC 2012


The program_regbase variable in the private data is only used
when the board is first attached. This variable holds the pci
base address used to read/write the xilinx part to upload the
firmware.

Use a local variable in the xilinx_download() function to hold
this address and remove program_regbase from the private data.

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>
---
 drivers/staging/comedi/drivers/me4000.c | 13 +++++++------
 drivers/staging/comedi/drivers/me4000.h |  1 -
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/comedi/drivers/me4000.c b/drivers/staging/comedi/drivers/me4000.c
index 12b3cf8..f2c8d04 100644
--- a/drivers/staging/comedi/drivers/me4000.c
+++ b/drivers/staging/comedi/drivers/me4000.c
@@ -223,12 +223,17 @@ extern unsigned char *xilinx_firm;
 
 static int xilinx_download(struct comedi_device *dev)
 {
+	struct pci_dev *pcidev = comedi_to_pci_dev(dev);
 	struct me4000_info *info = dev->private;
+	unsigned long xilinx_iobase = pci_resource_start(pcidev, 5);
 	u32 value = 0;
 	wait_queue_head_t queue;
 	int idx = 0;
 	int size = 0;
 
+	if (!xilinx_iobase)
+		return -ENODEV;
+
 	init_waitqueue_head(&queue);
 
 	/*
@@ -243,7 +248,7 @@ static int xilinx_download(struct comedi_device *dev)
 	outl(value, info->plx_regbase + PLX_ICR);
 
 	/* Init Xilinx with CS1 */
-	inb(info->program_regbase + 0xC8);
+	inb(xilinx_iobase + 0xC8);
 
 	/* Wait until /INIT pin is set */
 	udelay(20);
@@ -269,7 +274,7 @@ static int xilinx_download(struct comedi_device *dev)
 		udelay(10);
 
 		for (idx = 0; idx < size; idx++) {
-			outb(xilinx_firm[16 + idx], info->program_regbase);
+			outb(xilinx_firm[16 + idx], xilinx_iobase);
 			udelay(10);
 
 			/* Check if BUSY flag is low */
@@ -1782,10 +1787,6 @@ static int me4000_attach_pci(struct comedi_device *dev,
 	if (!info->timer_regbase)
 		return -ENODEV;
 
-	info->program_regbase = pci_resource_start(pcidev, 5);
-	if (!info->program_regbase)
-		return -ENODEV;
-
 	dev->irq = pcidev->irq;
 
 	result = xilinx_download(dev);
diff --git a/drivers/staging/comedi/drivers/me4000.h b/drivers/staging/comedi/drivers/me4000.h
index b6d8e3b..7feb574 100644
--- a/drivers/staging/comedi/drivers/me4000.h
+++ b/drivers/staging/comedi/drivers/me4000.h
@@ -220,7 +220,6 @@
 struct me4000_info {
 	unsigned long plx_regbase;	/*  PLX configuration space base address */
 	unsigned long timer_regbase;	/*  Base address of the timer circuit */
-	unsigned long program_regbase;	/*  Base address to set the program pin for the xilinx */
 
 	unsigned int ao_readback[4];
 };
-- 
1.7.11




More information about the devel mailing list