Message ID | 20241115084749.1915915-6-cassel@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | PCI endpoint additional pci_epc_set_bar() checks | expand |
On Fri, Nov 15, 2024 at 09:47:50AM +0100, Niklas Cassel wrote: > All non-DWC EPC drivers implement (struct pci_epc *)->ops->get_features(). > All DWC EPC drivers implement (struct dw_pcie_ep *)->ops->get_features(), > except for pcie-artpec6.c. > > epc_features has been required in pci-epf-test.c since commit 6613bc2301ba > ("PCI: endpoint: Fix NULL pointer dereference for ->get_features()"). > > A follow-up commit will make further use of epc_features in EPC core code. > > Implement epc_features in the only EPC driver where it is currently not > implemented. > > Signed-off-by: Niklas Cassel <cassel@kernel.org> > Reviewed-by: Frank Li <Frank.Li@nxp.com> For the ARTPEC-6 part: Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> /^JN - Jesper Nilsson
diff --git a/drivers/pci/controller/dwc/pcie-artpec6.c b/drivers/pci/controller/dwc/pcie-artpec6.c index f8e7283dacd47..234c8cbcae3af 100644 --- a/drivers/pci/controller/dwc/pcie-artpec6.c +++ b/drivers/pci/controller/dwc/pcie-artpec6.c @@ -369,9 +369,22 @@ static int artpec6_pcie_raise_irq(struct dw_pcie_ep *ep, u8 func_no, return 0; } +static const struct pci_epc_features artpec6_pcie_epc_features = { + .linkup_notifier = false, + .msi_capable = true, + .msix_capable = false, +}; + +static const struct pci_epc_features * +artpec6_pcie_get_features(struct dw_pcie_ep *ep) +{ + return &artpec6_pcie_epc_features; +} + static const struct dw_pcie_ep_ops pcie_ep_ops = { .init = artpec6_pcie_ep_init, .raise_irq = artpec6_pcie_raise_irq, + .get_features = artpec6_pcie_get_features, }; static int artpec6_pcie_probe(struct platform_device *pdev)