aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/agp/amd64-agp.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/char/agp/amd64-agp.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/char/agp/amd64-agp.c')
-rw-r--r--drivers/char/agp/amd64-agp.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c
index 801abdd29066..d95662e96326 100644
--- a/drivers/char/agp/amd64-agp.c
+++ b/drivers/char/agp/amd64-agp.c
@@ -367,10 +367,8 @@ static __devinit int cache_nbs (struct pci_dev *pdev, u32 cap_ptr)
367static void __devinit amd8151_init(struct pci_dev *pdev, struct agp_bridge_data *bridge) 367static void __devinit amd8151_init(struct pci_dev *pdev, struct agp_bridge_data *bridge)
368{ 368{
369 char *revstring; 369 char *revstring;
370 u8 rev_id;
371 370
372 pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id); 371 switch (pdev->revision) {
373 switch (rev_id) {
374 case 0x01: revstring="A0"; break; 372 case 0x01: revstring="A0"; break;
375 case 0x02: revstring="A1"; break; 373 case 0x02: revstring="A1"; break;
376 case 0x11: revstring="B0"; break; 374 case 0x11: revstring="B0"; break;
@@ -386,7 +384,7 @@ static void __devinit amd8151_init(struct pci_dev *pdev, struct agp_bridge_data
386 * Work around errata. 384 * Work around errata.
387 * Chips before B2 stepping incorrectly reporting v3.5 385 * Chips before B2 stepping incorrectly reporting v3.5
388 */ 386 */
389 if (rev_id < 0x13) { 387 if (pdev->revision < 0x13) {
390 printk (KERN_INFO PFX "Correcting AGP revision (reports 3.5, is really 3.0)\n"); 388 printk (KERN_INFO PFX "Correcting AGP revision (reports 3.5, is really 3.0)\n");
391 bridge->major_version = 3; 389 bridge->major_version = 3;
392 bridge->minor_version = 0; 390 bridge->minor_version = 0;