hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/pci/controller/dwc/pcie-designware-plat.c
....@@ -13,11 +13,9 @@
1313 #include <linux/kernel.h>
1414 #include <linux/init.h>
1515 #include <linux/of_device.h>
16
-#include <linux/of_gpio.h>
1716 #include <linux/pci.h>
1817 #include <linux/platform_device.h>
1918 #include <linux/resource.h>
20
-#include <linux/signal.h>
2119 #include <linux/types.h>
2220 #include <linux/regmap.h>
2321
....@@ -41,9 +39,7 @@
4139
4240 dw_pcie_setup_rc(pp);
4341 dw_pcie_wait_for_link(pci);
44
-
45
- if (IS_ENABLED(CONFIG_PCI_MSI))
46
- dw_pcie_msi_init(pp);
42
+ dw_pcie_msi_init(pp);
4743
4844 return 0;
4945 }
....@@ -70,14 +66,10 @@
7066 static void dw_plat_pcie_ep_init(struct dw_pcie_ep *ep)
7167 {
7268 struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
73
- struct pci_epc *epc = ep->epc;
7469 enum pci_barno bar;
7570
76
- for (bar = BAR_0; bar <= BAR_5; bar++)
71
+ for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
7772 dw_pcie_ep_reset_bar(pci, bar);
78
-
79
- epc->features |= EPC_FEATURE_NO_LINKUP_NOTIFIER;
80
- epc->features |= EPC_FEATURE_MSIX_AVAILABLE;
8173 }
8274
8375 static int dw_plat_pcie_ep_raise_irq(struct dw_pcie_ep *ep, u8 func_no,
....@@ -100,9 +92,22 @@
10092 return 0;
10193 }
10294
103
-static struct dw_pcie_ep_ops pcie_ep_ops = {
95
+static const struct pci_epc_features dw_plat_pcie_epc_features = {
96
+ .linkup_notifier = false,
97
+ .msi_capable = true,
98
+ .msix_capable = true,
99
+};
100
+
101
+static const struct pci_epc_features*
102
+dw_plat_pcie_get_features(struct dw_pcie_ep *ep)
103
+{
104
+ return &dw_plat_pcie_epc_features;
105
+}
106
+
107
+static const struct dw_pcie_ep_ops pcie_ep_ops = {
104108 .ep_init = dw_plat_pcie_ep_init,
105109 .raise_irq = dw_plat_pcie_ep_raise_irq,
110
+ .get_features = dw_plat_pcie_get_features,
106111 };
107112
108113 static int dw_plat_add_pcie_port(struct dw_plat_pcie *dw_plat_pcie,
....@@ -146,8 +151,7 @@
146151 ep = &pci->ep;
147152 ep->ops = &pcie_ep_ops;
148153
149
- res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi2");
150
- pci->dbi_base2 = devm_ioremap_resource(dev, res);
154
+ pci->dbi_base2 = devm_platform_ioremap_resource_byname(pdev, "dbi2");
151155 if (IS_ERR(pci->dbi_base2))
152156 return PTR_ERR(pci->dbi_base2);
153157