Hello Achal, On 18/01/23 12:50, Achal Verma wrote: > From: Jasko-EXT Wojciech <wojciech.jasko-EXT@xxxxxxxxxxxxxxxxxxxxxxxxxxx> > > Next function field in ARI_CAP_AND_CTR field register for last > function should be zero but thats not the case, so this patch > programs the next function field for last function as zero. > > Signed-off-by: Jasko-EXT Wojciech <wojciech.jasko-EXT@xxxxxxxxxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Achal Verma <a-verma1@xxxxxx> > --- > drivers/pci/controller/cadence/pcie-cadence-ep.c | 15 ++++++++++++++- > drivers/pci/controller/cadence/pcie-cadence.h | 6 ++++++ > 2 files changed, 20 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/cadence/pcie-cadence-ep.c b/drivers/pci/controller/cadence/pcie-cadence-ep.c > index b8b655d4047e..6b6904cf0123 100644 > --- a/drivers/pci/controller/cadence/pcie-cadence-ep.c > +++ b/drivers/pci/controller/cadence/pcie-cadence-ep.c > @@ -565,7 +565,8 @@ static int cdns_pcie_ep_start(struct pci_epc *epc) > struct cdns_pcie *pcie = &ep->pcie; > struct device *dev = pcie->dev; > int max_epfs = sizeof(epc->function_num_map) * 8; > - int ret, value, epf; > + int ret, epf, last_fn; > + u32 reg, value; > > /* > * BIT(0) is hardwired to 1, hence function 0 is always enabled > @@ -573,6 +574,18 @@ static int cdns_pcie_ep_start(struct pci_epc *epc) > */ > cdns_pcie_writel(pcie, CDNS_PCIE_LM_EP_FUNC_CFG, epc->function_num_map); > > + /* Setup ARI Next Function Number. Please follow the standard multi-line commenting style with the first line being "/*" followed by the comment on the next line. > + * This field should point to the next physical Function and 0 for > + * last Function. > + */ > + last_fn = find_last_bit(&epc->function_num_map, BITS_PER_LONG); > + reg = CDNS_PCIE_CORE_PF_I_ARI_CAP_AND_CTRL(last_fn); > + > + // Clear Next Function Number for the last function used. Please enclose the comment within /* and */. Regards, Siddharth.