On Tue, Jul 20, 2021 at 08:11:55PM +0200, Pali Rohár wrote: > On Tuesday 20 July 2021 11:34:51 Bjorn Helgaas wrote: > > On Tue, Jul 20, 2021 at 04:49:55PM +0200, Pali Rohár wrote: > > > So what should pci-aardvark driver in this case do? Return ~0 or re-send > > > this config read request (and how many times)? > > > > That's a good question. I don't know what other hardware > > implementations do, but I doubt they retry forever. Since the spec > > doesn't specify a number of retries, I think you can choose to do > > none and immediately return ~0. > > Ok, so I will change implementation to return ~0 without any retry. This > is simple and easy implementation. Anyway, it would be nice to know what > other real-hardware implementations of PCIe controllers are doing. > > PCI_EXP_RTCTL_CRSSVE bit is only part of kernel emulated PCIe Bridge and > has no real register in aardvark hw. > > So for me it looks like that aardvark's pci_ops.read() should set read > value to ~0 or 0xffff0001 based on what is stored in kernel emulated > PCI_EXP_RTCTL_CRSSVE bit. Right? Yes, that would be my advice. Of course it's only if we're reading the Vendor ID *and* PCI_EXP_RTCTL_CRSSVE is set.