From: H Hartley Sweeten Date: Sat, 8 Sep 2012 00:48:09 +0000 (-0700) Subject: staging: comedi: me4000: remove program_regbase from private data X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=fe531d12acff926628df11df6d476474383a9f3f;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git staging: comedi: me4000: remove program_regbase from private data 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 Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/me4000.c b/drivers/staging/comedi/drivers/me4000.c index 12b3cf8a7ec6..f2c8d040f1f8 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 b6d8e3bdcb21..7feb574eb718 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]; };