diff options
Diffstat (limited to 'drivers/pci/controller/dwc/pcie-designware-ep.c')
-rw-r--r-- | drivers/pci/controller/dwc/pcie-designware-ep.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index a543c45c7224..7a2925a16ab8 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c | |||
@@ -355,6 +355,17 @@ static int dw_pcie_ep_start(struct pci_epc *epc) | |||
355 | return pci->ops->start_link(pci); | 355 | return pci->ops->start_link(pci); |
356 | } | 356 | } |
357 | 357 | ||
358 | static const struct pci_epc_features* | ||
359 | dw_pcie_ep_get_features(struct pci_epc *epc, u8 func_no) | ||
360 | { | ||
361 | struct dw_pcie_ep *ep = epc_get_drvdata(epc); | ||
362 | |||
363 | if (!ep->ops->get_features) | ||
364 | return NULL; | ||
365 | |||
366 | return ep->ops->get_features(ep); | ||
367 | } | ||
368 | |||
358 | static const struct pci_epc_ops epc_ops = { | 369 | static const struct pci_epc_ops epc_ops = { |
359 | .write_header = dw_pcie_ep_write_header, | 370 | .write_header = dw_pcie_ep_write_header, |
360 | .set_bar = dw_pcie_ep_set_bar, | 371 | .set_bar = dw_pcie_ep_set_bar, |
@@ -368,6 +379,7 @@ static const struct pci_epc_ops epc_ops = { | |||
368 | .raise_irq = dw_pcie_ep_raise_irq, | 379 | .raise_irq = dw_pcie_ep_raise_irq, |
369 | .start = dw_pcie_ep_start, | 380 | .start = dw_pcie_ep_start, |
370 | .stop = dw_pcie_ep_stop, | 381 | .stop = dw_pcie_ep_stop, |
382 | .get_features = dw_pcie_ep_get_features, | ||
371 | }; | 383 | }; |
372 | 384 | ||
373 | int dw_pcie_ep_raise_legacy_irq(struct dw_pcie_ep *ep, u8 func_no) | 385 | int dw_pcie_ep_raise_legacy_irq(struct dw_pcie_ep *ep, u8 func_no) |