From patchwork Wed Apr 8 14:32:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 237416 List-Id: U-Boot discussion From: sjg at chromium.org (Simon Glass) Date: Wed, 8 Apr 2020 08:32:59 -0600 Subject: [PATCH v5 5/6] pci: Add a macro to convert BDF from linux to U-Boot In-Reply-To: <20200408143300.52636-1-sjg@chromium.org> References: <20200408143300.52636-1-sjg@chromium.org> Message-ID: <20200408083251.v5.5.Ifb213e62095edbb017224d889263bb63c982c112@changeid> U-Boot's BDF format has its bits in the same position as the device tree PCI definition. Some x86 devices use linux format in their register format and it is useful to be able to convert to U-Boot format. Add a macro for this. Signed-off-by: Simon Glass --- Changes in v5: None Changes in v4: None include/pci.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/pci.h b/include/pci.h index 174ddd4460d..aff56b24f92 100644 --- a/include/pci.h +++ b/include/pci.h @@ -543,6 +543,9 @@ typedef int pci_dev_t; #define PCI_VENDEV(v, d) (((v) << 16) | (d)) #define PCI_ANY_ID (~0) +/* Convert from Linux format to U-Boot format */ +#define PCI_TO_BDF(val) ((val) << 8) + struct pci_device_id { unsigned int vendor, device; /* Vendor and device ID or PCI_ANY_ID */ unsigned int subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */