Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac81860e authored by Praveen Kalamegham's avatar Praveen Kalamegham Committed by Jesse Barnes
Browse files

PCI: hotplug: pciehp: Removed check for hotplug of display devices



Removed check to prevent hotplug of display devices within pciehp.
Originally this was thought to have been required within the PCI
Hotplug specification for some legacy devices.  However there is
no such requirement in the most recent revision. The check prevents
hotplug of not only display devices but also computational GPUs
which require serviceability.

Signed-off-by: default avatarPraveen Kalamegham <praveen@nextio.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 3f6ea84a
Loading
Loading
Loading
Loading
+3 −14
Original line number Diff line number Diff line
@@ -84,12 +84,6 @@ int pciehp_configure_device(struct slot *p_slot)
		dev = pci_get_slot(parent, PCI_DEVFN(0, fn));
		if (!dev)
			continue;
		if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) {
			ctrl_err(ctrl, "Cannot hot-add display device %s\n",
				 pci_name(dev));
			pci_dev_put(dev);
			continue;
		}
		if ((dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) ||
				(dev->hdr_type == PCI_HEADER_TYPE_CARDBUS)) {
			pciehp_add_bridge(dev);
@@ -136,12 +130,6 @@ int pciehp_unconfigure_device(struct slot *p_slot)
		struct pci_dev *temp = pci_get_slot(parent, PCI_DEVFN(0, j));
		if (!temp)
			continue;
		if ((temp->class >> 16) == PCI_BASE_CLASS_DISPLAY) {
			ctrl_err(ctrl, "Cannot remove display device %s\n",
				 pci_name(temp));
			pci_dev_put(temp);
			continue;
		}
		if (temp->hdr_type == PCI_HEADER_TYPE_BRIDGE && presence) {
			pci_read_config_byte(temp, PCI_BRIDGE_CONTROL, &bctl);
			if (bctl & PCI_BRIDGE_CTL_VGA) {
@@ -149,7 +137,8 @@ int pciehp_unconfigure_device(struct slot *p_slot)
					 "Cannot remove display device %s\n",
					 pci_name(temp));
				pci_dev_put(temp);
				continue;
				rc = EINVAL;
				break;
			}
		}
		pci_remove_bus_device(temp);