On Tue, Feb 27, 2024 at 12:28:41PM -0500, Frank Li wrote: > On Tue, Feb 27, 2024 at 05:51:41PM +0530, Manivannan Sadhasivam wrote: > > On Mon, Feb 26, 2024 at 12:04:33PM -0500, Frank Li wrote: > > > On Sat, Feb 24, 2024 at 12:24:12PM +0530, Manivannan Sadhasivam wrote: > > > > Currently, dw_pcie_ep_init_registers() API is directly called by the glue > > > > drivers requiring active refclk from host. But for the other drivers, it is > > > > getting called implicitly by dw_pcie_ep_init(). This is due to the fact > > > > that this API initializes DWC EP specific registers and that requires an > > > > active refclk (either from host or generated locally by endpoint itsef). > > > > > > > > But, this causes a discrepancy among the glue drivers. So to avoid this > > > > confusion, let's call this API directly from all glue drivers irrespective > > > > of refclk dependency. Only difference here is that the drivers requiring > > > > refclk from host will call this API only after the refclk is received and > > > > other drivers without refclk dependency will call this API right after > > > > dw_pcie_ep_init(). > > > > > > > > This change will also allow us to remove the "core_init_notifier" flag in > > > > the later commits. > > > > > > > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> > > > > --- > > > > drivers/pci/controller/dwc/pci-dra7xx.c | 7 +++++++ > > > > drivers/pci/controller/dwc/pci-imx6.c | 8 ++++++++ > > > > drivers/pci/controller/dwc/pci-keystone.c | 9 +++++++++ > > > > drivers/pci/controller/dwc/pci-layerscape-ep.c | 7 +++++++ > > > > drivers/pci/controller/dwc/pcie-designware-ep.c | 22 ---------------------- > > > > drivers/pci/controller/dwc/pcie-designware-plat.c | 9 +++++++++ > > > > drivers/pci/controller/dwc/pcie-rcar-gen4.c | 12 +++++++++++- > > > > drivers/pci/controller/dwc/pcie-uniphier-ep.c | 13 ++++++++++++- > > > > 8 files changed, 63 insertions(+), 24 deletions(-) > > > > [...] > > > > > > diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c > > > > index ed1f2afd830a..278bdc9b2269 100644 > > > > --- a/drivers/pci/controller/dwc/pcie-designware-ep.c > > > > +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c > > > > @@ -729,7 +729,6 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep) > > > > struct device *dev = pci->dev; > > > > struct platform_device *pdev = to_platform_device(dev); > > > > struct device_node *np = dev->of_node; > > > > - const struct pci_epc_features *epc_features; > > > > > > > > INIT_LIST_HEAD(&ep->func_list); > > > > > > > > @@ -775,29 +774,8 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep) > > > > goto err_exit_epc_mem; > > > > } > > > > > > > > - if (ep->ops->get_features) { > > > > - epc_features = ep->ops->get_features(ep); > > > > - if (epc_features->core_init_notifier) > > > > - return 0; > > > > - } > > > > > > why remove this check? > > > > > > > There is no point in keeping this check since we are removing the call to > > dw_pcie_ep_init_registers() below. But I should've described this change in the > > commit message. > > Sperated patch will be helpful. This clean up does not related with other > change. > Well this is not a generic cleanup that could be moved to a separate patch. Due to the changes in this patch, the use of the flag becomes redundant. So it has to removed here itself. - Mani -- மணிவண்ணன் சதாசிவம்