Skip to content

Commit

Permalink
staging: comedi: me4000: remove program_regbase from private data
Browse files Browse the repository at this point in the history
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@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Sep 8, 2012
1 parent 5f8f8d4 commit fe531d1
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
13 changes: 7 additions & 6 deletions drivers/staging/comedi/drivers/me4000.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

/*
Expand All @@ -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);
Expand All @@ -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 */
Expand Down Expand Up @@ -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);
Expand Down
1 change: 0 additions & 1 deletion drivers/staging/comedi/drivers/me4000.h
Original file line number Diff line number Diff line change
Expand Up @@ -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];
};
Expand Down

0 comments on commit fe531d1

Please sign in to comment.