[U-Boot] [PATCH 022/126] sandbox: pci: Move pci_offset_to_barnum() to pci.h

Simon Glass sjg at chromium.org
Wed Sep 25 14:56:06 UTC 2019


This function is useful in PCI emulators. More it into the header file to
avoid duplicating it in other drivers.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 drivers/misc/swap_case.c | 7 ++-----
 include/pci.h            | 4 ++++
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/misc/swap_case.c b/drivers/misc/swap_case.c
index 18d756e9cd5..75fe6416707 100644
--- a/drivers/misc/swap_case.c
+++ b/drivers/misc/swap_case.c
@@ -24,9 +24,6 @@ struct swap_case_platdata {
 	u32 bar[6];
 };
 
-#define offset_to_barnum(offset)	\
-		(((offset) - PCI_BASE_ADDRESS_0) / sizeof(u32))
-
 enum {
 	MEM_TEXT_SIZE	= 0x100,
 };
@@ -144,7 +141,7 @@ static int sandbox_swap_case_read_config(struct udevice *emul, uint offset,
 		int barnum;
 		u32 *bar, result;
 
-		barnum = offset_to_barnum(offset);
+		barnum = pci_offset_to_barnum(offset);
 		bar = &plat->bar[barnum];
 
 		result = *bar;
@@ -224,7 +221,7 @@ static int sandbox_swap_case_write_config(struct udevice *emul, uint offset,
 		int barnum;
 		u32 *bar;
 
-		barnum = offset_to_barnum(offset);
+		barnum = pci_offset_to_barnum(offset);
 		bar = &plat->bar[barnum];
 
 		debug("w bar %d=%lx\n", barnum, value);
diff --git a/include/pci.h b/include/pci.h
index 999a594cddf..2b82b2c5a3e 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -215,6 +215,10 @@
 #define  PCI_BASE_ADDRESS_IO_MASK	(~0x03ULL)
 /* bit 1 is reserved if address_space = 1 */
 
+/* Convert a regsister address (e.g. PCI_BASE_ADDRESS_1) to a bar # (e.g. 1) */
+#define pci_offset_to_barnum(offset)	\
+		(((offset) - PCI_BASE_ADDRESS_0) / sizeof(u32))
+
 /* Header type 0 (normal devices) */
 #define PCI_CARDBUS_CIS		0x28
 #define PCI_SUBSYSTEM_VENDOR_ID 0x2c
-- 
2.23.0.444.g18eeb5a265-goog



More information about the U-Boot mailing list