aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/atm/eni.c
diff options
context:
space:
mode:
authorAuke Kok <auke-jan.h.kok@intel.com>2007-06-08 18:46:36 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-11 19:02:10 -0400
commit44c10138fd4bbc4b6d6bff0873c24902f2a9da65 (patch)
tree6e16d3ec80c87490dc743f72da086356f2906ace /drivers/atm/eni.c
parentb8a3a5214d7cc115f1ca3a3967b7229d97c46f4a (diff)
PCI: Change all drivers to use pci_device->revision
Instead of all drivers reading pci config space to get the revision ID, they can now use the pci_device->revision member. This exposes some issues where drivers where reading a word or a dword for the revision number, and adding useless error-handling around the read. Some drivers even just read it for no purpose of all. In devices where the revision ID is being copied over and used in what appears to be the equivalent of hotpath, I have left the copy code and the cached copy as not to influence the driver's performance. Compile tested with make all{yes,mod}config on x86_64 and i386. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Acked-by: Dave Jones <davej@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/atm/eni.c')
-rw-r--r--drivers/atm/eni.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
index 0d3a38b1cb0b..77637e780d41 100644
--- a/drivers/atm/eni.c
+++ b/drivers/atm/eni.c
@@ -1704,7 +1704,6 @@ static int __devinit eni_do_init(struct atm_dev *dev)
1704 struct pci_dev *pci_dev; 1704 struct pci_dev *pci_dev;
1705 unsigned long real_base; 1705 unsigned long real_base;
1706 void __iomem *base; 1706 void __iomem *base;
1707 unsigned char revision;
1708 int error,i,last; 1707 int error,i,last;
1709 1708
1710 DPRINTK(">eni_init\n"); 1709 DPRINTK(">eni_init\n");
@@ -1715,12 +1714,6 @@ static int __devinit eni_do_init(struct atm_dev *dev)
1715 pci_dev = eni_dev->pci_dev; 1714 pci_dev = eni_dev->pci_dev;
1716 real_base = pci_resource_start(pci_dev, 0); 1715 real_base = pci_resource_start(pci_dev, 0);
1717 eni_dev->irq = pci_dev->irq; 1716 eni_dev->irq = pci_dev->irq;
1718 error = pci_read_config_byte(pci_dev,PCI_REVISION_ID,&revision);
1719 if (error) {
1720 printk(KERN_ERR DEV_LABEL "(itf %d): init error 0x%02x\n",
1721 dev->number,error);
1722 return -EINVAL;
1723 }
1724 if ((error = pci_write_config_word(pci_dev,PCI_COMMAND, 1717 if ((error = pci_write_config_word(pci_dev,PCI_COMMAND,
1725 PCI_COMMAND_MEMORY | 1718 PCI_COMMAND_MEMORY |
1726 (eni_dev->asic ? PCI_COMMAND_PARITY | PCI_COMMAND_SERR : 0)))) { 1719 (eni_dev->asic ? PCI_COMMAND_PARITY | PCI_COMMAND_SERR : 0)))) {
@@ -1729,7 +1722,7 @@ static int __devinit eni_do_init(struct atm_dev *dev)
1729 return -EIO; 1722 return -EIO;
1730 } 1723 }
1731 printk(KERN_NOTICE DEV_LABEL "(itf %d): rev.%d,base=0x%lx,irq=%d,", 1724 printk(KERN_NOTICE DEV_LABEL "(itf %d): rev.%d,base=0x%lx,irq=%d,",
1732 dev->number,revision,real_base,eni_dev->irq); 1725 dev->number,pci_dev->revision,real_base,eni_dev->irq);
1733 if (!(base = ioremap_nocache(real_base,MAP_MAX_SIZE))) { 1726 if (!(base = ioremap_nocache(real_base,MAP_MAX_SIZE))) {
1734 printk("\n"); 1727 printk("\n");
1735 printk(KERN_ERR DEV_LABEL "(itf %d): can't set up page " 1728 printk(KERN_ERR DEV_LABEL "(itf %d): can't set up page "