Commit 044aceef authored by Michael Chan's avatar Michael Chan Committed by James Bottomley

[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: default avatarMichael Chan <mchan@broadcom.com>
Reviewed-by: default avatarMatt Domsch <Matt_Domsch@dell.com>
Signed-off-by: default avatarYi Zou <yi.zou@intel.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 7000f7c7
...@@ -151,7 +151,8 @@ edd_show_host_bus(struct edd_device *edev, char *buf) ...@@ -151,7 +151,8 @@ edd_show_host_bus(struct edd_device *edev, char *buf)
p += scnprintf(p, left, "\tbase_address: %x\n", p += scnprintf(p, left, "\tbase_address: %x\n",
info->params.interface_path.isa.base_address); info->params.interface_path.isa.base_address);
} else if (!strncmp(info->params.host_bus_type, "PCIX", 4) || } else if (!strncmp(info->params.host_bus_type, "PCIX", 4) ||
!strncmp(info->params.host_bus_type, "PCI", 3)) { !strncmp(info->params.host_bus_type, "PCI", 3) ||
!strncmp(info->params.host_bus_type, "XPRS", 4)) {
p += scnprintf(p, left, p += scnprintf(p, left,
"\t%02x:%02x.%d channel: %u\n", "\t%02x:%02x.%d channel: %u\n",
info->params.interface_path.pci.bus, info->params.interface_path.pci.bus,
...@@ -159,7 +160,6 @@ edd_show_host_bus(struct edd_device *edev, char *buf) ...@@ -159,7 +160,6 @@ edd_show_host_bus(struct edd_device *edev, char *buf)
info->params.interface_path.pci.function, info->params.interface_path.pci.function,
info->params.interface_path.pci.channel); info->params.interface_path.pci.channel);
} else if (!strncmp(info->params.host_bus_type, "IBND", 4) || } else if (!strncmp(info->params.host_bus_type, "IBND", 4) ||
!strncmp(info->params.host_bus_type, "XPRS", 4) ||
!strncmp(info->params.host_bus_type, "HTPT", 4)) { !strncmp(info->params.host_bus_type, "HTPT", 4)) {
p += scnprintf(p, left, p += scnprintf(p, left,
"\tTBD: %llx\n", "\tTBD: %llx\n",
...@@ -668,7 +668,7 @@ edd_get_pci_dev(struct edd_device *edev) ...@@ -668,7 +668,7 @@ edd_get_pci_dev(struct edd_device *edev)
{ {
struct edd_info *info = edd_dev_get_info(edev); struct edd_info *info = edd_dev_get_info(edev);
if (edd_dev_is_type(edev, "PCI")) { if (edd_dev_is_type(edev, "PCI") || edd_dev_is_type(edev, "XPRS")) {
return pci_get_bus_and_slot(info->params.interface_path.pci.bus, return pci_get_bus_and_slot(info->params.interface_path.pci.bus,
PCI_DEVFN(info->params.interface_path.pci.slot, PCI_DEVFN(info->params.interface_path.pci.slot,
info->params.interface_path.pci. info->params.interface_path.pci.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment