Re: [PATCH v4 4/4] PCI: mediatek-gen3: Add Airoha EN7581 support

Bjorn Helgaas
2024-11-07T15:17:03Z

On Thu, Nov 07, 2024 at 08:39:43AM +0100, Lorenzo Bianconi wrote:
> > On Wed, Nov 06, 2024 at 11:40:28PM +0100, Lorenzo Bianconi wrote:
> > > > On Wed, Jul 03, 2024 at 06:12:44PM +0200, Lorenzo Bianconi wrote:
> > > > > Introduce support for Airoha EN7581 PCIe controller to mediatek-gen3
> > > > > PCIe controller driver.
> > > > > ...

> > > > Is this where PERST# is asserted? If so, a comment to that effect
> > > > would be helpful. Where is PERST# deasserted? Where are the required
> > > > delays before deassert done?
> > >
> > > I can add a comment in en7581_pci_enable() describing the PERST issue for
> > > EN7581. Please note we have a 250ms delay in en7581_pci_enable() after
> > > configuring REG_PCI_CONTROL register.
> > >
> > > https://github.com/torvalds/linux/blob/master/drivers/clk/clk-en7523.c#L396
> >
> > Does that 250ms delay correspond to a PCIe mandatory delay, e.g.,
> > something like PCIE_T_PVPERL_MS? I think it would be nice to have the
> > required PCI delays in this driver if possible so it's easy to verify
> > that they are all covered.
>
> IIRC I just used the delay value used in the vendor sdk. I do not
> have a strong opinion about it but I guess if we move it in the
> pcie-mediatek-gen3 driver, we will need to add it in each driver
> where this clock is used. What do you think?

I don't know what the 250ms delay is for. If it is for a required PCI
delay, we should use the relevant standard #define for it, and it
should be in the PCI controller driver. Otherwise it's impossible to
verify that all the drivers are doing the correct delays.

I don't know what other drivers are using that clock. Are you
suggesting that it may be used in non-PCI situations where the
required delay might be different? If another user requires 250ms,
but PCI requires only 100ms, I think it would be worth having separate
delays in each user so PCI wouldn't have to pay that extra 150ms.

Bjorn