On Sat, Apr 12, 2025 at 07:19:53AM +0530, Krishna Chaitanya Chundru wrote: > Add host_start_link() and host_stop_link() functions to dwc glue drivers to > register with start_link() and stop_link() of pci ops, allowing for better > control over the link initialization and shutdown process. what's difference .host_start_link and .start_link ? what's reason why need .host_start_link. Frank > > Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@xxxxxxxxxxxxxxxx> > --- > drivers/pci/controller/dwc/pcie-designware.h | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h > index 56aafdbcdacaff6b738800fb03ae60eb13c9a0f2..f3f520d65c92ed5ceae5b33f0055c719a9b60f0e 100644 > --- a/drivers/pci/controller/dwc/pcie-designware.h > +++ b/drivers/pci/controller/dwc/pcie-designware.h > @@ -466,6 +466,8 @@ struct dw_pcie_ops { > enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *pcie); > int (*start_link)(struct dw_pcie *pcie); > void (*stop_link)(struct dw_pcie *pcie); > + int (*host_start_link)(struct dw_pcie *pcie); > + void (*host_stop_link)(struct dw_pcie *pcie); > }; > > struct debugfs_info { > @@ -720,6 +722,20 @@ static inline void dw_pcie_stop_link(struct dw_pcie *pci) > pci->ops->stop_link(pci); > } > > +static inline int dw_pcie_host_start_link(struct dw_pcie *pci) > +{ > + if (pci->ops && pci->ops->host_start_link) > + return pci->ops->host_start_link(pci); > + > + return 0; > +} > + > +static inline void dw_pcie_host_stop_link(struct dw_pcie *pci) > +{ > + if (pci->ops && pci->ops->host_stop_link) > + pci->ops->host_stop_link(pci); > +} > + > static inline enum dw_pcie_ltssm dw_pcie_get_ltssm(struct dw_pcie *pci) > { > u32 val; > > -- > 2.34.1 >