diff options
Diffstat (limited to 'drivers/pci/controller/dwc/pcie-qcom.c')
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-qcom.c | 23 | 
1 files changed, 6 insertions, 17 deletions
diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c index a7f703556790..0ed235d560e3 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -1129,25 +1129,8 @@ err_deinit:  	return ret;  } -static int qcom_pcie_rd_own_conf(struct pcie_port *pp, int where, int size, -				 u32 *val) -{ -	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); - -	/* the device class is not reported correctly from the register */ -	if (where == PCI_CLASS_REVISION && size == 4) { -		*val = readl(pci->dbi_base + PCI_CLASS_REVISION); -		*val &= 0xff;	/* keep revision id */ -		*val |= PCI_CLASS_BRIDGE_PCI << 16; -		return PCIBIOS_SUCCESSFUL; -	} - -	return dw_pcie_read(pci->dbi_base + where, size, val); -} -  static const struct dw_pcie_host_ops qcom_pcie_dw_ops = {  	.host_init = qcom_pcie_host_init, -	.rd_own_conf = qcom_pcie_rd_own_conf,  };  /* Qcom IP rev.: 2.1.0	Synopsys IP rev.: 4.01a */ @@ -1309,6 +1292,12 @@ static const struct of_device_id qcom_pcie_match[] = {  	{ }  }; +static void qcom_fixup_class(struct pci_dev *dev) +{ +	dev->class = PCI_CLASS_BRIDGE_PCI << 8; +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_QCOM, PCI_ANY_ID, qcom_fixup_class); +  static struct platform_driver qcom_pcie_driver = {  	.probe = qcom_pcie_probe,  	.driver = {  |