]> git.hungrycats.org Git - linux/commitdiff
[PATCH] cciss: avoid reading PCI config space
authorAndrew Morton <akpm@osdl.org>
Sun, 8 Feb 2004 01:43:30 +0000 (17:43 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Sun, 8 Feb 2004 01:43:30 +0000 (17:43 -0800)
From: mikem@beardog.cca.cpqcorp.net

This patch replaces reading directly form PCI config space where possible.
Most of what we need is in the pdev struct.  This is in 2.4.

drivers/block/cciss.c

index 879d5c825eef28233934426af1a0ab59bb3f47d3..646466f8007af703b01742e1bc61566f61acc536 100644 (file)
@@ -2121,9 +2121,8 @@ static int find_PCI_BAR_index(struct pci_dev *pdev,
 
 static int cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
 {
-       ushort vendor_id, device_id, command;
-       unchar cache_line_size, latency_timer;
-       unchar irq, revision;
+       ushort subsystem_vendor_id, subsystem_device_id, command;
+       unchar irq = pdev->irq;
        __u32 board_id, scratchpad = 0;
        __u64 cfg_offset;
        __u32 cfg_base_addr;
@@ -2150,17 +2149,10 @@ static int cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
                return(-1);
        }
 
-       vendor_id = pdev->vendor;
-       device_id = pdev->device;
-       irq = pdev->irq;
-
-       (void) pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision);
-       (void) pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE,
-                                               &cache_line_size);
-       (void) pci_read_config_byte(pdev, PCI_LATENCY_TIMER,
-                                               &latency_timer);
-       (void) pci_read_config_dword(pdev, PCI_SUBSYSTEM_VENDOR_ID, 
-                                               &board_id);
+       subsystem_vendor_id = pdev->subsystem_vendor;
+       subsystem_device_id = pdev->subsystem_device;
+       board_id = (((__u32) (subsystem_device_id << 16) & 0xffff0000) |
+                                       subsystem_vendor_id);
 
        /* search for our IO range so we can protect it */
        for(i=0; i<DEVICE_COUNT_RESOURCE; i++)
@@ -2188,15 +2180,8 @@ static int cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
        }
 
 #ifdef CCISS_DEBUG
-       printk("vendor_id = %x\n", vendor_id);
-       printk("device_id = %x\n", device_id);
        printk("command = %x\n", command);
-       for(i=0; i<6; i++)
-               printk("addr[%d] = %x\n", i, pci_resource_start(pdev, i);
-       printk("revision = %x\n", revision);
        printk("irq = %x\n", irq);
-       printk("cache_line_size = %x\n", cache_line_size);
-       printk("latency_timer = %x\n", latency_timer);
        printk("board_id = %x\n", board_id);
 #endif /* CCISS_DEBUG */