[PATCH] lpfc 8.1.3: PCI hrd_type should be obtained with pci_read_config_byte() macro
authorJamie Wellnitz <Jamie.Wellnitz@emulex.com>
Wed, 1 Mar 2006 03:33:05 +0000 (22:33 -0500)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Mon, 6 Mar 2006 15:46:10 +0000 (09:46 -0600)
PCI hrd_type should be obtained with pci_read_config_byte() macro

Driver keys off of this field to report the proper adapter type.
The pci subsystem explicitly clears the multiport bit in the copy of
the field given the driver. Thus, to properly name the card, obtain it
from config space.

Signed-off-by: Jamie Wellnitz <Jamie.Wellnitz@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/lpfc/lpfc_init.c

index 5fd98a345347a3a6aa74427c22e0bb8acafeb08b..71d2c8d3b001506b5735657693950d6687da7c9e 100644 (file)
@@ -796,9 +796,9 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
        lpfc_vpd_t *vp;
        uint16_t dev_id = phba->pcidev->device;
        uint16_t dev_subid = phba->pcidev->subsystem_device;
-       uint8_t hdrtype = phba->pcidev->hdr_type;
+       uint8_t hdrtype;
        int max_speed;
-       char * ports = (hdrtype == 0x80) ? "2-port " : "";
+       char * ports;
        struct {
                char * name;
                int    max_speed;
@@ -806,6 +806,8 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
                char * bus;
        } m;
 
+       pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype);
+       ports = (hdrtype == 0x80) ? "2-port " : "";
        if (mdp && mdp[0] != '\0'
                && descp && descp[0] != '\0')
                return;