Commit b70cfc41 authored by Hongchen Zhang's avatar Hongchen Zhang
Browse files

Revert "PCI: Add quirk for LS7A to avoid reboot failure"

LoongArch inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7BC4C



--------------------------------

This reverts commit cea488db.

Signed-off-by: default avatarHongchen Zhang <zhanghongchen@loongson.cn>
parent 77566d2b
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -115,23 +115,6 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
			DEV_PCIE_PORT_2, loongson_mrrs_quirk);

static void loongson_bmaster_quirk(struct pci_dev *pdev)
{
	/*
	 * Some Loongson PCIe ports will cause CPU deadlock if disable
	 * the Bus Master bit during poweroff/reboot.
	 */
	struct pci_host_bridge *bridge = pci_find_host_bridge(pdev->bus);

	bridge->no_dis_bmaster = 1;
}
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
			DEV_PCIE_PORT_0, loongson_bmaster_quirk);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
			DEV_PCIE_PORT_1, loongson_bmaster_quirk);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
			DEV_PCIE_PORT_2, loongson_bmaster_quirk);

static void loongson_pci_pin_quirk(struct pci_dev *pdev)
{
	pdev->pin = 1 + (PCI_FUNC(pdev->devfn) & 3);
+1 −0
Original line number Diff line number Diff line
@@ -493,6 +493,7 @@ void pcie_port_device_remove(struct pci_dev *dev)
{
	device_for_each_child(&dev->dev, NULL, remove_iter);
	pci_free_irq_vectors(dev);
	pci_disable_device(dev);
}

/**
+1 −19
Original line number Diff line number Diff line
@@ -148,24 +148,6 @@ static void pcie_portdrv_remove(struct pci_dev *dev)
	}

	pcie_port_device_remove(dev);

	pci_disable_device(dev);
}

static void pcie_portdrv_shutdown(struct pci_dev *dev)
{
	struct pci_host_bridge *bridge = pci_find_host_bridge(dev->bus);

	if (pci_bridge_d3_possible(dev)) {
		pm_runtime_forbid(&dev->dev);
		pm_runtime_get_noresume(&dev->dev);
		pm_runtime_dont_use_autosuspend(&dev->dev);
	}

	pcie_port_device_remove(dev);

	if (!bridge->no_dis_bmaster)
		pci_disable_device(dev);
}

static pci_ers_result_t pcie_portdrv_error_detected(struct pci_dev *dev,
@@ -236,7 +218,7 @@ static struct pci_driver pcie_portdriver = {

	.probe		= pcie_portdrv_probe,
	.remove		= pcie_portdrv_remove,
	.shutdown	= pcie_portdrv_shutdown,
	.shutdown	= pcie_portdrv_remove,

	.err_handler	= &pcie_portdrv_err_handler,

+0 −1
Original line number Diff line number Diff line
@@ -575,7 +575,6 @@ struct pci_host_bridge {
	unsigned int	ignore_reset_delay:1;	/* For entire hierarchy */
	unsigned int	no_ext_tags:1;		/* No Extended Tags */
	unsigned int	no_inc_mrrs:1;		/* No Increase MRRS */
	unsigned int	no_dis_bmaster:1;	/* No Disable Bus Master */
	unsigned int	native_aer:1;		/* OS may use PCIe AER */
	unsigned int	native_pcie_hotplug:1;	/* OS may use PCIe hotplug */
	unsigned int	native_shpc_hotplug:1;	/* OS may use SHPC hotplug */