On Fri, Jun 13, 2025 at 12:19:09PM +0200, Niklas Cassel wrote: > From: Wilfred Mallawa <wilfred.mallawa@xxxxxxx> > > RK3588 TRM, section "11.6.1.3.3 Hot Reset and Link-Down Reset" states that: > """ > If you want to delay link re-establishment (after reset) so that you can > reprogram some registers through DBI, you must set app_ltssm_enable =0 > immediately after core_rst_n as shown in above. This can be achieved by > enable the app_dly2_en, and end-up the delay by assert app_dly2_done. > """ Ugh. Is """ some sort of markup? There's a nice English convention of indenting block quotes a couple spaces with no quote marks at all that would work nicely here. > I.e. setting app_dly2_en will automatically deassert app_ltssm_enable on > a hot reset, and setting app_dly2_done will re-assert app_ltssm_enable, > re-enabling link training. > > When receiving a hot reset/link-down IRQ when running in EP mode, we will > call dw_pcie_ep_linkdown(), which will call the .link_down() callback in > the currently bound endpoint function (EPF) drivers. > > The callback in an EPF driver can theoretically take a long time to > complete, so make sure that the link is not re-established until after > dw_pcie_ep_linkdown() (which calls the .link_down() callback(s) > synchronously). I don't know why we care *how long* EPF callbacks might take.