On Thu, Nov 14, 2024 at 12:03:27PM +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@xxxxxxxxxx> Reviewed-by: Frank Li <Frank.Li@xxxxxxx> > --- > drivers/pci/controller/dwc/pcie-artpec6.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > 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) > -- > 2.47.0 >