aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/piix.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/ide/pci/piix.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/ide/pci/piix.c')
-rw-r--r--drivers/ide/pci/piix.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c
index 2e0b29ef596a..1372c35be035 100644
--- a/drivers/ide/pci/piix.c
+++ b/drivers/ide/pci/piix.c
@@ -572,18 +572,16 @@ static void __devinit piix_check_450nx(void)
572{ 572{
573 struct pci_dev *pdev = NULL; 573 struct pci_dev *pdev = NULL;
574 u16 cfg; 574 u16 cfg;
575 u8 rev;
576 while((pdev=pci_get_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454NX, pdev))!=NULL) 575 while((pdev=pci_get_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454NX, pdev))!=NULL)
577 { 576 {
578 /* Look for 450NX PXB. Check for problem configurations 577 /* Look for 450NX PXB. Check for problem configurations
579 A PCI quirk checks bit 6 already */ 578 A PCI quirk checks bit 6 already */
580 pci_read_config_byte(pdev, PCI_REVISION_ID, &rev);
581 pci_read_config_word(pdev, 0x41, &cfg); 579 pci_read_config_word(pdev, 0x41, &cfg);
582 /* Only on the original revision: IDE DMA can hang */ 580 /* Only on the original revision: IDE DMA can hang */
583 if(rev == 0x00) 581 if (pdev->revision == 0x00)
584 no_piix_dma = 1; 582 no_piix_dma = 1;
585 /* On all revisions below 5 PXB bus lock must be disabled for IDE */ 583 /* On all revisions below 5 PXB bus lock must be disabled for IDE */
586 else if(cfg & (1<<14) && rev < 5) 584 else if (cfg & (1<<14) && pdev->revision < 5)
587 no_piix_dma = 2; 585 no_piix_dma = 2;
588 } 586 }
589 if(no_piix_dma) 587 if(no_piix_dma)