aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firmware/edd.c
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2011-10-28 14:34:07 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-10-31 05:26:19 -0400
commit044aceef33bba7a471a3ed47ac60998b2983b18b (patch)
treef8084cc39ed3b750c9677ebee984ecafcf5627fe /drivers/firmware/edd.c
parent7000f7c71e2457391e3249eac1ae53c91f49a8c0 (diff)
[SCSI] edd: Treat "XPRS" host bus type the same as "PCI"
PCI Express devices will return "XPRS" host bus type during BIOS EDD call. "XPRS" should be treated just like "PCI" so that the proper pci_dev symlink will be created. Scripts such as fcoe_edd.sh will then work correctly. Signed-off-by: Michael Chan <mchan@broadcom.com> Reviewed-by: Matt Domsch <Matt_Domsch@dell.com> Signed-off-by: Yi Zou <yi.zou@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/firmware/edd.c')
-rw-r--r--drivers/firmware/edd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index f1b7f659d3c9..e22957665808 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -151,7 +151,8 @@ edd_show_host_bus(struct edd_device *edev, char *buf)
151 p += scnprintf(p, left, "\tbase_address: %x\n", 151 p += scnprintf(p, left, "\tbase_address: %x\n",
152 info->params.interface_path.isa.base_address); 152 info->params.interface_path.isa.base_address);
153 } else if (!strncmp(info->params.host_bus_type, "PCIX", 4) || 153 } else if (!strncmp(info->params.host_bus_type, "PCIX", 4) ||
154 !strncmp(info->params.host_bus_type, "PCI", 3)) { 154 !strncmp(info->params.host_bus_type, "PCI", 3) ||
155 !strncmp(info->params.host_bus_type, "XPRS", 4)) {
155 p += scnprintf(p, left, 156 p += scnprintf(p, left,
156 "\t%02x:%02x.%d channel: %u\n", 157 "\t%02x:%02x.%d channel: %u\n",
157 info->params.interface_path.pci.bus, 158 info->params.interface_path.pci.bus,
@@ -159,7 +160,6 @@ edd_show_host_bus(struct edd_device *edev, char *buf)
159 info->params.interface_path.pci.function, 160 info->params.interface_path.pci.function,
160 info->params.interface_path.pci.channel); 161 info->params.interface_path.pci.channel);
161 } else if (!strncmp(info->params.host_bus_type, "IBND", 4) || 162 } else if (!strncmp(info->params.host_bus_type, "IBND", 4) ||
162 !strncmp(info->params.host_bus_type, "XPRS", 4) ||
163 !strncmp(info->params.host_bus_type, "HTPT", 4)) { 163 !strncmp(info->params.host_bus_type, "HTPT", 4)) {
164 p += scnprintf(p, left, 164 p += scnprintf(p, left,
165 "\tTBD: %llx\n", 165 "\tTBD: %llx\n",
@@ -668,7 +668,7 @@ edd_get_pci_dev(struct edd_device *edev)
668{ 668{
669 struct edd_info *info = edd_dev_get_info(edev); 669 struct edd_info *info = edd_dev_get_info(edev);
670 670
671 if (edd_dev_is_type(edev, "PCI")) { 671 if (edd_dev_is_type(edev, "PCI") || edd_dev_is_type(edev, "XPRS")) {
672 return pci_get_bus_and_slot(info->params.interface_path.pci.bus, 672 return pci_get_bus_and_slot(info->params.interface_path.pci.bus,
673 PCI_DEVFN(info->params.interface_path.pci.slot, 673 PCI_DEVFN(info->params.interface_path.pci.slot,
674 info->params.interface_path.pci. 674 info->params.interface_path.pci.