
Hi Simon,
On 22.01.19 01:32, Simon Glass wrote:
On Sat, 19 Jan 2019 at 00:46, Stefan Roese sr@denx.de wrote:
This macro will be used the by the Marvell Armada XP/38x PCIe driver, which is moved to DM right now.
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/pci.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/pci.h b/include/pci.h index 785d7d28b7..f4a9e025b3 100644 --- a/include/pci.h +++ b/include/pci.h @@ -501,6 +501,7 @@ typedef int pci_dev_t; #define PCI_BUS(d) (((d) >> 16) & 0xff) #define PCI_DEV(d) (((d) >> 11) & 0x1f) #define PCI_FUNC(d) (((d) >> 8) & 0x7) +#define PCI_SLOT(d) (((d) >> 3) & 0x1f)
This seems unrelated to the other macros, since is shifts left only 3 positions. Can you perhaps move it to the end and add a comment as to what the input is and what it returns? It seems different to the others.
We seem to have the same different interpretation (U-Boot vs Linux) as remarked in my last mail. It seems that U-Boot expects devfn to reside in bits 15-8.
Regarding the input and what it returns: My current understanding is, that PCI_DEV in U-Boot is identical to PCI_SLOT in Linux (PCI_DEV is not used there at all). The input here is devfn as well.
I can adapt my driver to use PCI_DEV instead. But frankly, these different macro implementations (U-Boot vs Linux) are confusing.
Thanks, Stefan