diff options
Diffstat (limited to 'drivers/pci/controller/pcie-mediatek.c')
| -rw-r--r-- | drivers/pci/controller/pcie-mediatek.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c index 23548b517e4b..62a042e75d9a 100644 --- a/drivers/pci/controller/pcie-mediatek.c +++ b/drivers/pci/controller/pcie-mediatek.c @@ -143,6 +143,7 @@ struct mtk_pcie_port;   * struct mtk_pcie_soc - differentiate between host generations   * @need_fix_class_id: whether this host's class ID needed to be fixed or not   * @need_fix_device_id: whether this host's device ID needed to be fixed or not + * @no_msi: Bridge has no MSI support, and relies on an external block   * @device_id: device ID which this host need to be fixed   * @ops: pointer to configuration access functions   * @startup: pointer to controller setting functions @@ -151,6 +152,7 @@ struct mtk_pcie_port;  struct mtk_pcie_soc {  	bool need_fix_class_id;  	bool need_fix_device_id; +	bool no_msi;  	unsigned int device_id;  	struct pci_ops *ops;  	int (*startup)(struct mtk_pcie_port *port); @@ -760,7 +762,7 @@ static struct pci_ops mtk_pcie_ops = {  static int mtk_pcie_startup_port(struct mtk_pcie_port *port)  {  	struct mtk_pcie *pcie = port->pcie; -	u32 func = PCI_FUNC(port->slot << 3); +	u32 func = PCI_FUNC(port->slot);  	u32 slot = PCI_SLOT(port->slot << 3);  	u32 val;  	int err; @@ -1087,6 +1089,7 @@ static int mtk_pcie_probe(struct platform_device *pdev)  	host->ops = pcie->soc->ops;  	host->sysdata = pcie; +	host->msi_domain = pcie->soc->no_msi;  	err = pci_host_probe(host);  	if (err) @@ -1176,6 +1179,7 @@ static const struct dev_pm_ops mtk_pcie_pm_ops = {  };  static const struct mtk_pcie_soc mtk_pcie_soc_v1 = { +	.no_msi = true,  	.ops = &mtk_pcie_ops,  	.startup = mtk_pcie_startup_port,  }; @@ -1210,6 +1214,7 @@ static const struct of_device_id mtk_pcie_ids[] = {  	{ .compatible = "mediatek,mt7629-pcie", .data = &mtk_pcie_soc_mt7629 },  	{},  }; +MODULE_DEVICE_TABLE(of, mtk_pcie_ids);  static struct platform_driver mtk_pcie_driver = {  	.probe = mtk_pcie_probe, | 
