summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-04-10 22:30:45 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-11 23:54:35 +0400
commitcc3750883c161b595be02bf235bd38747a68f0d7 (patch)
tree872afccb72f6df9a5439257cefc6448dec622483
parentb153c68dce2a213b964505757518405af1372498 (diff)
downloadlinux-cc3750883c161b595be02bf235bd38747a68f0d7.tar.xz
staging: comedi: mite: use pci_ioremap_bar()
Use pci_ioremap_bar() to ioremap the PCI resources. That function just takes the pci device and a bar number. It also has some additional sanity checks to make sure the bar is actually a memory resource. This also makes sure that the entire PCI bar is ioremap'ed instead of assuming the size of a bar. For aesthetic reasons, don't set the private data phys_addr vars until after the ioremap is successful. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/comedi/drivers/mite.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/drivers/staging/comedi/drivers/mite.c b/drivers/staging/comedi/drivers/mite.c
index 9a456624ab4e..363305f20346 100644
--- a/drivers/staging/comedi/drivers/mite.c
+++ b/drivers/staging/comedi/drivers/mite.c
@@ -58,10 +58,6 @@
#include "comedi_fc.h"
#include "mite.h"
-#define PCI_MITE_SIZE 4096
-#define PCI_DAQ_SIZE 4096
-#define PCI_DAQ_SIZE_660X 8192
-
#define TOP_OF_PAGE(x) ((x)|(~(PAGE_MASK)))
struct mite_struct *mite_alloc(struct pci_dev *pcidev)
@@ -104,35 +100,28 @@ static unsigned mite_fifo_size(struct mite_struct *mite, unsigned channel)
int mite_setup2(struct mite_struct *mite, unsigned use_iodwbsr_1)
{
unsigned long length;
- resource_size_t addr;
int i;
u32 csigr_bits;
unsigned unknown_dma_burst_bits;
pci_set_master(mite->pcidev);
- addr = pci_resource_start(mite->pcidev, 0);
- mite->mite_phys_addr = addr;
- mite->mite_io_addr = ioremap(addr, PCI_MITE_SIZE);
+ mite->mite_io_addr = pci_ioremap_bar(mite->pcidev, 0);
if (!mite->mite_io_addr) {
dev_err(&mite->pcidev->dev,
"Failed to remap mite io memory address\n");
return -ENOMEM;
}
+ mite->mite_phys_addr = pci_resource_start(mite->pcidev, 0);
- addr = pci_resource_start(mite->pcidev, 1);
- mite->daq_phys_addr = addr;
- length = pci_resource_len(mite->pcidev, 1);
- /*
- * In case of a 660x board, DAQ size is 8k instead of 4k
- * (see as shown by lspci output)
- */
- mite->daq_io_addr = ioremap(mite->daq_phys_addr, length);
+ mite->daq_io_addr = pci_ioremap_bar(mite->pcidev, 1);
if (!mite->daq_io_addr) {
dev_err(&mite->pcidev->dev,
"Failed to remap daq io memory address\n");
return -ENOMEM;
}
+ mite->daq_phys_addr = pci_resource_start(mite->pcidev, 1);
+ length = pci_resource_len(mite->pcidev, 1);
if (use_iodwbsr_1) {
writel(0, mite->mite_io_addr + MITE_IODWBSR);